Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Iluminación en Java 3D
Este módulo presenta las técnicas para proporcionar detalles de los objetos visuales a través de
sombras y texturas. Esta página explica el modelo de iluminación y cómo utilizar luces en Java
3D para conseguir sombras.
Sombreado en Java 3D
'ombrear objetos visuales en Java 3D depende de muc(os actores. Esta sección proporciona
una descripción abreviada del modelo de iluminación de Java 3D) del modelo de color) y del
modelo de sombreado. !a especi*cación del $%& Java 3D presenta una inormació
inormaciónn más detallada
sobre el modelo de iluminación de Java 3D. #omo la mayor parte de la iluminación de Java 3D y
del modelo de sombreado se basa en OpenGL
OpenGL)) se puede encontrar más inormación en páginas
sobre OpenGL
OpenGL..
Modelo de Iluminación
En el mundo real) los colores +ue percibimos son una combinación de las características ísicas
del objeto) de las características de las uentes de luz) de las posiciones relativas de los objetos a
las uentes de luz) y del ángulo desde el cual se ve el objeto. Java 3D utiliza un modelo de
iluminación para aproximar
aproximar la ísica del mundo real. El resto de esta sección explica el modelo de
iluminación de Java 3D en términos generales. !a sección E., de la especi*cación del $%& Java 3D
presenta las ecuaciones matemáticas para el modelo de iluminación Java 3D.
!a ecuación del modelo de iluminación depende de tres vectores- la super*cie normal n/) la
dirección de la luz l/) y la dirección al ojo del espectador e/ además de las características
materiales del objeto y de las características de la luz. !a 0igura 12 muestra los tres vectores
para dos vértices de una super*cie esérica. !os vectores para cada vértice pueden tener
distintas direcciones
direcciones dependiendo de especí*cidades de la escena. #uando los vectores de la luz
y del ojo varían) se cálculan en tiempo de ejecución. %or lo tanto) cada vértice de la esera
potencialmente se renderiza como una sombra dierente.
El modelo de iluminación incorpora tres tipos de re4exiones de luz del mundo real- ambiente)
diuso) y especular.
especular. !a re4exión ambiente resulta de la luz ambiente) luz constante de bajo nivel)
en una escena. !a re4exión diusa es la re4exión normal de una uente de luz desde un objeto
visual. !as re4exiones especulares son las re4exiones sobreiluminadas de una uente de luz
sobre un objeto) +ue ocurren en ciertas situaciones.
!a 0igura 12, muestra una esera y un plano renderizados por Java 3D. !os tres tipos de re4exión
se pueden ver en la esera de la 0igura 12,. !a parte más oscura de la esera ex(ibe sólo la
re4exión ambiente. El centro de la esera está iluminado por la luz diusa y ambiente. #on una
esera azul y una luz blanca) la re4exión diusa es azul. !a parte más brillante de la esera es el
resultado de la re4exión especular con re4exiones ambiente y diusa.
'i cada vértice de cada objeto visual en una escena re+uiere un vector de luz) un vector del ojo)
y el cálculo de la sombra) una porción signi*cativa del cálculo de representa
representación
ción se utiliza en los
vértices sombreados.
ojo) o ambos !a son
vectores cantidad de cálculo
constantes. puede reducirse
El vector de luz essiconstante
el vector de luz) o el
cuando usavector
una del
luz
direccional.. El vector del ojo es constante por deecto) aun+ue podemos especi*car un vector
variable del ojo usando un método del objeto View
View..
5ientras +ue el modelo de iluminación se basa en la ísica) los enómenos ísicos complejos no se
modelan. 6bviamente) la sombra ec(ada por la esera sobre el plano no está en la 0igura
0igura 12,. 7o
tan obvio) también alta la luz re4ejada de la esera sobre el plano. 8ambién alta la luz re4ejada
desde el plano sobre la esera +ue de nuevo se re4eja en el plano... etcétera.
%ara reducir la complejidad del cálculo) el modelo de iluminación considera solamente un objeto
visual al mismo tiempo. #onsecuentemente) las sombras y las re4exiones inter2objetos no son
renderizadas por el modelo de iluminación. Estos dos eectos re+uieren la consideración de todos
los objetos junto con sus posiciones relativas en el momento de la representación. 'e necesita
considerablemente más cálculo para renderizar una sola escena con eectos inter2objetos. Java
3D) y el resto de los sistemas grá*cos en tiempo real) no (acen caso de eectos inter2objetos en
la representación. $lgunos de los eectos ignorados del mundo real se pueden agregar a las
escenas cuando sea necesario.
Modelo de #olor
El modelo del color no está basado en la ísica. Java 3D modela el color de las luces y los
materiales como una combinación de rojo) verde) y azul. El color blanco) como el color de la luz o
del material) es la combinación de los tres componentes con la intensidad máxima. #ada luz
produce un solo color de luz especi*cado por un tuple :;<. El modelo de iluminación se aplica a
cada uno de los componentes del color :;<. %or ejemplo) una bola roja en presencia de una luz
azul no será visible puesto +ue la luz azul no se re4eja desde un objeto rojo. En realidad) el color
es una combinación de muc(as longitudes de onda de la luz) no solo tres. El modelo de color
:;< representa muc(os colores) pero no todos.
En Java 3D) la porción de una escena donde los objetos visuales son iluminados por una uente
de luz determinada se llama la región de in4uencia de ese objeto de luz. !a región de in4uencia
más simple para una uente de luz usa un objeto %ounds %ounds y el método
setInfluencingBounds() de Li&'t Li&'t.. #uando un objeto uente de luz con límites de in4uencia
intersecciona con los límites de un objeto visual) se utiliza la luz para sombrear todo el objeto.
!os límites de in4uencian de una luz determinan +ué objetos iluminar) no +ué porciones de
objetos se iluminan.
Modelo de Sombreado
El mod
modelo
elo de il
ilumi
uminac
nación
ión sombrea
sombrea tod
todos
os los vértice
vértice de un obj
objeto
eto vi
visua
suall por cada luz de
in4uencia. !a sombra de un vértice es la suma de las sombras proporcionadas por cada uente
de luz para la vértice. El resto de un objeto visual se sombrea basándose en la sombra de los
vértices.
vértices. El mode
modelolo de somb
sombra
ra de un objeto visual)
visual) espe
especi*c
ci*cado
ado como atributo (ppearance
)ode#omponent)) determina cómo se (ace el sombreado para el resto del objeto visual.
)ode#omponent
El #olorin&(ttr
#olorin&(ttributes
ibutes )ode#ompon
)ode#omponent ent especi*ca el modelo de sombra para los objetos
visu
visual
ales
es do
dond
nde
e el momode
delo
lo de so somb
mbra
ra se es espe
peci
ci*c
*ca
a cocomo
mo un
uno
o de S*(D+GO,-(,D
S*(D+GO,-(,D))
S*(D+.L(/)) .(S/S/
S*(D+.L(/ .(S/S/)) )I#S/
)I#S/.. DeDebe
bemo
moss te
tene
nerr cu
cuid
idad
adoo ya +u
+uee el co
colo
lorr de un ob
obje
jeto
to
#olorin&(ttributes nunca
#olorin&(ttributes nunca se utiliza en el sombreado.
sombreado.
En el sombrad
sombrado o Gouraud
Gouraud)) cada pixel se sombrea con un valor derivado de la interpolación
trilinear del valor de la sombra de cada vértice del polígono +ue lo encierra. En el sombreado
plano) todos los pixeles de un polígono se asignan el valor de la sombra a partir de un vértice del
polígono. !a 0igura 123 muestra una esera sombreada plana y una esera sombrada Gouraud Gouraud..
!a ventaja del sombreado plano es la velocidad en la representación del sot=are. El sombreado
de Gouraud
Gouraud tiene
tiene la ventaja de la apariencia visual.
>n "ltimo punto antes de ir a un ejemplo? los objetos uentes de luz no son objetos visuales.
&ncluso si una uente de luz se situa dentro de la vista) no será renderizada.
'e necesita una serie de pasos para permitir la iluminación de los objetos visuales en el universo
virtual. $demás de crear y de personalizar objetos para re+uisitos particulares de luz) cada
objeto
obje to de luz debe ser agr
agregad
egadoo al escenario
escenario grá*co y (aber especi*cad
especi*cado o un obje
objeto
to %ound
%ound..
#ada objeto visual +ue se va a sombrear debe tener super*cies normales y características de
material. $bajo podemos ver la receta con los pasos necesarios-
. Esp
Espec
eci*c
i*caci
ación
ón de
de la uen
uente
te de
de !uz
!uz
. se
sele
lecc
ccio
iona
narr los
los lími
límite
tess
,. a9a
a9adir
dirla
la al esc
escena
enario
rio grá
grá*co
*co
,. 6bje
jeto
to @is
isua
uall
. super*
r*ccies
,. pr
prop
opie
ieda
dade
dess de mate
materi
rial
al
'i alta algunos de estos elementos no se podrá usar la iluminación. !a presencia del objeto
Material en
Material en un manoj
manojoo (ppearance
(ppearance de de un objeto visual permite el modelo de iluminación para
ese objeto.
objeto. 'in el objeto Material
Material el
el objeto visual será coloreado) pero no sombreado por el
#olorin&(ttribute o los colores
#olorin&(ttribute colores de vértice
vértice del objeto
objeto Geometr0
Geometr0.. 'i ni uno ni otro están
presentes) el objeto será blanco sólido. !a 0igura 12A muestra la excepción lanzada cuando un
objeto visual tiene un objeto Material
Material pero
pero no tiene super*cies normales.
javax.me
javax.media
dia.j
.j3D.
3D.Il
Illeg
legal
alRen
Rende
derin
ringS
gStat
tateEx
eExce
cepti
ption
on:
: anno
annot
t do lig!t
lig!tin
ing
g
"it!out
specif#ing normals in geometr# o$ject
!os errores con uentes de luz pueden no ser áciles de encontrar. 7o (ay ning"n aviso de +ue
dejamos sin luz un escenario grá*co. 7i (ay ninguna alerta por no *jar los límites de in4uencia
de una uente de luz. En cual+uiera de estos casos) el objeto de luz no tendrá ninguna in4uencia
sobre los objetos visuales en el escenario grá*co. >n objeto visual especi*cado correctamente
para sombreado es decir) uno con un objeto Material
Material// en un escenario grá*co vivo pero uera
de los límites de in4uencia de todos los objetos uente de luz se renderizará a negro.
Es po
posi
sibl
ble
e es
espe
peci
ci*c
*car
ar co
corr
rrec
ecta
tame
ment
nte
e un
unaa es
esce
cena
na en la cu cual
al un obobje
jeto
to vi
visu
sual
al co
conn la
lass
características materiales in4uenciadas por un objeto de luz y +ue se renderice a negro. !a
orientaci
orientación
ón relativa
relativa de la luz) el obje
objeto
to visual) y la dirección
dirección de la visión entran en jueg
juego
o en el
renderizado.
'eg"n lo mencionado arriba) crear renderizados con sombras implica la especi*cación apropiada
de la uente de luz y de los objetos visuales. Basta el momento) ni la clase Li&'t
Li&'t ni
ni los objetos
Material se
Material se (an discutido en detalle. 'in embargo) aprovec(ándo
aprovec(ándo los valores por deecto del $%&
y sus características) podemos proceder a iluminar mundos virtuales. !os primitivos geométricos
generan super*cies normales cuando se solicitan. !os valores por deecto del objeto Material
especi*can un objeto visual razonable. !os valores por deecto de los constructores de la uente
de luz especi*can uentes de luz utilizables.
por deecto
deecto iluminada
iluminada por un solo objeto
objeto uente de luz (mbientLi&'t
(mbientLi&'t.. El primer método del
ragmento del código ensambla un objeto Material
Material con
con un objeto (peareance
(peareance para para la esera. El
segundo método crea un objeto %ranc'Group
%ranc'Group para
para servir como la raíz de la rama de contenido
grá*co)
grá*c o) después agrega
agrega los objetos
objetos Sp'ere
Sp'ere y (mbientLi&'t
(mbientLi&'t al escenario grá*co. El objeto
Material en
Material en el manojo del aspecto se agrega al objeto Sp'ere
Sp'ere en
en la construcción de la esera
líneas , y 3/. >n valor por deecto %oundin&Sp'ere
%oundin&Sp'ere proporciona
proporciona la región de in4uencia para
el objet
objeto
o (mbientLi&'t
(mbientLi&'t líneas A a C/. El diagrama del escenario grá*co de este mundo
virtual aparece en !a 0igura 121.
!as líneas y A del .ra&mento de códi&o 1"2 podrían ser reemplazadas por la siguiente línea
+ue crea y usa un objeto Material
Material anónimo.
anónimo.
&ppear.set+aterial(ne" +aterial())*
El Simple,niverse
Simple,niverse proporciona
proporciona los objetos Virtual,niverse
Virtual,niverse y Locale
Locale junto
junto con el la rama de
vista
vista grá
grá*ca
*ca para el didiagr
agrama
ama de escescena
enario
rio grá
grá*co
*co mostrado
mostrado en la 0ig igura
ura 12
121.
1. 'i'in
n una
transormación) el objeto Sp'ere
Sp'ere y
y el objeto %oundin&Sp'ere
%oundin&Sp'ere estarán
estarán centrados en el origen) y
se interseccionarán. El objeto Sp'ere
Sp'ere se se sombrea por la uente (mbientLi&'t
(mbientLi&'t.. !a 0igura 12C
muestra la imagen +ue resulta con un ondo blanco. !a especi*cación del ondo no se muestra
en el código.
!a esera de la 0igura 12C es de color gris uniorme) +ue es el valor por deecto de la propiedad
ambiente del material.
!a 0igura 12C muestra +ue las escenas iluminadas unicamente con luz ambiente son opacas.
#omo la iluminación ambiente es uniorme) produce la sombra uniorme. !a luz ambiente está
pensada para llenar de luz una escena donde otras uentes no iluminan. !a adición de una uente
DirectionalLi&'t (ará
DirectionalLi&'t (ará esta escena más interesante.
&nsert
&nsertan
ando
do el .ra&m
ra&ment
entoo de cód i&o 1"5 en el
códi&o el .ra&
ra&men
mento
to de códi&o 1"2 se a9ade
códi&o a9ade un
DirectionalLi&'t a
DirectionalLi&'t a la rama de contenido grá*co de la escena. >na vez más los valores por
deecto se utilizan para la uente de luz) y se utiliza un %oundin&Sp'ere
%oundin&Sp'ere por
por deecto para la
región de in4uencia. !a 0igura 12 muestra el diagrama del escenario grá*co +ue resulta sin los
objetos proporcionados
proporcionados por el Simple,niverse
Simple,niverse..
!a 0igura 12F muestra la imagen producida por la combinación de los dos ragmentos del código
código..
!a in4uencia
in4uencia del obj
objeto
eto (mbientLi&'t
(mbientLi&'t apenas
apenas se puede verver con la uente DirectionalLi&'t .
6bviamente) es necesaria la personalización de los re+uisitos particulares de los objetos de luz
yGo las características materiales del objeto visual para crear escenas interesantes.
!a in4uencia de un objeto de luz en el mundo no está aectada por la posición del objeto de luz
en el escenario grá*co? sin embargo) el objeto bounds
bounds reerenciado
reerenciado por la luz si lo está. El objeto
bounds está
bounds está sujeto a las coordenadas locales del escenario grá*co donde se inserta el objeto de
luz. #onsideremos la 0igura
0igura 12H como ejemplo. El mismo objeto %oundin&Sp'ere
%oundin&Sp'ere reerenciado
reerenciado
por dos uentes de luz proporciona dos regiones de in4uencia distintas debidas la traslación
proporcionada por el objeto /rans!ormGroup
/rans!ormGroup.. El origen del sistema de coordenadas local del
escenario grá*co debajo del /rans!ormGroup
/rans!ormGroup está
está , metros por debajo del origen del mundo
!ocale/ y la otra región de la esera de in4uencia.
'i dependen o no) los objetos de la uente de luz del escenario grá*co en la 0igura 12H
in4uen
in4uencia
cian
n el som
sombr
bread
eadoo lu
luz/
z/ de
dell ob
objet
jeto
o vis
visual
ual ilu
ilumin
minado
ado si los lím
límite
itess de
dell ob
objet
jeto
o vi
visua
suall
interseccionan
de una luz comocon
unlasólo
región de in4uencia
podría nodeuncionar
bounds podría
bounds los objetos detodas
para luz. Especi*car la región de in4uencia
las aplicaciones.
#lase Li&'t
El $%& Java 3D proporciona cuatro clases para luces. 8odas se derivan de la clase Li&'t
Li&'t.. !a 0igura
12 muestra
muestra la jerar
jerar+uía
+uía de clases de Java 3D relacionad
relacionada
a con las luces. Li&'t
Li&'t)) una clase
abstracta) proporciona
proporciona los métodos y las constantes de capacidade
capacidadess asociadas para manipular el
estado) color) y los límites de un objeto Li&'t
Li&'t.. El estado de la luz es un boleano +ue activa y
desactiva la luz.
El siguiente blo+ue de reerencia lista los métodos y las constantes de la clase Li&'t
Li&'t.. Debemos
recordar +ue los límites seleccionados con setInfluencingBounds() activan una luz cuando
el objeto bounds
bounds reerenciado
reerenciado intersecciona con la vista.
Li&'t es
Li&'t es una clase abstracta +ue contiene variables de ejempla
ejemplarr comunes a todas las luces.
&9=8I6>?E6I68B9?6DS8RE&D @ =RI7E
&9=8S7&7E8RE&D @ =RI7E
&9=899R8RE&D @ =RI7E.
Lu7 (mbiente
!os objetos de luz ambiente proporcionan luz de la misma intensidad en todas las localizaciones
y en todas las direcciones. !os objetos de luz ambiente modelan la luz re4ejada desde otros
objetos visuales. 'i miramos la super*cie inerior de nuestro escritorio) veremos la parte inerior
del escritorio aun+ue ninguna uente de luz esté dando directamente en esa super*cie a menos
+ue tengamos una lámpara bajo el escritorio/. !a luz +ue brillaba (acia arriba en el ondo del
escritorio se re4ejó en el suelo y en otros objetos. En ambientes naturales con muc(os objetos) la
luz se re4eja desde muc(os objetos para proporcionar la luz ambiente. !a clase (mbientLi&'t
de Java 3D simula este eecto.
>n objeto uente de luz ambiente proporciona la misma intensidad de luz en todas las
localización y direcciones.
localización direcciones. 5odela la compleja re4exión
re4exión inter2objetos de la luz presente en
escenas naturales.
&m$ientig!t()
#onstruye e inicializa un objeto uente de luz ambiente usando los siguientes valores por
deecto-
• lig(t6n true
• color ) ) /
&m$ientig!t(olor3f color)
5ientras +ue podría ser natural pensar +ue una uente de luz ambiente se puede aplicar
globalmente) esto no es necesariamente cierto en un programa Java 3D. !a in4uencia de la
uente (mbientLi&'t
(mbientLi&'t está
está controlada por sus límites igual +ue otras uentes de luz Java 3D. 'e
pueden utilizar varios objeto uente (mbientLi&'t
(mbientLi&'t en en un programa de Java 3D. 7o (ay límite en
el n"mero de los objetos uentes (mbientLi&'t
(mbientLi&'t +ue +ue se pueden utilizar.
Lu7 Direccional
>na uente
>na uente DirectionalLi&'t
DirectionalLi&'t aproxima uentes de luz muy distantes tales como el sol. $l
contratrio
contratrio +ue las uent
uentes
es (mbientLi&'t
(mbientLi&'t)) las uentes DirectionalLi&'t
DirectionalLi&'t proporcionan
proporcionan una sola
dirección al brillo de luz. %ara los objetos iluminados con una uente DirectionalLi&'t
DirectionalLi&'t)) el vector
de luz es constante.
!a 0igura 12, muestra dos vértices de la misma esera +ue están siendo iluminados por una
uente
uente DirectionalLi&'t . El vector de luz es igual para estos dos y para todos los vértices.
#ompara !a 0igura 12, con la 0igura 12 para ver la dierencia. %uesto +ue todos los vectores de
luz de una uente
uente DirectionalLi&'t son paralelos) la luz no se aten"a. En otras palabras) la
intensidad de una uente DirectionalLi&'t
DirectionalLi&'t no
no varía con la distancia al objeto visual y la uente
DirectionalLi&'t..
DirectionalLi&'t
!os siguientes blo+ues de reerencia listan los constructores y los métodos de DirectionalLi&'t )
respectivamente.
!os objetos DirectionalLi&'t modelan uentes de luz muy distantes teniendo una dirección del
vector de luz constante
Directionalig!t()
• lig(t6n true
• color ) ) /
&9=8DIRE7I968RE&D @ =RI7E
!os DirectionalLi&'ts
DirectionalLi&'ts sólo
sólo participan en las porciones diusas y specular de la re4exión del
modelo de la iluminación. %ara las re4exiones diusas y specular) la geometría es un actor al
contrario +ue las re4exiones ambiente/. @ariar la dirección de la uente de luz cambiará el
sombreado de los objetos visuales. 'olo las características materiales diusas y specular se
utilizan para calcular las re4exiones diusas y specular.
9unto de Lu7
>n 9ointLi&'t
9ointLi&'t es
es el contra
contrario
rio de un DirectionalLi&'t . Es una uente de luz omnidireccional
cuya intensidad
intensidad se aten"a con la distancia
distancia y tiene una localizació
localización.
n. un DirectionalLi&'t
DirectionalLi&'t no
tiene ninguna localización) solo una dirección/. !os objetos 9ointLi&'t
9ointLi&'t se se aproximan a bombillas)
velas) u otras uentes de luz sin re4ectores o lentes.
!os siguientes
siguientes blo+ues
blo+ues de reerencia
reerencia listan los cons
construct
tructores
ores y los métodos
métodos de 9ointLi&'t
9ointLi&'t))
respectivamente.
El objeto 9ointLi&'t
9ointLi&'t especi*ca
especi*ca una uente de luz atenuada en el espacio +ue irradia la luz
igualmente en todas las direcciones desde la uente de luz.
ointig!t()
#onstruye e inicializa una uente de punto de luz usando los siguientes valores
valores por deecto-
• lig(t6n true
• color ) ) /
• position H) H) H/
• attenuation ) H) H/
%
atenuaciCn
constatelinearcuadrFticoGdistancia
donde distancia es la medida desde la uente de luz al vértice +ue está siendo sombreado.
sombreado.
'elecciona los valores de atenuación actuales de la luz y los sit"a en el parámetro especi*cado.
@er la ecuación anterior.
&9=89SI7I968RE&D @ =RI7E
&9=8&77E6?&7I968RE&D @ =RI7E
SpotLi&'t
!os si
!os sigu
guie
ient
ntes
es bl
blo+
o+ue
uess de re
ree
ere
renc
ncia
ia li
list
stan
an lo
loss co
cons
nstr
truc
ucto
tore
ress y mé
méto
todo
doss de 9ointLi&'t
9ointLi&'t))
respectivamente.
Spotig!t()
#onstruye e inicializa una uente de luz usando los siguientes valores por deecto-
• lig(t6n true
• color ) ) /
• position H) H) H/
• attenuation ) H) H/
• concentration H.H
&9=8SRE&D8&6E8RE&D @ =RI7E
&9=896E67R&7I968RE&D @ =RI7E
&9=8DIRE7I968RE&D @ =RI7E
#on todos los tipos de uentes de luz) y la variedad de maneras de utilizarlas) veremos una
pe+ue9a guía de su uso típico en esta sección. En general) desearemos utilizar tan pocas uentes
de luz como se pueda para una aplicació
aplicación
n dada. #uántas son su*cientes dependerá del eecto de
iluminación deseado para la aplicación. El n"mero de luces y la con*guración de atributos es
más una consideración artística +ue cientí*ca.
Desde un punto de vista artístico) a menudo es su*ciente tener solo dos luces para una escena
dada. >na luz proporciona la iluminación principal) la otra se utiliza para completar la cara más
oscura de los objetos. !a luz principal normalmente se coloca a la derec(a del espectador) el
relleno a la iz+uierda del espectador.
espectador. >na vez más éstas son pautas generales para lo +ue pueda
ser un dise9o artístico complejo.
complejo.
7ormalmente se pre*ere incluir uentes de luz direccionales para la mayoría de las aplicaciones
puesto +ue el cálculo re+uerido en la representación es perceptiblemente menor +ue para los
puntos de luz. !as uentes de puntos de luz se usan muy raramente debido a la alta complejidad
de cálculo.
Es normal incluir una sola uente de luz ambiente con una gran región de in4uencia. Esto
iluminará las partes posteriores de los objetos como la Icara oscura de la lunaI/. El valor por
deect
deecto
o del col
color
or un
unci
ciona
onará
rá raz
razona
onable
blemen
mente
te bi
bien.
en. El tie
tiempo
mpo re
re+ue
+uerid
rido
o pa
para
ra inc
inclui
luirr la luz
ambiente es pe+ue9o comparado con otras uentes de luz. Dejar uera una luz ambiente puede
ser muy sensible en algunas escenas) y no ser notado en absoluto en otras.
jemplos de Iluminación
!a interacción de la luz con los objetos es muy compleja en la naturaleza. &ncluso en el mundo
virtual donde es menos complejo el modelo de la iluminación) las uentes de luz son simplista
simplistas)
s) y
las super*cies son menos detalladas) el eecto de una uente de luz en un objeto visual es algo
complejo. Esta sección presenta algunos ejemplos de la iluminación para ayudar a clari*car las
características) capacidades)
capacidades) y las limitaciones del modelo de iluminación en Java 3D.
!a 0igura 12A muestra una sola esera blanca iluminada por dos uentes de luz direccionales)
una roja y una azul. $un+ue puede sorprendernos) la sombra +ue resulta es magenta. 5ezclar
rojo y azul da lugar a la p"rpura) +ue es el resultado en el sistema de color sustractivo. 5ezclar
luces rojas y azules resulta en magenta) los resultados de un sistema de color aditivo.
En ausencia de luz) la esera es negra. 'i la "nica uente de luz es roja) entonces la esera
aparecerá roja) o algo sombreada en rojo. #on la adicción de una uente de luz azul) sólo son
posibles el rojo) el azul y las mezclas de estos dos.
!a siguiente aplicación ilustra las dierencia entre las uentes de luz. En Li&'ts)9lanes(pp4java
se iluminan tres planos con una uente de luz distinta. De iz+uierda a derec(a) los objetos
DirectionalLi&'t)) 9ointLi&'t
DirectionalLi&'t 9ointLi&'t)) y SpotLi&'t
SpotLi&'t iluminan los planos. !a 0igura 121 muestra la
imagen renderizada por la aplicación.
!a 0igura 12C ilustra la geometría implicada en la iluminación de los primeros dos planos. En la
ilustración iz+uierda) los vectores de luz constantes de la uente DirectionalLi&'t
DirectionalLi&'t en
en conjunción
con los vectore
re4exión)vecto ress nor
e inclusonormal
demales
laes consta
constante
ntessdeldeplano.
iluminación un pla
plano
Ennola dan lugar
lugar aderec(a
ilustración vector
vectores
eslosco
const
nstant
antes
vectoreses de
deluz
la
variables de la uente 9ointLi&'t
9ointLi&'t se
se combinan con los vectores normales constantes del plano
dando por resultado las distintas direcciones para los vectores de re4exión) y una iluminación
desigual del plano. El SpotLi&'t
SpotLi&'t es
es un caso especial de la uente 9ointLi&'t
9ointLi&'t donde
donde la in4uencia
de la uente de luz está limitada por el ángulo de la extensión.
#oncentración
#oncentración 0 :n&ulo de ;tensión de SpotLi&'ts
!a 0igura 12 muestra las imágenes renderizadas a partir de versiones distintas del programa
#oncentration(pp4java. >n plano es iluminado por nueve puntos de luz. !os valores del ángulo
y de la concentración de la extensión para las luces de los puntos varían con la posición. El
ángulo de la extensión varía por cada *la con valores de .) .3 y .A radianes/ desde la *la
superior a la inerior) respectivamente. !a concentración varía por cada columna con valores de
)H) AH)H) y HH)H desde la columna de la iz+uierda a la de la derec(a) respectivamente.
!os valores de concentración no tienen ning"n eecto para la *la superior) el ángulo de la
extensión es el "nico actor. En la *la inerior) la concentración tiene un eecto para cada uno de
los ángulos de la extensión. El azul en las imágenes es el color diuso del material.
>sando los límites de in4uencia para seleccionar solamente las uentes de luz relevantes para un
objeto visual) Java 3D crea dinámicamente las especi*caciones de iluminación para las luces
mientras +ue se renderizan los objetos visuales. 5ientras +ue ning"n objeto sea iluminado por
más de oc(o luces) los programas de Java 3D no están limitados en el n"mero de luces en un
mundo virtual.
%or eso proporcionar al cuadro planos más pe+ue9os y los límites apropiados para asegurarse de
+ue ning"n plano se ve in4uenciado por más de oc(o luces) en el ejemplo parece +ue (ay nueve
luces
luces r
real
ealmen
mente te di
diez)
ez) con la luz amb
ambien
iente/
te/ ilu
ilumin
minand
ando
o un pl
plano
ano.. 7ec
7ecesi
esita
ta un poc
poco
o más
prog
progra
rama
macición
ón)) pe
pero
ro el pr
prog
ogra
rama
ma +u +ue
e re
resu
sult
ltaa es má
máss po
port
rtab
able
le.. 5i
5ien
entra
trass +u
+ue
e mu
muc(
c(as
as
implementa
impl ementacione
cioness de OpenGL
OpenGL utilizan
utilizan más de oc(o luces simultáneas) si estamos planeando
distribuir nuestros programas) debemos tener en cuante esta limitación potencial.
potencial.
En esta sección)
iluminación Javaalgunos
3D. !a ejemplos
intenciónmuestran alguna de
de esta sección es las
darcaracterísticas
a los lectoresyalgunos
las limitaciones
ejemplosdede
la
programas básicos y algunas *guras de ejemplo para comparar con sus propios programas. 7o
es posible proporcionar ejemplos de cada posible situación de iluminación) pues los actores en
la representación son demasiado dierentes.
Objetos Material
!as característic
características
as materiales
materiales de un obje
objeto
to visu
visual
al se espe
especi*c
ci*can
an en el obje
objeto
to Material
Material de
de un
manojo de aspecto. Material
Material es
es una subclase de )ode#omponent
)ode#omponent.. !a 0igura 12F muestra la
jerar+uía de clases
clases del $%& Java
Java 3D para Material
Material..
El objet
objeto
o Material
Material especi*ca colores ambiente) diusos) especular) y emisivo y un valor de
brillantez. #ada uno de los tres primeros colores se utiliza en el modelo de iluminación para
calcular la re4exión correspondiente. El color emisivo permite +ue los objetos visuales Ibrillen
intens
intensame
amente
nte en la oscoscuri
uridad
dadI.
I. El val
valor
or de bri
brilla
llante
ntezz se uti
utiliz
liza
a sol
solame
amente
nte pa
para
ra cal
calcul
cular
ar
re4exiones especulares.
!os siguientes blo+ues de reerencia enumeran los constructores y los métodos de la clase
Material..
Material
El objeto Material
Material de*ne
de*ne la aparienia de un objeto bajo la iluminación.
+aterial()
• emissive#olor
emissive#olor H) H) H/
• diuse#olorr ) ) /
diuse#olo
• specular#olor
specular#olor ) ) /
• s(ininess H.H
java.lang.String toString()
&9=89+96E678RE&D @ =RI7E
%ermite llerGescribir
llerGescribir inormación de los campos individuales del componente.
!as re4exiones especulares ocurren naturalmente en los objetos lisos. En general) cuanto más
lisa sea una super*cie) más de*nida e intensa es la re4exión especular.
especular. #uando una super*cie es
su*cientemente lisa) act"a como un espejo +ue re4eja la luz sin cambiar el color de la luz. %or lo
tanto) el color especular de un objeto normalmente es blanco. #ambiamos el color specular de
un Material
Material para
para alterar la intensidad de una re4exión specular por ejemplo) olor3f(4.1f5
4.1f5 4.1f)/.
El valor de brillantez controla el rango de la extensión del ángulo de la visión para el cual se
puede ver una re4exión especular. >na brillantez más alta resulta en re4exiones especulares
más pe+ue9as. !a 0igura 12,H muestra nueve eseras distintas iluminadas por una uente de luz.
#ada esera tiene un valor de brillantez distinto.
Material
Bay tres maneras de especi*car el color para un objeto visual- color por2vértice especi*cado en
la geometría con los métodos getolor()) #olorin&(ttributes
#olorin&(ttributes de de un nodo (ppearance
(ppearance)) y el
objeto Material
Material.. Java 3D permite +ue creemos objetos visuales sin usar ninguna) alguna) o las
tres ormas de especi*car color.
#uando se (a (ec(o más de una especi*cación del color) dos sencillas reglas determinan +ué
especi*cación del color toma la precedencia.
• #olo
#olorr Material
Material se utiliza solamente cuando la representación ilumina objetos y
col
olor
or de #olorin&(ttributes
#olorin&(ttributes sól
sólo
o se uti
utiliz
liza
a cua
cuando
ndo se ren
rende
deriz
rizan
an obj
objeto
etoss no
iluminados.
• ;eometría
;eometría po
por2
r2vér
vértic
tice
e sie
siempr
mpre
e tie
tiene
ne pr
prece
eceden
dencia
cia sob
sobre
re #olorin&(ttributes
#olorin&(ttributes o
Material..
Material
!as reg
regla
lass pue
pueden
den ser más cl
clara
arass cua
cuando
ndo el pr
probl
oblema
ema se div
divid
ide
e en ob
objet
jetos
os ilu
ilumin
minad
ados
os o
apagados. !a iluminación está activa para un objeto cuando se reerencia un objeto Material
Material..
&nversamente) cuando no se asocia ning"n objeto Material
Material al
al objeto visual) la iluminación está
desactivada para ese objeto. 6bserva +ue una escena puede tener tanto objetos iluminados
como apagados.
#uando la iluminación está activa para un objeto es decir) se reerencia un objeto Material
Material/)
/) se
utilizan el color material o el color de la geometría por2vértice
por2vértice para sombrear.
sombrear. 'i esta presente) el
color por2vértice
por2vértice reemplaza los colores de Material
Material diusos
diusos y ambiente. 6bserva +ue el color de
#olorin&(ttributes nunca
#olorin&(ttributes nunca se utiliza para la iluminación de objetos. !a siguiente 8abla resume
las relaciones-
#olo
#olorr de Geom
Geomet
etr0
r0 por
por V=rti
=rtice
ce #olo
#olorr #olo
#olori
rin&
n&(t
(ttr
trib
ibut
utes
es -esu
-esult
ltad
ado o
76 76 #olor 5aterial
'& 76 #olor ;eometry
76 '& #olor 5aterial
'& '& #olor ;eometry
#uando la iluminación está desactivada para un objeto es decir) no se reerencia un objeto
Material/)
Material /) se usan el color de #olorin&(ttributes
#olorin&(ttributes o o el color de por2vértice para colorear. 'i está
presente)
pres ente) el colo
colorr de la geom
geometría
etría por2vér
por2vértice
tice reemplaza
reemplaza el colo
colorr de #olorin&(ttributes
#olorin&(ttributes.. !a
siguiente 8abla resume las relaciones.
#olo
#olorr Geo
eom
metr
etr0 por V=r
=rttic
ice
e #ol
#olor #olo
#olorrin
in&
&(ttr
(ttriibut
utes
es -es
esul
ulta
tad
do
76 76 blanco plano
'& 76 #olor ;eometry
76 '& #oloring$ttributes
'& '& #olor ;eometry
Superfcies )ormales
'eg"n lo mencionado en secciones anteriores) las super*cies normales son necesarias para
sombrear los objetos visuales. $l crear objetos visuales usando clases Geometr0
Geometr0)) utilizamos uno
de los métodos set6ormal() para especi*car los vectores de los vértices.
El )ormalGenerator
)ormalGenerator incluido con los utilidades de Java 3D genera super*cies normales al
especi
especi*ca
*carr los ob
objet
jetos
os vi
visua
suale
less +ue usa
usan
n obj
objeto
etoss Geometr0In!o
Geometr0In!o.. %a
%ara
ra gene
generar
rar supe
super*cie
r*ciess
normales) ponemos nuestro objeto visual Geometr0
Geometr0 y llamamos a
6ormalenerator.generate6ormals() .
!os primitivos geométricos generan sus propias super*cies normalea cuando son especi*cados.
7o importa cómo se especi*can o se generan/ las super*cies normales) sólo se especi*ca una
super*cie normal por vértice. Esto conduce a algunos problemas interesantes. %or ejemplo)
cuando las dos super*cies normales de polígonos son visibles) la normal es solamente correcta
para una de las super*cies normales. El resultado es +ue las caras posteriores sean renderizadas
si se renderizan/ solamente con las características materiales de ambiente. !as re4exiones
diusa y especular re+uieren la especi*caci
especi*cación
ón normal apropiada.
Este problema com"n se soluciona especi*cando caras normales detrás al contrario +ue las
super*
super*ci
cies
es nor
normal
males
es del
delant
antera
eras.
s. >ti
>tiliz
lizamo
amoss el mét
métod
odo
o setBac>ace6ormal>lip() de un
objeto 9ol0&on(ttributes
9ol0&on(ttributes para
para este propósito
propósito..
!a 0igura 12, muestra dos imágenes sombreadas de una tira doblada. !a imagen de la iz+uierda
ue renderizada
renderizada desde la supe
super*cie
r*cie rontal)
rontal) y la dere
derec(a
c(a muest
muestra
ra las super*cies
super*cies norm
normales
ales
traseras.
#uando un vértice es compartido por las super*cies normales o varian las orientaciones) tener
solamente una super*cie normal por vértice puede dar lugar a problemas. #onsideremos los
ejemplos ilustrados en la 0igura 12,,. !a geometría ilustrada en la cara del lado iz+uierdo de la
0igura
0igura 12,, muestra la sección transversal de una super*cie donde cada polígono se orienta a un
ángulo de FHK de sus vecinos. 'i se selecciona la super*cie normal como el normal actual para
una super*cie) es muy incorrecto para su vecino. 'i las super*cies normales se especi*can seg"n
lo mostrado) entonces la super*cie estará sombreada constantemente entre los vértices con
super*cies paralelas. >n problema similar ocurre con la geometría del cubo mostrada en la cara
derec(a en la 0igura 12,,. !a solución a ambos problemas es aumentar el n"mero de vértices
para aumentar el n"mero de super*cies normales. Esto) por supuesto) aumenta el uso de la
memoria y el tiempo de la renderización.
>n obje
objeto
to %oundin&Lea! es un al alte
tern
rnat
ativ
iva
a a un objet
objeto
o %ounds
%ounds de in4
in4uen
uencia
cia.. >n ob
objet
jeto
o
%oundin&Lea! es
es reerido por otros nodos de la (oja para de*nir una región de in4uencia. #omo
descendiente
grá*co. de SceneGrap'Object
El objeto SceneGrap'Object)
está )sujeto
%oundin&Lea! está los ejemplares
al sistemadede%oundin&Lea! se agregan
se
coordenadas local al escenario
de su posición en el
escenario grá*co) +ue podría ser independiente del sistema de coordenadas del objeto de luz. Es
dec
eciir) us
usar
ar un %oundin&Lea! peperm
rmitite
e a un
unaa lu
luzz y a su
suss lí
lími
mite
tess de inin4u
4uen
enci
cia
a mo
move
vers
rse
e
independientemente.
!a 0igura 12,3 muestra el diagrama del escenario grá*co para una aplicación de ejemplo de un
objeto %oundin&Lea! con
con objetos de luz. En esta escena) se mueven dos luces junto con un
objeto /rans!ormGroup
/rans!ormGroup a a la derec(a/. Estas luces podían ser ejemplares de 9ointLi&'t
9ointLi&'t o de
SpotLi&'t.. 'in embargo) la in4uencia de estas luces no cambia cuando las luces se mueven. !a
SpotLi&'t
in4uencia de las luces se mueve cuando el /rans!ormGroup
/rans!ormGroup iz+uierdo
iz+uierdo cambia la localización del
objeto %oundin&Lea!
en la 0igura 12H. . %odemos comparar este diagrama del escenario grá*co con el +ue está
En la 0igura 12H) si se mueve la luz) su región de in4uencia también se mueve. 8ambién) seg"n
lo demostrado en la 0igura 12H) la región de in4uencia de dos luces +ue comparten el mismo
objeto
objeto %ounds
%ounds pueden
pueden o no pueden tener la misma región de in4uencia. #uando dos o más
luce
lucess co
comp
mpar
arte
tenn el mi
mism
smo
o ob
obje
jeto
to %oundin&Lea! ) ti tien
enen
en si
siem
empr
pre
e la mi
mism
smaa re
regi
gión
ón de la
in4uencia.
!a escena consiste en una lámpara y algunos objetos visuales en una mesa. !a lámpara tiene
una sombra) por eso no todos los objetos) ni toda la mesa) debe ser iluminada por la lámpara. El
interior pero no el exterior/ de la lámpara también se debe iluminar en este ejemplo) la sombra
de la lámpara es completamente opaca/. 'abemos +ue Java 3D no proporcionará la obstrucción
por nosotros. >sando sólo un volumen de limitación) la in4uencia de la luz puede ser controlada)
pero podría ser muy diícil) especialmente si se iluminan y apagan objetos +ue están uno cerca
del otro) o se mueven.
Especi*car un ámbito de limitaciones para la luz nos permite controlar limitaciones complejas
complejas de
la in4uencia
apag ados en más
apagados ácilmente.
partes
parte s sepa radas!adel
separadas "nica consideración
nario grá*co. es
escenario
esce mantener
7uestro los objetos
pensamie
pensamiento iluminados
nto inic
inicial
ial pudo sery
come
co menz
nzar
ar a co
cons
nstr
trui
uirr el es
esce
cena
nario
rio gr
grá*
á*co
co %ranc'Groups
%ranc'Groups papara
ra los objetos
objetos ilu
ilumin
minado
adoss y
apagad
apa gados)
os) pe
pero
ro éso no es a men menudo
udo necesari
necesario
o ni re
recom
comend
endad
ado
o par
para
a la may
mayorí
oría
a de las
aplicaciones.
El área brillante debajo de la lámpara no representada en ning"n diagrama del escenario
grá*co/ es un polígono situado justo sobre la tapa de la mesa. Este polígono brillante representa
representa
la parte de la mesa +ue es iluminada por la lámpara. El área brillante aparece más ligera +ue el
resto de la mesa incluso en la imagen derec(a de la 0igura 12F/ por+ue sus super*cies se
alinean más cercanas al punto de luz de la lámpara.
!a sombra en esta escena ue creada a mano. !as técnicas para crear sombras automáticamente
incluso dinámicamente/ se discuten en la siguiente sección.
8ampoco se representan en ning"n diagrama del escenario grá*co las tres uentes de luz
8ampoco
adicionales- dos uentes de luz direccionales y una uente de luz ambiente. Mstas son necesarias
para simular la luz de una escena natural.
int numScopes()
6tra ventaja de usar alcances para limitar la in4uencia de una luz- puede reducir el tiempo de
renderizado. #alcular la intersección de los límites para un objeto visual con los límites +ue
in4uencian de una luz es más complejo +ue determinar el alcance de una luz. Debemos tener
cuidado con +ue ni el uso de los límites de in4uencia ni los alcances limitará la in4uencia de una
luz a una parte de un objeto visual.
Objetos %rillantes"en"la"Oscuridad
El objeto
objeto Material
Material permite
permite la especi*cación de un color emisivo. Esto se puede utilizar para
crear el eecto de un objeto brillante en la oscuridad. 8ener un color emisivo no (ace del objeto
visual una uente
en aplicaciones de luz? notales
especiales) iluminará
comootros objetos
indicar visuales.
un objeto El Material
especialMaterial Emisivo
Emisivo
o un objeto es(a
+ue se también "til
escogido.
!a 0igura 12,1 muestra la escena del programa del ámbito de luz donde se le (a dado color
emisivo al rectángulo no iluminado. #omparemos esta imagen con la imagen iz+uierda de la
0igura 12,A. #omo podemos ver) el uso del color emisivo sólo modi*ca al objeto visual +ue lo
tiene. Este ejemplo también demuestra +ue el uso e*caz del color emisivo) como con la mayoría
de los parámetros de la iluminación) es más un problema artístico +ue de programación.
#alcular Sombras
!a complejidad de calcular sombras es tan grande +ue no orma parte de ning"n sistema de
grá*cos en tiempo real. !a complejidad viene de cálcular si la uente de luz alcanza o no un
vértice. 8odo polígono de otro objeto visual debe ser considerado al calcular la respuesta.
El sombreado es muc(o más complejo en realidad. !as uentes de luz no son uentes puramente
direccionales ni perectas. %or lo tanto) las sombras no tienen bordes sostenidos. &gnorando la
realidad) como (acemos a menudo en grá*cos) ec(emos una ojeada a las ormas de simular
sombras.
#rear Sombras
Bay dos partes básicas al simular o al alsi*car/ sombras- calcular donde están las sombras) y
crear geometrías o texturas/ para servir como sombras. Bay varias maneras de calcular la
localización
localización de la sombra) pero los detalles de las distintas técnicas de sombreado están más allá
del alcance de esta guía. !as dos secciones siguientes cubren dos técnicas generales para crear
el contenido de la sombra.
Sombrear 9ol>&onos
7o importa cómo se especi*+ue un polígono sombra) la posición del polígono sombra es justo
arriba) o en rente de) el polígono al +ue da sombra. 5ientras +ue la adición de polígonos sombra
no da lugar normalmente a más polígonos para renderizar debido a la obstrucción de otros
polígonos/ crea más objetos en el universo virtual lo +ue puede degradar el uncionamiento de la
renderización.
En vez de crear los polígonos sombra) las sombras pueden crearse cambiando la in4uencia de
luces para excluir polígonos Len la sombraL. El ámbito de luces es "til para este propósito. 'in
embargo) puesto +ue la in4uencia se determina en base al objeto) puede ser complejo calcular
cómo subdividir los objetos visuales +ue se sombrean parcialmente.
Sombrear /e;turas
#omo las so
#omo sombr
mbras
as ant
anteri
eriore
ores)
s) las so
sombr
mbrasas nat
natura
urales
les son com
compl
pleja
ejas.
s. >na som
sombra
bra nat
natura
urall
raramente tiene un borde recto y una sombra constante. 'e puede usar el texturado para (acer
sombra
som brass más re
reali
alista
stas.
s. Bay do doss man
manera
erass bá
básic
sicas
as de usa
usarr te
textu
xturad
rado
o par
paraa cr
crear
ear som
sombra
bras-
s-
aplicando textura a los polígonos sombra) o la aplicació
aplicación
n de texturas
t exturas a los objetos visuales.
Debemos tener presente +ue la adición de sombras a una aplicación (ace la aplicación muc(o
más compleja. %or ejemplo) cuando un cubo con una sombra gira) la sombra gira y se deorma.
%ara esa materia) las luces móviles (acen +ue las sombras se muevan también. En cual+uier
caso) el movimiento agrega otro nivel de complejidad a la programaci
programación
ón de sombras.
El pr
prog
ogra
rama
ma S'adow(pp4java da un eje ejemp
mplo
lo de cóm
cómo o se pue
pueden
den crear
crear pol
políg
ígono
onoss som
sombra
bra
sencillos. El programa de*ne una clase para crear los polígonos sombra. !a clase sombra crea un
polígono
polígono 1"3
#ódi&o sombra
mu para
mues
estra cada
tra geometría
geom
la clas
ase etría dada como us
e SimpleS'adow
SimpleS'adow entrada
entra
usadadapa
ada de
ra ino
para inormac
rmación.
crea
crear ión.
r po
polí
lígo
gono .ra&mento
Elnos
s so
sombra de
mbra en
S'adow(pp4java. !a 0igura 12, muestra la escena renderizada con una sombra.
Sombreado
!a vista o las vistas/ asociadas a un escenario grá*co juegan una gran variedad de papeles en
cómo se renderiza una escena. Esta sección no explica todos los papeles del objeto View View.. !a
especi*cación
especi*cació n del $%& Java 3D proporciona una reerencia completa a la clase View
View.. Esta sección
menci
men ciona
ona solament
solamente e do
doss mét
método
odoss de la cla
clase
se View
View "tiles para entender el sombreado de
objetos visuales.
'in embargo) la imagen +ue resulta puede parecer incorrecta. !a 0igura 12,F muestra las
imágenes renderizadas a partir de una escena usando un ojo in*nito y un ojo local usando
diversas uentes de luz.
%ara
de laapreciar
ena..completamente
escena
esc !a esc ena sonlasnue
escena imágenes
nueve
ve es des laen0igura
esera
eras 12,Fnizaci
necesitamos
una organiz
orga ación
ón pl conocer
plana
anar
r. #ada launa
#ada geometría
de las
imágenes se ve con el mismo campo visual desde la misma posición. !as "nicas variables son si
la luz es un DirectionalLi&'t
DirectionalLi&'t o o un 9ointLi&'t
9ointLi&'t)) y si el ojo es in*nito o local. El DirectionalLi&'t
tiene dirección H) H) 2/) el 9ointLi&'t
9ointLi&'t se
se coloca en H) H) /.
!as imágenes a/ y c/ de la 0igura 12,F se renderizan con un ojo in*nito. En estas imágenes) los
vectores del ojo son constantes) así +ue las re4exiones especulares están básicamente en la
misma posición para cada esera. !as imágenes b/ y d/ de la 0igura 12,F se renderizan con un
ojo local. !os vectores del ojo varían en estas imágenes) así +ue las re4exiones especulares
están en distinta posición para cada esera. 6bservemos también +ue la re4exión diusa azul/
en las eseras varía sólo con la uente de luz. El vector del ojo sólo desempe9a un papel en el
cálculo de la re4exión especular.
>na vez más la característica de la visión del ojo in*nito se utiliza para reducir el cálculo) y por lo
tanto el tiempo de la renderización. !a imagen a/ de la 0igura 12,F tarda un menor tiempo para
renderizarse y la imagen d/ tarda el mayor tiempo. !as imágenes b/ y c/ tardan una cantidad
casi igual de tiempo) +ue es menor +ue el tiempo de la imagen d/) pero mayor +ue el de la
imagen a/. El tiempo real para renderizar varía con el sistema utilizado. !a dierencia es más
pronunciada en los sistemas +ue renderizan por sot=are.
El objeto View
View contiene
contiene todos los parámetros necesarios para rendereizar una escena
tridimensional desde un punto de vista.
'elecciona una bandera +ue india si se usa el ojo local para calacular las proyecciones de
perspectivas.
• :E!$8&@EN86N0&E!DN60N@&EO)
• :E!$8&@EN86N'#:EE7) :E!$8&@EN86NO&7D6O
El objeto View
View se
se puede conseguir desde un Simple,niverse
Simple,niverse usando
usando los métodos apropiados.
Entonces el objeto View
View se
se puede manipular como en el siguiente ejemplo-