stringtranslate.com

vectores generales

Vector General ( VG ) era una serie de terminales gráficos y el nombre de la empresa californiana que los producía. Se introdujeron por primera vez en 1969 y se utilizaron en laboratorios de computación hasta principios de los años 1980.

Los terminales se basaban en una plataforma común que leía vectores proporcionados por una minicomputadora anfitriona e incluía hardware que podía realizar transformaciones matemáticas básicas en el terminal. Esto mejoró enormemente el rendimiento de operaciones como rotar un objeto o hacer zoom. Los vectores transformados luego se mostraban en el monitor de vectores incorporado del terminal .

A diferencia de terminales similares de otros proveedores, los sistemas Vector General incluían poca memoria interna . En cambio, almacenaron vectores en la memoria de la computadora host y accedieron a ellos mediante acceso directo a la memoria (DMA). Los terminales VG3D totalmente equipados costaban alrededor de 31.000 dólares, incluida una computadora PDP-11 de gama baja , [1] en comparación con máquinas como la IBM 2250 , que costaban 100.000 dólares solo por el terminal. [2] [un]

Entre una serie de usos famosos conocidos en el campo de los gráficos por ordenador, fue un terminal VG3D conectado a un PDP-11/45 el que se utilizó para producir las animaciones "atacar la Estrella de la Muerte no será fácil" en Star Wars . [4] [5]

Descripción

Hardware

Un intento común a finales de la década de 1960 para mejorar el rendimiento de la visualización de gráficos, especialmente en 3D, fue utilizar terminales especiales que contenían una lista de vectores en la memoria interna y luego usaban hardware o software que se ejecutaba en el controlador de visualización para proporcionar transformaciones básicas como rotación y escalada. Como estas transformaciones eran relativamente simples, podrían implementarse en el terminal por un costo relativamente bajo y, por lo tanto, evitar perder tiempo en la CPU del host para realizar estas operaciones. Los sistemas que realizaban al menos algunas de estas operaciones incluían IDI, Adage e Imlac PDS-1 . [6]

Una innovación clave en los terminales de la serie VG fue el uso de acceso directo a memoria (DMA) para permitirle acceder a la memoria de una computadora host. Esto significaba que los terminales no necesitaban mucho almacenamiento propio y les daba la capacidad de acceder rápidamente a los datos sin que se copiaran a través de un enlace más lento como el Tektronix 4010 basado en serie o sistemas similares. [7] La ​​desventaja de este enfoque es que solo podría usarse en máquinas que ofrecieran DMA, y solo a través de un adaptador relativamente costoso. [b]

El concepto básico era que la computadora host ejecutaría cálculos para producir una serie de puntos para el modelo 2D o 3D y los expresaría como valores de 12 bits, normalmente almacenados en palabras de 16 bits con bits de estado adicionales . Luego, el terminal interrumpiría periódicamente la computadora, de 30 a 60 veces por segundo, [8] y rápidamente leería y mostraría los datos. [9] Cada punto se leyó uno por uno en los registros de la memoria local para su almacenamiento temporal mientras se les aplicaban funciones matemáticas para escalar, traducir y (opcionalmente) rotar, y cuando se calcularon los valores finales, esos puntos se enviaron a el tubo de rayos catódicos (CRT) para su visualización. [9]

Había tres modelos diferentes de hardware de transformación de coordenadas. El sistema más básico incluía el hardware necesario para realizar panorámicas y zoom de imágenes 2D, en cuyo caso el terminal que lo contenía se conocería como Vector General 2D. Otra versión agregó la capacidad de rotar la imagen 2D alrededor de un punto arbitrario, conocido como 2DR (por Rotar). La opción más cara era la 3D, que proporcionaba rotación, panorámica y zoom en vectores 3D. Otra opción que se podría agregar a cualquiera de estos modelos y que no estaba reflejada en el nombre agregaba un generador de personajes . [10]

