★ APPLICATIONS ★ CREATION GRAPHIQUE ★ PAISAJES EXTRATERRESTRES ★![]() |
Paisajes Extraterrestres | Applications Creation Graphique |
Los muchachos de LucasFilm son grandes investigadores de la síntesis de imágenes por ordenador. En los intervalos entre batallas galácticas estudian cómo mejorar sus efectos especiales por ordenador. De su laboratorio salió el algoritmo que ha inspirado el programa BASIC que se presenta a continuación. Sirve para dibujar paisajes extraterrestres en tres dimensiones, basándose en curiosidades matemáticas como la geometría fractal. Las fractales son superficies que se definen de una manera recursiva generalmente por repetición de sí mismas. Si, por ejemplo, se dibuja un triángulo y se utiliza la parte central de cada lado como base para un nuevo triángulo (lógicamente de menores dimensiones), nunca acabaremos de trazar la curva, ya que siempre quedan triángulos por rellenar. Según avanzamos en el dibujo, éste se parecerá cada vez más a una parte de un copo de nieve, con forma de estrella. La propiedad más interesante de este tipo de curvas es que su dimensión, calculada por ciertos métodos, es mayor que uno (curvas) y menos que dos (superficies). Su nombre surge de ahí, de «dimensión FRACcional». El programa que presentamos realiza una proyección en perspectiva de una superficie fractal. En este caso la definición es muy intuitiva: imaginemos que tenemos un triángulo, y levantamos o bajamos al azar el punto medio de cada lado. Uniéndolos obtenemos una superficie formada por cuatro triángulos. Si repetimos el proceso con cada uno, tendremos dieciseis, y continuando con él, acabaremos por obtener una superficie parecida a un paisaje montañoso. La técnica fue desarrollada como algoritmo de dibujo. La novedad en este caso es que por debajo de cierta altura se considera que el mar invade nuestro paisaje y dibuja una superficie horizontal de color azul. La «tierra» es de color rojo. El programa pide un único dato: el nivel de división en triángulos, que debe ser un número entre 1 y 6. El programa calcula la «altura» en cada división como la media del punto anterior y posterior más una componente aleatoria. La parte aleatoria es menor en cada nivel sucesivo, con lo que la diferencia entre valores sucesivos es menor según ampliamos el número de niveles. Así el paisaje se mantiene coherente, sin saltos bruscos. Una vez calculada la matriz, en las líneas 70-130, que tendrá más o menos tamaño según el nivel, se procede al dibujo. Si se quiere realizar dibujos a niveles mayores habrá que redimensionar la matriz d, y quizá dibujar en modo 2. El sistema de pesos decrecientes para los números aleatorios permite mantener la correlación de los puntos similar a la que se observa en los paisajes reales. En ellos las alturas de puntos cercanos están muy relacionadas entre sí. Si los puntos son más distantes, no hay apenas relación entre sus alturas. Para dibujar se trazan tres hileras de líneas quebradas (bucles en líneas 670-750). La rutina de dibujo llama a otras que calculan la altura del agua, la transformación de perspectiva y la rotación según el punto de vista. Los dibujos se realizan mediante valores aleatorios, y se hace RANDOMIZE TIME antes de comenzar. Una forma de seleccionar buenas vistas es realizar un dibujo a nivel tres. Si parece interesante se puede repetir a un nivel mayor escribiendo RANDOMIZE tiempo y GOTO 30. Las vistas obtenidas se pueden salvar en disco o cassette sustituyendo la última línea por el SAVE. Naturalmente, los tiempos necesarios para realizar un dibujo son función del nivel de recursión, y se multiplican por cuatro cada vez que le añadimos uno al nivel. Si alguien se plantea ampliar el nivel máximo de recursión, debe pensar al mismo tiempo en cambiar el programa a un lenguaje compilado para ganar velocidad. Por otra parte, debemos pensar que la aplicación de éstas técnicas a problemas reales de animación por ordenador exige el uso de los mayores ordenadores existentes (CRAY XM-P o parecidos). Así que conviene no hacerse ilusiones: con nuestro Amstrad no podremos llegar mucho más allá del nivel 6 que, por otra parte, establece el límite de lo realizable en BASIC en la mayor parte de los ordenadores. Las superficies fractales son un descubrimiento matemático reciente, que ha encontrado aplicaciones insospechadas en campos como la mecánica teórica. B. Mandelbrot, creador de este campo, ha presentado muchos otros ejemplos de curvas y superficies fractales; entre ellas el conjunto que lleva su nombre, cuyas representaciones gráficas, de una gran belleza, se muestran en la revista «Investigación y Ciencia» (octubre 1985). Amstard User #2
|