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 la década de 1980.
Los terminales se basaban en una plataforma común que leía los vectores proporcionados por una minicomputadora host 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 se mostraban luego en el monitor de vectores integrado 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 a través del acceso directo a la memoria (DMA). Los terminales VG3D totalmente equipados costaban alrededor de $ 31,000, incluida una computadora PDP-11 de gama baja , [1] en comparación con máquinas como la IBM 2250, que cuesta $ 100,000 solo por el terminal. [2] [a]
Entre una serie de usos famosos conocidos dentro del campo de los gráficos por computadora, fue un terminal VG3D conectado a un PDP-11/45 que se usó para producir las animaciones de "atacar a la Estrella de la Muerte no será fácil" en Star Wars . [4] [5]
Descripción
Hardware
Un intento común a fines de la década de 1960 para mejorar el rendimiento de la visualización de gráficos, especialmente en 3D, fue usar terminales especiales que tenían una lista de vectores en la memoria interna y luego usaban hardware o software que se ejecutaba en el controlador de pantalla para proporcionar transformaciones básicas como rotación y escalada. Como estas transformaciones eran relativamente simples, podían implementarse en el terminal a un costo relativamente bajo y, por lo tanto, evitar perder tiempo en la CPU del host para realizar estas operaciones. Los sistemas que realizan al menos algunas de estas operaciones incluyen 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 significó que los terminales no necesitaban mucho almacenamiento propio y les dio 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 se puede usar en máquinas que ofrezcan DMA, y solo a través de un adaptador relativamente caro. [B]
El concepto básico es que el equipo anfitrión ejecutar cálculos para producir una serie de puntos para el modelo 2D o 3D y expresar que como valores de 12 bits, normalmente almacenado en palabras de 16 bits con extra de peluche bits de estado. 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 memoria local para 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 del hardware de transformación de coordenadas. El sistema más básico incluía el hardware necesario para realizar una panorámica y hacer zoom en 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 (para Rotar). La opción más cara fue la 3D, que proporcionó rotación, panorámica y zoom en vectores 3D. Otra opción que podría agregarse a cualquiera de estos modelos y que no estaba reflejada en el nombre agregó un generador de caracteres . [10]
Los CRT cuadrados se impulsaron directamente desde la salida del hardware de transformación, en lugar de mostrarse mediante un método de escaneo de trama tradicional . [9] La compañía se refirió a este tipo de operación como "escaneo aleatorio", [8] aunque se lo conoce universalmente como un monitor vectorial en las referencias modernas. Había dos modelos CRT básicos disponibles, que miden 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 mejoró las tasas de dibujo. Los CRT utilizaron deflexión electromagnética, no magnética como en los televisores, para proporcionar un rendimiento de escaneo de alta velocidad. [11]
Se pueden 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 grupo de interruptores pulsadores momentáneos con luces internas controladas por registro, una tableta gráfica , un lápiz óptico , una caja de marcación y un joystick . [12] El sistema en su conjunto era bastante grande, del tamaño de un frigorífico pequeño . [13]
Conceptos de dibujo
Los vectores se representaron lógicamente mediante dos puntos finales en el espacio. Cada punto fue definido por dos o tres valores de 12 bits, lo que representa un espacio de 0 a 4095 en X, Y y (opcionalmente) Z. [11] El terminal tenía tres registros de 12 bits para mantener los valores mientras se manipulado. [14]
El sistema permitía que los vectores se representaran de diversas 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 compensaciones 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 el número 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 agregar los valores a los 6 bits de orden superior o inferior del último valor, lo que permite un movimiento bruto o fino. Finalmente, los vectores de "autoincremento" redujeron aún más los requisitos de memoria al requerir que solo se almacenara un valor, y los demás se incrementaron 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 siempre teniendo 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 fue capaz de producir 32 niveles de intensidad diferentes. Esto podría programarse directamente estableciendo 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 se viera más brillante en la pantalla. La rapidez de este cambio se estableció a través del registro ISR. [18]
Un registro PS de 12 bits separado contenía el multiplicador de escala. Cuando no se utilizó 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 colocó un valor en este registro, las coordenadas en los registros vectoriales y el sistema de dibujo de caracteres se multiplicaron 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 a medida que 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 "dibujos" para producir un personaje completo. [20] El sistema incluía una serie de 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 utilizando DMA para actualizar la pantalla. Las comunicaciones adicionales 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] La configuración y las 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 contenía 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 usando un proceso similar, pero el terminal respondió a la interrupción leyendo un valor en su lugar. [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 "cambio de página" escribiendo conjuntos separados de puntos dentro de la memoria de la computadora y luego cambiando la pantalla 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 dado, que constaba de dos palabras de 16 bits, la primera con los detalles del registro y la siguiente con el valor. Otras instrucciones realizan operaciones lógicas OR o AND en valores de registro. Las instrucciones de visualización en sí podrían combinarse con estas operaciones, por lo 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 Star Wars
Larry Cuba produjo dos segmentos de animación por computadora para Star Wars en un PDP-11/45 con un terminal VG3D. Para filmar las imágenes fotograma a fotograma, se conectó un cable entre una de las luces del panel de botones y el disparador del obturador de la cámara. Esto fue activado por la computadora host, lo que provocó que la cámara abriera el obturador una vez y avanzara la película un solo cuadro. [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 guardada en la memoria del PDP-11, construida algorítmicamente usando 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 dispararí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 el terminal no admitía el cálculo de perspectiva, que se requería en esta secuencia. El modelo físico de la trinchera utilizado durante la filmación estaba compuesto por una serie de seis características que se duplicaron muchas veces y luego se ensamblaron de diferentes maneras para producir un solo 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, cinco de estas secciones se apilaron en profundidad y luego se aplicaron los cálculos de perspectiva. La adición de nuevas secciones a medida que avanza la animación se puede ver en la película. 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 los Estados Unidos
Mike Muuss relata que el Ejército de Estados Unidos 's Laboratorio de Investigación Balística habían adquirido un Ciber 173 y tres estaciones de trabajo que consta de un terminal VG3D y un PDP-11/34 a conducirlo. Estos estaban destinados a estar conectados entre sí, pero nadie pudo hacer que esto funcionara y, al final, las estaciones de trabajo VG se dejaron sin usar. Le molestaba ver que se desperdiciaba todo este hardware, 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 dado 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 los terminales VG para poder rotarlo. Primero lo emitió 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 utilizando el hardware de vector 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 a desarrollar BRL-CAD . [31]
Notas
- ^ Los modelos posteriores como el IBM 2250 Model III podían controlar hasta cuatro terminales, por lo que el costo por terminal estaba más cerca de $ 65,000, más el host. [3]
- ^ Aunque el manual establece que se puede usar "cualquier" computadora con el adaptador apropiado, todas las referencias de terceros solo mencionan el PDP-11 que se está usando.
Referencias
Citas
- ^ Phillips 1978 , p. C.24.
- ^ Weisberg 2008 , págs. 13-8-13-9.
- ^ Weisberg , 2008 , p. 13-9.
- ^ Dulce 1981 .
- ^ Borrelli 2017 .
- ↑ Peddie , 2013 , p. 316.
- ^ Referencia 1972 , p. 1-1, 1-3.
- ^ a b Referencia 1972 , p. 1-4.
- ^ a b c d Referencia 1972 , p. 1-3.
- ^ Referencia 1972 , p. 1-1.
- ^ a b Referencia 1972 , p. 1-7.
- ^ Referencia 1972 , p. 1-2.
- ^ Borrelli 2017 , p. Ver imágenes ..
- ^ a b c Referencia 1972 , p. 3-3.
- ^ Referencia 1972 , p. 1-14.
- ^ Referencia 1972 , p. 1-16.
- ^ Referencia 1972 , p. 2-12.
- ^ Referencia 1972 , p. 1-23.
- ^ Referencia 1972 , p. 1-9–1-14.
- ^ Referencia 1972 , p. 1-20.
- ^ Referencia 1972 , p. 2-13.
- ^ Referencia 1972 , p. 3-4.
- ^ Referencia 1972 , p. 3-4–3-6.
- ^ Referencia 1972 , p. Apéndice B.
- ^ Referencia 1972 , p. 3-14–3-35.
- ↑ a b Sweet , 1981 , p. 29.
- ^ DeFanti y Sandin 1981 , p. 50.
- ^ Dulce 1981 , p. 30.
- ^ Muuss 2000 , pág. 91.
- ↑ a b Muuss , 2000 , pág. 92.
- ^ "Resumen" . BRL-CAD .
Bibliografía
- Borrelli, Christopher (23 de mayo de 2017). "Los planos para la Estrella de la Muerte de 'Star Wars' se crearon en la UIC" . Chicago Tribune .
- DeFanti, Tom; Sandin, Dan (1981). "Hacer coincidir el sistema con los objetivos: con televisión o no" . En Clark, David (ed.). Ordenadores para la creación de imágenes . Pergamon Press. págs. 39–55. ISBN 9781483294636.
- Manual de referencia del sistema de visualización de gráficos vectoriales generales . Vector General. Enero de 1972.
- Muuss, Michael (septiembre de 2000). "Historia reciente: supercomputadoras y redes" . En Bergin, Thomas (ed.). 50 años de informática del ejército: de ENIAC a MSRC . Editorial DIANE. ISBN 9781428916593.
- Peddie, Jon (2013). La historia de la magia visual en las computadoras . Saltador. ISBN 9781447149323.
- Phillips, Richard (1978). Aplicaciones de gráficos por computadora . Universidad de Michigan.
- Sweet, Neesa (febrero de 1981). "Animando la trinchera de la Estrella de la Muerte" (PDF) . Lo mejor de las películas fantásticas: la revista de medios imaginativos . págs. 26-30.
- Weisberg, David (2008). La revolución del diseño de ingeniería (PDF) .
enlaces externos
- Making of the Computer Graphics for Star Wars , cortometraje realizado por Larry Cuba para ilustrar el proceso de realización de las animaciones de Star Wars .