Los CRT cuadrados se activaron directamente desde la salida del hardware de transformación, en lugar de mostrarse mediante un método tradicional de escaneo rasterizado . [9] La empresa se refirió a este tipo de operación como "escaneo aleatorio", [8] aunque en las referencias modernas se lo conoce universalmente como monitor vectorial . Había dos modelos CRT básicos disponibles, que medían 17 pulgadas (430 mm) y 21 pulgadas (530 mm) en diagonal. El modelo de 21 pulgadas también estaba disponible en una versión especial de "alta velocidad" que mejoraba los índices de dibujo. Los CRT utilizaban deflexión electromagnética, no magnética como en los televisores, para proporcionar un rendimiento de escaneo de alta velocidad. [11]

Se podrían conectar varios dispositivos de entrada diferentes al sistema. El más común era un teclado de 70 teclas , mientras que otros incluían un banco de pulsadores momentáneos con luces internas controladas por registro, una tableta gráfica , un lápiz óptico , una caja de dial y un joystick . [12] El sistema en su conjunto era bastante grande, aproximadamente del tamaño de un refrigerador pequeño . [13]

Conceptos de dibujo

Los vectores estaban representados lógicamente por dos puntos finales en el espacio. Cada punto estaba definido por dos o tres valores de 12 bits, representando así un espacio de 0 a 4095 en X, Y y (opcionalmente) Z. [11] El terminal tenía tres registros de 12 bits para contener los valores mientras se estaban procesando. manipulado. [14]

El sistema permitía representar vectores de varias formas en la memoria. El modo más básico, "absoluto", requería dos puntos, uno para cada extremo del vector. [15] Los vectores "relativos" se expresaron como desplazamientos del último conjunto de valores, por lo que solo se necesitaba un punto para definir un vector, siendo el primer punto el punto final del último. Esto podría reducir a la mitad la cantidad de puntos necesarios para describir un dibujo completo, si los datos fueran continuos como un gráfico de líneas . Los vectores "incrementales" redujeron aún más la memoria al usar solo 6 bits para cada punto, lo que permitió que los datos se empaquetaran en menos memoria en el host. El sistema podría configurarse para sumar los valores a los 6 bits de orden superior o inferior del último valor, permitiendo un movimiento bruto o fino. Finalmente, los vectores "autoincrementales" redujeron aún más los requisitos de memoria al requerir que solo se almacenara un valor, y los demás se incrementaban en una cantidad preestablecida a medida que se leía cada nuevo punto. Estos eran similares a los vectores relativos, con uno de los dos ejes. teniendo siempre el mismo desplazamiento relativo. [16] El sistema también tenía un circuito separado para generar arcos circulares, en lugar de tener que enviar una serie de puntos. [17]

La pantalla era capaz de producir 32 niveles de intensidad diferentes. Esto se podía programar directamente configurando un registro en el terminal, pero se usaba más comúnmente en un modo programado en 3D. En este modo, la intensidad cambiaba automáticamente a medida que se dibujaba el vector, y los elementos más profundos en las dimensiones Z se dibujaban con menos intensidad. Esto produjo una señal de profundidad que hizo que el frente del objeto pareciera más brillante en la pantalla. La rapidez de este cambio se fijó a través del registro ISR. [18]

Un registro PS separado de 12 bits contenía el multiplicador de escala. Cuando no se usaba este valor, el sistema de coordenadas representaba un área física aproximadamente dos veces más grande que la pantalla, lo que le permitía traducir la imagen para proporcionar desplazamiento. Cuando se colocaba un valor en este registro, las coordenadas en los registros vectoriales y el sistema de dibujo de caracteres se multiplicaban por este valor, produciendo un efecto de zoom. [19]

El generador de caracteres opcional dibujó personajes usando un conjunto de cinco formas definidas por hardware: un círculo, un cuadrado con una línea vertical en el medio, un cuadrado con una línea horizontal en el medio y formas de reloj de arena orientadas verticalmente y una similar orientada horizontalmente. . Al encender y apagar el rayo mientras el hardware dibujaba cada una de estas formas, el sistema podía dibujar cualquier carácter requerido. Por ejemplo, la letra C se dibujó usando la forma de O y apagando el rayo mientras estaba a la derecha. La letra D se dibujaría usando la forma de O y apagándola mientras estaba a la izquierda, y luego dibujando el cuadro de línea vertical con la viga encendida solo cuando se dibujaba la barra vertical central. Se necesitan entre uno y tres de estos "sorteos" para producir un personaje completo. [20] El sistema incluía varias letras griegas y símbolos matemáticos además de los caracteres ASCII normales . [21]

