|
Un campo de alturas (height_field
) es un objeto cuya
superficie está determinada por el valor de color o de paleta de cada
píxel de una imagen diseñada con este propósito. Con estos objetos
podemos simular montañas realistas y hacer fácilmente otros tipos de
terreno. En primer lugar, necesitamos una imagen a partir de la cual
crearemos el campo de alturas. POV-Ray es ideal para crear tal imagen.
Creamos un nuevo archivo llamado image.pov
y escribimos
lo siguiente:
#include "colors.inc" global_settings { assumed_gamma 2.2 hf_gray_16 }
La palabra clave hf_gray_16
hace que la salida sea codificada de un modo especial con 16 bits en
escala de grises, que es ideal para generar campos de alturas. Las
superficies construidas con 8 bits son mucho menos suaves, ya que se
trabaja con menos alturas diferentes (256 frente a 65536 de los 16
bits).
Ahora situamos una cámara que apunta desde la parte negativa del eje z al origen.
camera { location <0, 0, -10> look_at 0 }
Después creamos un plano vertical en z=10, que llenará toda la pantalla. Lo coloreamos con manchas con forma de arrugas grises sobre fondo blanco.
plane { z, 10 pigment { wrinkles color_map { [0 0.3*White] [1 White] } } }
Finalmente, añadimos una luz.
light_source { <0, 20, -100> color White }
Trazamos esta escena a 640x480 +A0.1 +FT
. Obtendremos
una imagen que producirá un excelente campo de alturas. Creamos ahora
un archivo llamado hfdemo.pov
y escribimos en él lo
siguiente:
Nota: Los usuarios de Windows, salvo
que especifiquen +FT
como en el ejemplo, obtendrán un
archivo de imagen .BMP, ya que es el tipo de salida por defecto en esta
versión. En ese caso, necesitarás usar sys
en lugar de tga
en la sentencia height_field
más abajo.
#include "colors.inc"
Añadimos una cámara dos unidades sobre el origen y diez unidades por detrás...
camera{ location <0, 2, -10> look_at 0 angle 30 }
... y una fuente de luz.
light_source{ <1000,1000,-1000> White }
Ahora añadimos el campo de alturas. En la sintaxis siguiente se especifica que usamos un archivo Targa, que se suaviza el cambio entre alturas, se colorea de blanco, y se traslada para centrarlo en el origen y escalarlo de forma que simule montañas y llene la pantalla.
height_field { tga "image.tga" smooth pigment { White } translate <-.5, -.5, -.5> scale <17, 1.75, 17> }
Guardamos el archivo y lo trazamos a 320x240 -A
.
Después, si estamos satisfechos con el resultado, probaremos a crear
una imagen de mayor resolución y con anti-alias.
El Himalaya en nuestro ordenador!
|