Sie sind auf Seite 1von 7

SkyDome

Para mejorar estticamente el programa anterior, un elemento esencial es el cielo, que adems sirve como referencia para el movimiento sobre el terreno. Es un componente muy fcil de usar, slo tenemos que ir a editor de escena, hacer clic derecho sobre Scene Objects>Add Objects>Environment Objects>SkyDome.

Si ejecutamos el programa, realmente vemos el cielo, pero se ve arriba del terreno. Este problema surge cuando el cielo se dibuja sin tener en cuenta que hay objetos delante o detrs, y en la ventana del editor como el cielo se presenta ante el terreno, el terreno se dibuja primero y luego el cielo en la parte superior, que cubre parcialmente. La solucin es fcil: se toma el cielo y se desliza sobre la escena ponindolo arriba para que se dibuje primero, obteniendo el resultado deseado.

El cielo est formado por una serie de bandas (Bands), y si hacemos clic en los puntos suspensivos, se abre una ventana que muestra las bandas en el cielo (por defecto los colores que vienen son blanco para el horizonte y el azul arriba). Si seleccionamos un grupo podemos cambiar su longitud y su color.

Para eliminar la franja entre el cielo y la tierra hacemos que las franjas empiecen ms abajo, esto es cambiando el Angulo de inicio. El ngulo de inicio comienza desde abajo y este termina con el angulo final. De igual manera el color. Hay que tener en cuenta que si nos elevamos demasiado en el terreno volveremos a ver la franja.

Estrellas
Tambin podemos agregar estrellas en el cielo de noche, a travs de la propiedad Stars. Al hacer clic sobre l se abre la ventana de edicin donde las estrellas se pueden insertar y editarlas.

Color es el color de la estrellas, Dec es el ngulo de inclinacin con la vertical, Magnitude es el tamao de la estrella (cuanto menos, mayor ser la estrella) y RA el ngulo de inclinacin con la horizontal. Como ven solo podemos agregar estrella por estrella. Para poder ver un cielo lleno de estrellas y de forma aleatoria hay un procedimiento propio del SkyDome. Para eso, seleccionamos la Form1 y en el Inspector de objetos, en la pestaa Events damos doble clic sobre el evento OnCreate, se nos abre el cdigo y entre el begin y el end copiamos la siguiente lnea de cdigo: GLSkyDome1.Stars.AddRandomStars (500, clWhite);

Pero qu pasa si nosotros deseamos crear un cielo parecido al de la Tierra, donde tanto la Magnitud como la Posicin sean iguales. Para esto hay un archivo llamado STARS que almacena informacin sobre las estrellas, para cargarlo usamos el procedimiento LoadStarsFile. Primero debemos de tener de nuestra carpeta del proyecto el archivo de las estrellas. Aqu usaremos dos uno llamado Yale_BSC.stars y otro llamado hipparcos_9.0.stars, ambos archivos tomados de la NASA. Luego dentro del evento OnCreate, comentamos la lnea anterior y agregamos la siguiente: GLSkyDome1.Stars.LoadStarsFile ('Yale_BSC.stars');

Niebla
Uno de los efectos atmosfricos ms sencillos de crear con GLScene es la niebla, es simple y puede dar efectos muy realistas de una escena, hay varias maneras de crear, pero la forma ms sencilla es con una propiedad de GLSceneViewer.

A partir de la escena anterior seleccionamos el visor en la opcin de Buffer, para activar la niebla se tiene: FogEnable hay que ponerlo en True para activarla. Entrar en FogEnvironment y escoger un color con FogColor y con FogStart y FogEnd indicar donde comienza y termina la niebla (por ejemplo, 500 y 1000)

Todava existe la propiedad FogMode que define cmo la niebla se comporta de acuerdo a la distancia. Existen tres diferentes FogModes. 1) fmEXP 2) fmEXP2 3) fmLINEAR La fmEXP es niebla bsica. Abarca toda la pantalla, pero el efecto no es bueno. La fmEXP2 es una mejora del efecto anterior. La niebla se logra mejor con fmLINEAR.

Lens Flare (destello de lente)


Este objeto muestra una especie de resplandor que se puede ver en una fotografa del sol. De hecho, el efecto es un tipo de reflexin que se produce en la lente de la cmara por la distorsin de la luz. Adems con este objeto podemos crear escenas con ms realismo. El Lens Flare tiene varias partes que incluyen un glow (resplandor), los streaks (los rayos de la luz a lo largo), los rays (los rayos de la luz ms centrales), el ring (anillo) y los secondaries (efecto que se forma en la lente de la cmara).

Las propiedades importantes del Lens Flare son: Elements: las partes que conforman a Lens Flare Size: radio mximo de Lens Flare en pixeles NumSecs: cantidad de secondaries NumStreaks: cantidad de streaks Squeeze: manipular el efecto de estirar el Lens Flare StreakAngle: inclinacin de las dos streaks (en grados) StreakWidth: el largo de los streaks GlowGradient: el color de degradado de glow RaysGradient: el color de degradado de los rays

RingGradient: el color de degradado de ring StreakGradient: el color de degradado de los streaks SecondariesGradient: el color de degradado de los secondaries Para utilizar el Lens Flare slo debemos ponerlo en algn lugar de la escena y listo. Por lo general lo creamos en forma de un hijo de cualquier luz (ya que no emite luz propia).