Programación

El terminal lee periódicamente la memoria principal de la computadora host usando DMA para actualizar la pantalla. Otras comunicaciones se manejaron a través de un único puerto de E/S bidireccional [9] después de crear una solicitud de interrupción con los detalles de la solicitud en el registro PIR. [22] Las configuraciones e instrucciones se manejaron enviando datos hacia y desde el puerto de E/S a uno de los 85 registros del terminal. [14]

Por ejemplo, el anfitrión podría establecer el valor del registro PS, haciendo que la imagen se amplíe. Lo haría llamando a una interrupción cuyo mensaje de 16 bits contuviera el número del registro a establecer, 17 en este caso. El terminal respondería enviando un mensaje de 16 bits a través del canal de E/S. Las escrituras se manejaron mediante un proceso similar, pero el terminal respondió a la interrupción leyendo un valor. [23]

La dirección base para el inicio de la lista de vectores y el desplazamiento dentro de ella estaban en los registros 14 y 15. [14] Esto permitió que la pantalla realizara una especie de "voltear página" escribiendo conjuntos separados de puntos dentro de la memoria de la computadora y luego cambie la visualización de una vez cambiando el valor del registro 14 para que apunte a una dirección base diferente. Esto estaba limitado por la cantidad de memoria disponible en la computadora host. [24]

Las instrucciones de visualización tenían una variedad de formatos que permitían la construcción no solo de vectores, sino también de varios comandos. Por ejemplo, había instrucciones para cargar datos en un registro determinado, que constaba de dos palabras de 16 bits, la primera con los detalles del registro y la siguiente con el valor. Otras instrucciones realizaron OR o AND lógicos en valores de registro. Las propias instrucciones de visualización podrían combinarse con estas operaciones, de modo que el sistema podría, por ejemplo, comenzar a mostrar una selección de elementos, hacer que se encienda una lámpara, rotar la imagen y luego dibujar más vectores. [25]

Usos notables

El VG3D es históricamente notable por su uso en Star Wars , pero también es bien conocido por su papel inicial en el desarrollo del diseño asistido por computadora .

en la guerra de las galaxias

Una parte de la animación muestra la salida de gráficos vectoriales capturada en una película y luego retroproyectada en la escena durante la filmación.

Larry Cuba produjo dos segmentos de animación por computadora para Star Wars en una PDP-11/45 con una terminal VG3D. Para filmar las imágenes cuadro por cuadro, se conectó un cable entre una de las luces del panel de botones y el disparador de la cámara. Esto fue activado por la computadora host, lo que provocó que la cámara soltara el obturador una vez y avanzara la película un solo fotograma. [26] [27]

El primer segmento, que muestra el exterior de la Estrella de la Muerte , se basa completamente en las capacidades de visualización interna del VG3D. El modelo consistía en una serie simple de puntos 3D que representaban el contorno de la estación almacenada en la memoria del PDP-11, construida algorítmicamente utilizando el código de generación de curvas del lenguaje de programación GRASS asociado . Para mover y rotar la imagen como se ve en la película, el programa GRASS asociado cargaría nuevas figuras de rotación y zoom en los registros del terminal y luego activaría la cámara. [26]

El segundo segmento muestra la vista volando por la trinchera en el ataque final, primero desde arriba y luego desde la perspectiva del piloto. Esto fue mucho más difícil de crear porque la terminal no admitía el cálculo de perspectiva, que era necesario en esta secuencia. El modelo físico de la trinchera utilizado durante el rodaje estaba compuesto por una serie de seis elementos que se duplicaron muchas veces y luego se ensamblaron de diferentes maneras para producir un único modelo de 40 pies (12 m) de largo. Cuba digitalizó cada una de estas seis características a partir de fotografías y luego las combinó en diferentes configuraciones en más de 50 secciones en forma de U. Para cada cuadro, se apilaron en profundidad cinco de estas secciones y luego se aplicaron los cálculos de perspectiva. En la película se puede ver la incorporación de nuevas secciones a medida que avanza la animación. Luego se envió al terminal como una imagen estática y se activó la cámara. Cada fotograma tardó unos dos minutos en renderizarse. [28]

En el ejército de EE. UU.

Mike Muuss (sentado) usó el PDP-11 /70 y Vector General 3D que se ven aquí para crear una imagen giratoria del tanque XM-1 . Esto causó un gran revuelo entre los altos mandos del ejército, que pasaron las siguientes dos semanas exigiendo manifestaciones.

Mike Muuss cuenta que el Laboratorio de Investigación Balística del ejército estadounidense había comprado un Cyber ​​173 y tres estaciones de trabajo compuestas por un terminal VG3D y un PDP-11/34 para manejarlo. Se pretendía que estuvieran conectados entre sí, pero nadie pudo hacer que esto funcionara y, al final, las estaciones de trabajo VG quedaron sin usar. Le molestaba ver que todo este hardware se desperdiciaba, por lo que en 1979 conectó una de las estaciones de trabajo y creó un programa que producía un cubo 3D giratorio. [29]

A otro programador se le había proporcionado un conjunto de puntos 3D del diseño del tanque XM1 y estaba escribiendo código para enviarlo a un trazador Calcomp . Le preguntó a Muuss si podían mostrarlo en las terminales VG para poder rotarlo. Primero lo mostró como una imagen estática en un Tektronix 4014 , pero la noche siguiente logró colocar la pantalla en el VG3D, donde se podía girar fácilmente usando el hardware vectorial interno. [30]

Nadie en el ejército había visto algo así antes. Al día siguiente, el comandante general de ARRADCOM voló para verlo en vivo. Durante las siguientes dos semanas, Muuss estuvo constantemente dando demostraciones del sistema a un desfile de oficiales. [30] La demostración se hizo tan conocida que Muuss pudo comenzar el desarrollo de BRL-CAD . [31]

Notas

  1. ^ Los modelos posteriores, como el IBM 2250 Model III, podían controlar hasta cuatro terminales, por lo que el costo por terminal se acercaba a los 65.000 dólares, más el host. [3]
  2. ^ Aunque el manual indica que se puede utilizar "cualquier" computadora con el adaptador adecuado, todas las referencias de terceros mencionan únicamente el PDP-11 en uso.

Referencias

Citas

  1. ^ Phillips 1978, pag. C.24.
  2. ^ Weisberg 2008, págs. 13-8-13-9.
  3. ^ Weisberg 2008, pág. 13-9.
  4. ^ Dulce 1981.
  5. ^ Borrelli 2017.
  6. ^ Peddie 2013, pag. 316.
  7. ^ Referencia 1972, pag. 1-1, 1-3.
  8. ^ ab Referencia 1972, p. 1-4.
  9. ^ Referencia abcd 1972, p. 1-3.
  10. ^ Referencia 1972, pag. 1-1.
  11. ^ ab Referencia 1972, p. 1-7.
  12. ^ Referencia 1972, pag. 1-2.
  13. ^ Borrelli 2017, pag. Ver imágenes..
  14. ^ abc Referencia 1972, p. 3-3.
  15. ^ Referencia 1972, pag. 1-14.
  16. ^ Referencia 1972, pag. 1-16.
  17. ^ Referencia 1972, pag. 2-12.
  18. ^ Referencia 1972, pag. 1-23.
  19. ^ Referencia 1972, pag. 1-9-1-14.
  20. ^ Referencia 1972, pag. 1-20.
  21. ^ Referencia 1972, pag. 2-13.
  22. ^ Referencia 1972, pag. 3-4.
  23. ^ Referencia 1972, pag. 3-4–3-6.
  24. ^ Referencia 1972, pag. Apéndice B.
  25. ^ Referencia 1972, pag. 3-14–3-35.
  26. ^ ab Dulce 1981, pag. 29.
  27. ^ DeFanti y Sandin 1981, pág. 50.
  28. ^ Dulce 1981, pag. 30.
  29. ^ Muuss 2000, pag. 91.
  30. ^ ab Muuss 2000, pag. 92.
  31. ^ "Descripción general". BRL-CAD .

Bibliografía

enlaces externos

Ver también