Earth Sky Dome


Es similar a SkyDome, pero tiene caractersticas adicionales que le dan un mejor acabado. Adems de las opciones ya conocidas, tiene un sol que se puede mover, lo que permite la creacin del da y la noche, con los cambios en la atmosfera, incluyendo el color segn la hora del da. Las propiedades ms importantes son: Bands: Igual que SkyDome. DeepColor: el color de la profundidad, es decir, el color que est por debajo y no se puede ver. ExtendedOptions: algunas opciones del cielo: esoFadeStarsWithSun: si es True, cuando el Sol est en el cielo, no van a aparecer las estrellas (que slo aparezcan de noche), las estrellas estn en False, tanto de da como de noche. esoRotateOnTwelveHours: si gira el Sol en doce horas o no, si es True seguir su ciclo, si es False llegara al medioda y comenzara a descender de nuevo. HazeColor: el color del horizonte, mas como un color en el aire cuando miramos a gran distancia NightColor: el color de la noche Options.sdoTwinkle: el parpadeo de las estrellas SkyColor: el color del cielo. Slices e Stacks: el nivel de detalle de la cpula, entre ms alto son los valores, mejor se ve el sol. Stars: las estrellas, como en SkyDome SunDawnColor: el color del sol en el este y el oeste SunElevation: la elevacin del sol en grados, que van desde -90 (medianoche) a 90 (medioda) SunZenithColor: el color del son el mediodia Turbidity: la turbidez de la atmosfera. Van desde 0 hasta 120, el ms grande, ms difcil de ver el sol. Para aprender a controlar la altura del sol y sincronizarla con una luz, porque en si el sol no emite luz en el Earth Sky Dome. Hay que agregar una segunda luz, la primera conectada a la cmara y la otra desde los objetos de la escena. Se vera as:

Ahora en el evento del OnCreate de la Form1, escribimos el siguiente cdigo: //Agregamos 4000 estrellas de forma aleatoria. GLEarthSkyDome1.Stars.AddRandomStars(4000, clWhite); //Activamos las opciones GLEarthSkyDome1.ExtendedOptions:= [esoFadeStarsWithSun, esoRotateOnTwelveHours]; //Vamos a usar banderas para almacenar la direccin del sol GLEarthSkyDome1.Tag:=-1; Y en el evento del OnProgress copiamos lo siguiente: //Manipulamos la elevacin del sol mediante la adicin de 15 grados por cada ciclo del //secuenciador GLEarthSkyDome1.SunElevation:= GLEarthSkyDome1.SunElevation + 15*deltaTime*GLEarthSkyDome1.Tag; //Si es medianoche o medioda, invierte la direccin del movimiento del sol if GLEarthSkyDome1.SunElevation = -90 then GLEarthSkyDome1.Tag:= +1 else if GLEarthSkyDome1.SunElevation = +90 then GLEarthSkyDome1.Tag:= -1; //aqui sincronizamos la luz del son con la distancia de la cmara con la cpula. d:= sqr(camara.Position.z + 100); //convertimos la elevacin del sol a radianes y tomamos el sen y el cos de dicho ngulo //hay que agregar VectorGeometry en Uses SinCos(degToRad(GLEarthSkyDome1.SunElevation), sin, cos); if GLEarthSkyDome1.Tag < 0 then GLLightSource1.Position.SetPoint(cos*d, sin*d, camara.Position.z + 100) else GLLightSource1.Position.SetPoint(-cos*d, sin*d, camara.Position.z + 100);

SkyBox
Es una alternativa ms profesional para la creacin de cielos que SkyDome, este utiliza seis imgenes que representan a cada una de las caras de una gran caja que simula el cielo. Estas imgenes se deben de almacenar en materiales dentro de un GLMaterialLibrary. Primero adicionamos un SkyBox dando clic derecho en objetos de escena, objetos de medio ambiente y SkyBox, luego movemos el SkyBox arriba para que sea primero en dibujarse y asi no aparezca arriba del terreno. Ahora adicionamos un componente GLMaterialLibrary, hacemos doble clic en el para abrir la ventana de creacin de materiales y creamos 6 materiales en blanco, cambiamos el nombre de cada una de ellas con: Front" (frente), "Back" (atrs), "Top" (arriba), "Botton" (abajo), "Left" (izquierda) e "Right" (derecha). Luego en cada una de ellas cargamos una imagen y en la propiedad de Disable la cambiamos a False. Los ltimos dos en la propiedad Material>Texture.

Ahora solo falta seleccionar el SkyBox y en sus propiedades buscamos la propiedade la MaterialLibrary que es la bilbioteca que estamos usando. Ahora las siguientes propiedades las configuramos: MatNameBack, MatNameBottom, MatNameFront, MatNameLeft, MatNameRight MatNameTop y con ellos indicamos los lados de la SkyBox que se van a mostrar con la librera de materiales. Si lo corremos, el cielo aparece de lado, para resolver este solo cambiamos la propiedad de Up de SkyBox de [0,1,0] a [0,0,1] y todo vuelve a la normalidad.

Das könnte Ihnen auch gefallen