You are on page 1of 19

1

Escenas3D
VyGLab Lab. de Investigacin y Desarrollo en Visualizacin y
Computacin Grfica
Dpto. de Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur

Lageneracin deunmundo3Drequiere3componentes esenciales:

Elmundo3Ddelosobjetos
Laolasfuentesdeluz
Lacmaraoelojoqueobservalaescena

Al mundo virtual que generemos lo denominaremos escena y a los


objetosenlamisma,actores.

Una cmara especifica nuestra posicin de vista y ciertos


parmetrosdevista(longitud focal,tamaodelaimagen, etc.).

Usaremos transformaciones afines 3D para posicionar y mover


actoresycmarasenlaescena.

Introduccin
Silvia Castro CG 2014
Unaescena

Introduccin
Silvia Castro CG 2014
Mundo
Ojo
Clipping Pantalla 3D
Pipeline3D
Silvia Castro CG 2014
Pipeline3D
Silvia Castro CG 2014
Espacios

Objeto Mundo Ojo Clipping
Modelado Ubicacin Especificacin Clipping
en el Mundo de la cmara
Rotar Rotar Escalar
Trasladar Trasladar Trasladar
Perspectiva
Escalar
Rotar
Silvia Castro CG 2014
Las cmaras virtuales y los
puntos de vista
2
Una vez que se han ubicado los objetos en la escena y se han
posicionado las distintas fuentes de luz, la forma en que la
fotografiemos puede tener tanto impacto en la generacin de la
misma como las decisiones que tomamos durante el proceso de
composicin 3D.

Para fotografiar una escena 3D debemos elegir el punto de vista


desdeelcuallaobservamosytambin lacmara.
Introduccin
Silvia Castro CG 2014
Analogacon
lacmara
Silvia Castro CG 2014
Pipeline3D
Silvia Castro CG 2014
Espacios

Objeto Mundo Ojo Clipping
Modelado Ubicacin Clipping
en el Mundo
Escalar Rotar Escalar
Trasladar Trasladar Trasladar
Rotar Perspectiva
Especificacin
de la cmara
Escalar
Rotar
La Cmara
Silvia Castro CG 2014
Al igual que una cmara real, una cmara virtual saca
una foto de la escena. Las cmaras son un elemento
esencialenelprocesoderenderingporquedefinenqu
vemos en una toma, desde dnde lo vemos y cmo lo
vemos.
LaCmara
Silvia Castro CG 2014
En general, todos los programas de rendering 3D proveen una
cmarapordefectooestndar.

Esta cmara tiene un sistema ptico: filtros, lentes y apertura. La


superficiedeproyeccinpuedeserplanaocurvayestarorientadaa
distintosngulosconrespectoalaluzincidente, lacmaraoelojo.

LaCmara
Silvia Castro CG 2014
3
LaCmara
Lacmaraoscura

Modeloabstractodelacmara
Modelado de la geometra de la
proyeccinperspectiva
Usado en la mayora de las
aplicaciones deCG
Silvia Castro CG 2014
Definicin de la Cmara
Silvia Castro CG 2014
Unmodelodecmarasintticadebetenerinformacin de:

Posicin
Orientacin
Campodevisin(ngulodeancho,normal)
Profundidad deCampo(Planocercanoylejano)
DistanciaFocal
Desviacindelosplanosvista/pelcula(sinoesnormalala
direccindevistaproduceproyeccionesoblicuas)
Proyeccin perspectiva o paralela (cmara cerca de los
objetosoadistanciainfinita)

Veremosendetalle cadaunodestos.
DefinicindelaCmara
Silvia Castro CG 2014
Paradefinirunmodelodecmarasintticadebemosespecificar:
Posicindelacmara(desdedndeseestmirando)
El vector look at (mirando hacia) especifica en qu direccin apunta la
cmara
La orientacin de la cmara est determinada por el vector look at y el
ngulo en el que est rotada la cmara con respecto a ese vector, es
decir,ladireccindelvectorup.
VanDam
DefinicindelaCmara
Silvia Castro CG 2014

Laposicinesunpuntoenelespaciotridimensional(debenespecificarsex,y
yz).

Estesistemadecoordenadasdebeserdemanoizquierdaomanoderechaen
concordanciacontodoelsistemagrfico.
Posicin
Determinarlaposicines anlogo
a decidir el punto desde el cual
tomarlafoto.
VanDam
DefinicindelaCmara
Silvia Castro CG 2014
Laorientacinpordefectoesladelasz(positivasonegativassegnelsistema
decoordenadasseademanoizquierdaodemanoderecha)ylaorientacinup
apuntaenladireccinpositivadelasy(haciaarriba).

La cmara de la figura est localizazda en el origen y est dirigida hacia un


puntoarbitrarioconunadireccinuptambinarbitraria.
Orientacin
La orientacin se especifica
medianteun punto3D,queesel
punto al que se est mirando y
un ngulo de rotacin alrededor
deesadireccin(puntoalquese
mirapuntodeposicin).
VanDam
DefinicindelaCmara
Silvia Castro CG 2014
4
Determinaladistorsinenperspectiva;desde0enunaproyeccinparalelaa
muchaenloslentesgranangular.
Angulodevisin
Enunfrustum,setienenencuentadosngulosdevista:enloanchoyenloalto.Si
se especifica el ngulo de Elevacin el otro ngulo se determina de (Aspect ratio *
ngulodeElevacin)

Elegirestosngulosesanlogoaloquehaceelfotgrafoeligiendountipoespecfico
de lente (por ej. Un gran angular o un telezoom). Veremos esto en ms detalle
cuandoveamostiposdelentes.
VanDam
DefinicindelaCmara
Silvia Castro CG 2014

Ladistanciafocaltambinsedenominaprofundidaddecampo,yaquesedetermina
aqudistanciaestnlosobjetosquedebenverseenfoco.
Distanciafocal
DefinicindelaCmara
Silvia Castro CG 2014
Elvolumencomprendidoentrelosplanoscercanoylejanodefineloqueve
lacmara.
PlanosdeClipping CercanoyLejano
Laposicindedichosplanossedefinenormalmentealolargodelvectordelookat.
Losobjetosqueaparecenfueradelvolumendelvistanoserndibujados.
Losobjetosqueintersectanelvolumendelvistasernrecortadosoclipeados.
VanDam
DefinicindelaCmara
Silvia Castro CG 2014
Porqutenerunplanodeclippingcercano?

Los objetos que estn demasiado cerca de la cmara no quieren dibujarse porque
bloquearanalrestoyseguramenteestaranmuydistorsionados.

Tampocosequierendibujarlosobjetosqueestndetrsdelacmarayaqueunono
espera verlos. Si uno decidiera dibujar lo que est detrs de la cmara seguramente
aparecerandistorsionadosporlaperspectiva.
Porqutenerunplanodeclippinglejano?

Losobjetosmuyalejadosdelacmarapodrannoquererdibujarseporqueapareceran
muy pequeos para ser visualmente significativos; por otro lado tomara demasiado
tiemporenderizarlos.Descartandoestosobjetosperdemospocodetalleperoganamos
muchoenloquerespectaatiempoderenderizado.

Porotrolado,puedeserquelaescenaestllenadeobjetossignificativosyquerramos
despejarlaescenademodotalqueserendericenloscercanosysedescarteelresto.
DefinicindelaCmara
Silvia Castro CG 2014
Lalimitacindelvolumendevistaestilparaeliminarobjetosextraos.

Losngulodeelevacinydeanchosoncero.
ProyeccinParalela: Volumen deVista
VanDam
DefinicindelaCmara
Silvia Castro CG 2014
La limitacin del volumen de vista es til para eliminar objetos tanto
cercanoscomolejanos.
ProyeccinPerspectiva:VolumendeVista
VanDam
DefinicindelaCmara
Silvia Castro CG 2014
5
Tipos de Lentes
Silvia Castro CG 2014
Los lentes de la cmara, reales o simulados, son tal vez la
componentemsimportanteencualquiersistemadecmaraporque
definenlaformaenqueelmundo3Dseproyectaenlalenteoplano
delaimagen.

En las cmaras fotosensibles, la pelcula est ubicada exactamente


en el plano de proyeccin. El plano de proyeccin de las cmaras
simuladas en la computadora pueden posicionarse en cualquier
lugardelaescena3D.

Losfotgrafosserefierena loslentesdeunacmara entrminode


su longitud focal porque esta caracterstica controla la forma en la
quelosobjetos3Dsonvistosporlacmara.
TiposdeLentes
Silvia Castro CG 2014
Lalongitudfocal,comoyadijimos,esladistanciadesdeelpuntode
vistaalplanofocal.

La mayora de los lentes tiene longitud focal fija, excepto los zooms
que contienen mltiples lentes y por lo tanto son capaces de un
rangodelongitud focalvariable.

La nomenclatura estndar para la longitud focal de los lentes se


expresa en mm. Hay una gran variedad de lentes. Los lentes
caractersticos estndar son los lentes normales de 50 55 mm, el
granangularde28mmyeltelefotode135mm.

Acontinuacin veremosdistintasfotostomadascondistintoslentes.
TiposdeLentes
Silvia Castro CG 2014
TiposdeLentes
Silvia Castro CG 2014
TiposdeLentes
Silvia Castro CG 2014
Imgenes vistas por una cmara ubicada dentro de una esfera, con
seislentesdiferentes.
TiposdeLentes
Silvia Castro CG 2014
6
La Cmara en OpenGL
Silvia Castro CG 2014
Para especificar la cmara debemos
utilizar las primitivas de la librera
matemtica que usemos. Debemos
especificar

Viewing: Ubicacin de la cmara
Proyeccin: Descripcin del frustum
de visin de la cmara (y, en
consecuencia, de la transformacin
de proyeccin)
Divisin perspectiva: Clculo de los
puntos 3D a partir de las
coordenadas homogneas

LaCmaraenOpenGL
Silvia Castro CG 2014
Paraubicarlacmaradebemosposicionarlaenelespaciodelmundo
comosifueraunacmarareal.Paraellodebemos:
Identificar el lugar donde la cmara est ubicada, es decir el
punto donde est el ojo (eye point).
Identificar el punto que deseamos que aparezca en el centro de
nuestra vista, es decir, el punto hacia el cual miramos (look-at-
point).
Identificar lo que est orientado hacia arriba en nuestra imagen
final (up-vector).
LaCmaraenOpenGL
Silvia Castro CG 2014
La librera glm provee una funcin que implementa la especificacin
deviewing:
LaCmaraenOpenGL
Estosparmetros estnencoordenadas delmundo.
glm::mat4glm::lookAt(glm::vec3const&eye,glm::vec3const&center,glm::vec3const&up);
glm::dmat4glm::lookAt(glm::dvec3const&eye,glm::dvec3const&center,glm::dvec3const&up);
Silvia Castro CG 2014
En la Proyeccin el usuario debe especificar la ventana 3D de visin. En
la proyeccin paralela (u ortogrfica) el usuario especifica el frustum de
visinortogrfico, esdecir,
LaCmaraenOpenGL
Utilizando la librera glm estopuedehacersemediante:
glm::dmat4glm::ortho(doubleleft,doubleright,doublebottom,doubletop,doublezNear,doublezFar);
glm::dmat4glm::ortho(floatleft,floatright,floatbottom,floattop,floatzNear,floatzFar);
Silvia Castro CG 2014
LaCmaraenOpenGL
Funcin provista por la librera glm para especificar este frustum de visin es:
Enlaproyeccinperspectivaelfrustumdevisinqueseespecificaes:
Otra funcin para este fin es:
donde fov es el ngulo de visin vertical y aspect es la relacin ancho/alto de
la imagen en el plano near.
glm::dmat4glm::frustum(doubleleft,doubleright,doublebottom,doubletop,doublezNear,doublezFar);
glm::dmat4glm::frustum(floatleft,floatright,floatbottom,floattop,floatzNear,floatzFar);
glm::mat4perspective(doublefov,doubleaspect,doublezNear,doublezFar);
glm::mat4perspective(floatfov,floataspectfloatsNear,floatzFar);
Silvia Castro CG 2014
7
Proyecciones
Silvia Castro CG 2014
La creacin del espacio tridimensional pretenda generarse mediante formas
volumtricas redondeadas por el sombreado; la profundidad espacial era
sugerida mediante lneas convergentes.

Esto no era hecho sistemticamente y las lneas no convergan a un solo punto
de fuga.
Giotto, FranciscanRuleApproved,Ass,Baslica, c.1295-1300
Antecedentes
Silvia Castro CG 2014
Alberti public el primer tratado de perspectiva, Della Pittura, en 1435.

Una pintura es la interseccin de una pirmide visual a una determinada
distancia, con un centro fijo y una posicin definida de la luz, representada
artsticamente con lneas y colores en una dada superficie. (Leono Battista
Alberti (1404-1472), Della Pintura, pp. 32-33)
VanDam
Antecedentes
Silvia Castro CG 2014
Alberti public el primer tratado de perspectiva, Della Pittura, en 1435.

Una pintura [el plano de proyeccin] es la interseccin de una pirmide visual
[volumen de vista] a una determinada distancia, con un centro fijo [centro de
proyeccin] y una posicin definida de la luz, representada artsticamente con
lneas y colores en una dada superficie [el rendering]. (Leono Battista Alberti
(1404-1472), Della Pintura, pp. 32-33)
VanDam
Antecedentes
Silvia Castro CG 2014
La primera pintura (La
Trinidad con la Virgen, San
Juan y los Donantes) hecha
en perspectiva. Masaccio,
1427.
Antecedentes
Silvia Castro CG 2014
La perspectiva se formaliza. Da Vinci, alrededor de
1498.
Antecedentes
Silvia Castro CG 2014
8
Albrecht Drer (1471-1528) describe en su tratado el concepto de tringulos
similares tanto geomtrica como mecnicamente.
Albrecht Drer, Artista dibujando un Lad, 1525
Antecedentes
Silvia Castro CG 2014
Se puede entonces calcular la imagen proyectada tomando como base:
La altura del objeto (AB)
La distancia del objeto al ojo (CB)
La distancia del ojo al plano de la imagen (CD)
La relacin de tringulos: CB es a CD como AB es a ED
VanDam
Antecedentes
Silvia Castro CG 2014
Una proyeccin transforma puntos de un sistema de coordenadas de
dimensinnaunodedimensinmenorquen.
Proyecciones
Silvia Castro CG 2014
La proyeccin de un objeto 3D est definida por los
proyectores que emanan de un centro de proyeccin
pasando a travs de cada punto del objeto e
intersectando un plano de proyeccin, en el que se
formalaproyeccindelobjeto.
Cuando los proyectores son rectas y la
proyeccin se realiza sobre un plano, la
proyeccinsedenominageomtricaplana.
Proyecciones
Silvia Castro CG 2014
Una proyeccin transforma puntos de un sistema de coordenadas de
dimensin n a uno de dimensin menor que n.
La proyeccin de un objeto 3D est definida por los proyectores que
emanan de un centro de proyeccin pasando a travs de cada punto
del objeto e intersectando un plano de proyeccin, en el que se forma la
proyeccin del objeto.
Proyeccionesplanas
Silvia Castro CG 2014
Las principales proyecciones geomtricas planas son:
En general, una proyeccin est determinada por:

- Dnde est el plano de proyeccin relativo a los ejes principales del objeto
- El ngulo de los proyectores con el plano de proyeccin
Perspectiva: determinada por el
Centro de Proyeccin (CDP)
Paralela: determinada por la
Direccin de Proyeccin (DDP); los
proyectores son paralelos El CDP
est en el
Proyeccionesplanas
Silvia Castro CG 2014
9
Hay distintos tipos de proyecciones geomtricas planas:
Las proyecciones paralelas se usan en general para ingeniera y arquitectura
porque conservan las medidas.

Las proyecciones perspectiva imitan nuestros ojos o una cmara y son ms
naturales.
Proyeccionesplanas
Silvia Castro CG 2014
Una cmara virtual usualmente ofrece no slo la proyeccin perspectiva,
sino tambin la proyeccin paralela. En esta proyeccin, todas las lneas y
planos paralelos de los objetos siguen siendo paralelos en la proyeccin; el
tamao de los objetos permanece constante a medida que los objetos se
alejandelplanodelaimagen.
Proyeccinparalela
Silvia Castro CG 2014
Haydistintostiposdeproyeccionesparalelasgeomtricasplanas:
Paralela
Lneas de proyeccin paralelas
entres
Oblicua
Lneas de proyeccin no son
perpendiculares al plano de
proyeccin
Ortogrfica
Lneas de proyeccin son
perpendiculares al plano de
proyeccin
Planos de elevacin Plano de
proyeccin perpendicular a uno
delosejes

Axonomtrica Plano de
proyeccin orientado
arbitrariamente

Proyeccionesplanas
Silvia Castro CG 2014
Proyeccinortogrficamultivista
Proyeccionesplanas
Silvia Castro CG 2014
Proyeccinaxonomtrica
El plano de proyeccin es perpendicular a la direccin de
proyeccinperonoesparaleloalosplanoscoordenados
Proyeccionesplanas
Silvia Castro CG 2014
Proyeccinoblicua
Elplanodeproyeccinesparaleloalosplanoscoordenadosperola
direccindeproyeccinnoesperpendicularaste.
Los proyectores forman un ngulo oblicuo con el plano de
proyeccin
VanDam
Carlbom
Proyeccionesplanas
Silvia Castro CG 2014
10
Una cmara real siempre crea una proyeccin perspectiva. En una
proyeccinperspectiva,deacuerdoacomostaescreadaporlacmara,se
representaunsolopuntodevista,losobjetosseachicanamedidaqueestn
ms lejos y las lneas paralelas que no son paralelas al plano de la imagen
convergenalospuntosdefuga.
Proyeccionesplanas
Silvia Castro CG 2014
Proyeccinperspectiva
Perspectivadeunpunto
Perspectivadedospuntos
Perspectivadetrespuntos
Proyeccionesplanas
Silvia Castro CG 2014
Perspectivadeunpunto
Perspectivadedospuntos
Perspectivadetrespuntos
Proyeccionesplanas
Perspectivadetrespuntos
Proyeccinperspectiva
Silvia Castro CG 2014
Proyecciones Perspectiva

de Objetos 3D
Silvia Castro CG 2014
Pipeline3D
Silvia Castro CG 2014
Espacios

Objeto Mundo Ojo Clipping
Modelado Ubicacin Especificacin Clipping
en el Mundo de la cmara
Rotar Rotar Escalar
Trasladar Trasladar Trasladar
Perspectiva
Escalar
Rotar
Derivacindelaperspectiva
En la proyeccin perspectiva, un punto 3D en el frustum de visin
(coordenadas del ojo) se mapea a un cubo (coordenadas normalizadas
del dispositivo); la coordenada x se mapea de [l, r] a [-1, 1], la
coordenada y de [b, t] a [-1, 1] y la z de [n, f] a [-1, 1].
Veremos que esto lo vamos a hacer en dos etapas.
Silvia Castro CG 2014
11
Transformacindeunpunto
Por tringulos similares podemos calcular cmo escalar las
coordenadas x e y.
e
e
p
e
e
p
e
e
p
e
e
p
z
y
n y
z
y
n
y
z
x
n x
z
x
n
x
= =

= =


Silvia Castro CG 2014
P=(x,y,z) se proyecta entonces al punto p
p
dado por:
Transformacindeunpunto
( )
|
|
.
|

\
|

= =
e
e
e
e
p p p
z
y
n
z
x
n y x p , ,
OpenGL usa el sistema de coordenadas de mano derecha para el
mundo.
e
e
p
e
e
p
e
e
p
e
e
p
z
y
n y
z
y
n
y
z
x
n x
z
x
n
x
= =

= =


Silvia Castro CG 2014
Esta es claramente una transformacin no lineal. Podemos dividirla en
dos partes: una lineal seguida de una no lineal.
Transformaciones
) 1 , , , ( ) , , , (
) , , , ( ) 1 , , , (
) 1 , , , ( ) 1 , , , (

?
n n n lineal No
e e e lineal
n n n e e e
z y x w z y x T
w z y x z y x T
z y x z y x T
=
=
=
Transformacindeunpunto
e
e
e
e
p
e
e p
e
e
e
e
p
e
e p
z
y
n
z
y
n y
z
y
n
y
z
x
n
z
x
n x
z
x
n
x

= = =

= = =


Silvia Castro CG 2014
Transformaciones
Transf. No Lineal
Transf. Lineal
1 = = = = =
w
w
w
w
z
z
w
y
y
w
x
x
n n n n
Transformacin de un punto
(
(
(
(

=
(
(
(
(

e
e
e
e
oy
w
z
y
x
M
w
z
y
x
*
Pr
) 1 , , , ( ) , , , (
) , , , ( ) 1 , , , (
) 1 , , , ( ) 1 , , , (

?
n n n lineal No
e e e lineal
n n n e e e
z y x w z y x T
w z y x z y x T
z y x z y x T
=
=
=
e
e
p
e
e
p
z
y
n y
z
x
n x = =
Silvia Castro CG 2014
Veamos entonces como definimos la transformacin lineal, es decir la
M
Proy
(
(
(
(

=
(
(
(
(

e
e
e
e
oy
w
z
y
x
M
w
z
y
x
*
Pr
(
(
(
(

= .
... ... ... ...
... ... ... ...
... ... ... ...
... ... ... ...
Pr oy
M
Podemos establecer que la componente w en este espacio intermedio
es z
e
. Entonces, la cuarta fila de la matriz es (0,0,-1,0).

(
(
(
(

(
(
(
(

=
(
(
(
(

e
e
e
e
w
z
y
x
w
z
y
x
* .
0 1 0 0
... ... ... ...
... ... ... ...
... ... ... ...
e
e
p
e
e
p
z
y
n y
z
x
n x

=
Proyeccinperspectiva
e
p
e
p
e e
z
y
y
z
x
x
ny y nx x

=
= =


Silvia Castro CG 2014
Buscamos ahora una expresin que nos permita encontrar la
transformacin lineal para x y para y. Sabemos que debemos tener en
cuenta las relaciones lineales [l,r][-1,1] y [b,t][-1,1].
( )

2
1 *
1 1
| | +

= +


=
l r
r
x
l r
x
p n
l r
l r
l r
x
x
l r
l r
r-l
r
-
p
n

+
= =
2

2
1 |
Proyeccinperspectiva
Silvia Castro CG 2014
12
Mapeamos ahora y
p
con

[b,t][-1,1].
( )

2
1 *
1 1
| | +

= +


=
b t
r
y
b t
y
p n
b t
b t
b t
y
y
b t
b t
b t
t
-
p
n

+
=

=
2

2
1 |
Dado que conocemos el mapeo y que sabemos que para pasar del
espacio intermedio a las coordenadas normalizadas del dispositivo
debemos dividir por w=-z
e
veamos ahora cmo obtenemos x e y.

Proyeccinperspectiva
Silvia Castro CG 2014
Sabemos que:
b t
b t
b t
y
y
p
n

=
2

y reemplazando:

l r
l r
l r
x
x
p
n

=
2

e
e
p
z
x
n x

=
e
e
p
z
y
n y

=
( )( )
( )
e e e e
e
e
e
e
e
e
e
e
e
e
p
n
z x z z
l r
l r
x
l r
n
z
z
l r
l r
z
x
l r
n
l r
l r
z
l r
nx
l r
l r
z l r
nx
l r
l r
l r
z
nx
l r
l r
l r
x
x
= |
.
|

\
|

+
+

=
2
) (
2
2
2
2
2
e n
z w
w
x
x = =
Proyeccinperspectiva
Silvia Castro CG 2014
Para y efectuamos cculos anlogos y obtenemos:
Entonces completamos la primera y la segunda fila de la
matriz

(
(
(
(

(
(
(
(
(
(

=
(
(
(
(

e
e
e
e
w
z
y
x
b t
b t
b t
n
l r
l r
l r
n
w
z
y
x
* .
0 1 0 0
... ... ... ...
0
2
0
0 0
2
|
.
|

\
|

+
+

= |
.
|

\
|

+
+

=
e e e e
z
b t
b t
y
b t
n
y z
l r
l r
x
l r
n
x
2

2
Proyeccinperspectiva
Silvia Castro CG 2014
Es claro que la proyeccin que realizamos descarta la informacin de
profundidad. Necesitamos dicha informacin?
Qu debemos hacer si queremos mantenerla?
x

y

-z n
P
P
1

P
2

P(x,y)
Proyeccinperspectiva
Silvia Castro CG 2014
Mostramos que una proyeccin descarta la informacin de profundidad, pero
vemos que no debemos descartarla completamente ya que ser imposible
saber cules objetos estn adelante y cules atrs.
x

y

-z -n
P
P
1

P
2

P(x,y)
Proyeccin perspectiva
Cuando dos puntos proyecten al mismo punto sobre el plano cercano,
necesitamos saber cul est ms cerca. Debemos contar con un test que nos
permita saber si P
1
oscurece a P
2
o viceversa.

Para cada punto P que proyectamos debemos conocer su profundidad.
Silvia Castro CG 2014
Para encontrar z
n
debemos trabajar de manera diferente porque z
e
en el
espacio del ojo se proyecta siempre a -n en el plano near. Adems de
poder realizar el test de profundidad, debemos poder realizar la
transformada inversa de la proyeccin. Sabemos que z no depende del
valor de x o de y.
(
(
(
(

(
(
(
(
(
(

=
(
(
(
(

e
e
e
e
w
z
y
x
B A
b t
b t
b t
n
l r
l r
l r
n
w
z
y
x
* .
0 1 0 0
0 0
0
2
0
0 0
2
e
e
e
e e
e
n e n
z
B Az
z
Bw Az
z
z
z z w
w
z
z

+
=

+
=

= = = ,
Proyeccinperspectiva
Silvia Castro CG 2014
13
Para encontrar los coeficientes A y B usamos la relacin que existe entre
(z
e
, z
n
), es decir (-n -1) y (-f 1):
e
e
n
z
B Az
z

+
=
y tenemos entonces 2 ecuaciones con dos incgnitas:

+ =
=

+
=
+
=
f Af B
n An B
f
B Af
n
B An

1
1
n f
n f
A n An f Af

+
= = +
n f
fn
n An B A

= =
2
en do reemplazan y
podemos obtener as z en funcin de z
e

Proyeccinperspectiva
Silvia Castro CG 2014
Reemplazamos en:
( )
(
(
(
(

(
(
(
(
(
(
(

+

+

=
(
(
(
(

(
(
(
(
(
(

=
(
(
(
(

e
e
e
e
e
e
e
e
w
z
y
x
n f
fn
n f
n f
b t
b t
b t
n
l r
l r
l r
n
w
z
y
x
B A
b t
b t
b t
n
l r
l r
l r
n
w
z
y
x
* .
0 1 0 0
2
0 0
0
2
0
0 0
2
* .
0 1 0 0
0 0
0
2
0
0 0
2
e e
e
e
e
n
z
z
z
n f
fn
z
n f
n f
z
B Az
z

+
=
2
completamos la matriz de transformacin:
Proyeccinperspectiva
Silvia Castro CG 2014
Si adems el volumen de vista tanto en x como en y lo ponemos
entre -1 y 1 tenemos
Para pasar entonces a coordenadas normalizadas del dispositivo (en
algunos casos denominadas coordenadas 3D de la pantalla) dividimos
por w=-z
e
y entonces tenemos:
(
(
(
(
(
(
(
(

=
(
(
(
(
(
(
(
(

=
(
(
(
(

1
1
e
e
e
n
n
n
z
z
z
y
z
x
w
w
w
z
w
y
w
x
z
y
x
Proyeccin perspectiva
( )
( )
(
(
(
(

(
(
(
(
(

+ =
(
(
(
(

(
(
(
(
(
(
(

+

+

=
(
(
(
(

e
e
e
e
e
e
e
e
w
z
y
x
n f
fn
n f
n f
n
n
w
z
y
x
n f
fn
n f
n f
b t
b t
b t
n
l r
l r
l r
n
w
z
y
x
* .
0 1 0 0
2
0 0
0 0 0
0 0 0
* .
0 1 0 0
2
0 0
0
2
0
0 0
2
Silvia Castro CG 2014
La matriz M
Proy
es la que se setea, por ejemplo en glm, mediante la
primitiva glm::mat4 glm::frustum (l, r,b,t,n,f).

En lugar de sta puede usarse perspective().

Proyeccin perspectiva
( )
(
(
(
(
(
(
(

+

+

= .
0 1 0 0
2
0 0
0
2
0
0 0
2
Pr
n f
fn
n f
n f
b t
b t
b t
n
l r
l r
l r
n
M
oy
Esta primitiva setea la misma matriz luego de calcular los valores de
r, l, t y b mediante:
glm::mat4 perspective (ngulo, aspecto, n, f)
-r l aspecto arr r
t b angulo n t
= =
= |
.
|

\
|
=

2 /
180
tan
t
Observar
Silvia Castro CG 2014
Proyeccinperspectiva
e
e
n
z
n f
fn
z
n f
n f
z

=
2
Silvia Castro CG 2014
Veamos la relacin que hay entre z
e
y z
n
. Esta relacin es una ecuacin
racional y se ve la relacin no lineal entre z
e
y z
n
. Esto significa que hay
muy alta precisin en el plano n pero poca en el plano f. Si el rango [-n, -f]
se agranda, se origina un problema de precisin en profundidad: un
pequeo cambio de z
e
cerca del plano f no afecta el valor de z
n
. La
distancia entre n y f debe ser la menor posible para minimizar la precisin
en profundidad.
Proyeccinperspectiva
A partir de este punto estamos en el espacio de clipping. Luego de
realizar el clipping debemos ver cules son los objetos que se ven y
mapearlos al viewport. Tendremos entonces nuestra vista en 2D.
Silvia Castro CG 2014
14
Clipping
Silvia Castro CG 2014
Pipeline3D
Silvia Castro CG 2014
Espacios

Objeto Mundo Ojo Clipping
Modelado Ubicacin Especificacin
en el Mundo de la cmara
Rotar Rotar Escalar
Trasladar Trasladar Trasladar
Perspectiva
Clipping
Escalar
Rotar
Pipeline3D
Silvia Castro CG 2014
Espacios

Objeto Mundo 3D Ojo Clipping CND 3D Pantalla
Modelado Ubicacin Especificacin
en el Mundo de la cmara
Rotar Rotar Escalar Divisin w Proyeccin
Trasladar Trasladar Trasladar a pantalla 2D
Perspectiva
Clipping CND Pantalla
Escalar
Rotar
Vimosque:

Clipping es el proceso de determinar qu primitivas y partes de


primitivascaendentrodelvolumendeclippingdefinidoporelprograma
deaplicacin.
Clipping
Silvia Castro CG 2014
Generalmente, cualquier proce-
dimiento que identifica aquellas
porciones de una escena que
estn dentro o fuera de una
reginespecificadasedenomina
algoritmodeclipping.

Laregincontralacualseclipea
un objeto se denomina ventana
declipping.

En lugar de clipear contra las rectas


que constituyen los bordes de la
ventana, clipearemos los objetos
contra los planos limitantes del
volumendevista.
Clippingen3D
Silvia Castro CG 2014
El clipping tridimensional identifica y guarda todo lo que se
encuentra dentro del volumen de vista para mostrarlo
posteriormente. Se descartan todos los objetos y/o partes de los
mismosqueestnfueradedichovolumen.

El clipping en 3D puede llevarse a cabo usando extensiones del


clipping en2D.

Para clipear una lnea contra el volumen de vista, debemos chequear la


posicin relativa de la misma con respecto a los planos que constituyen el
volumendevista.

Sisuponemosqueunplanolimitantedelvolumendevistaestdadopor:
Ax+By+Cz+D=0

Un punto extremo (x
1
,y
1
,z
1
) de un segmento de lnea estar fuera del volumen
devistasi:
Clippingen3D
Ax
1
+By
1
+Cz
1
+D>0

Yestardentrodelmismosi:
Ax
1
+By
1
+Cz
1
+D<0

Elpunto(x
1
,y
1
,z
1
)deinterseccinseraqulqueverifiqueque:
Ax
1
+By
1
+Cz
1
+D=0
Silvia Castro CG 2014
15
Paraclipearunasuperficiepoligonal podemos:

Clipear los lados del polgono para detectar los casos en que el
mismo est completamente afuera o completamente adentro del
volumen de vista. Si est completamente adentro, guardamos el
polgono para dibujarlo; si est completamente afuera, lo
descartamos.

Si el polgono est parcialmente adentro, debemos calcular las


interseccionesconlosplanoslimitantes.
Clippingen3D
Silvia Castro CG 2014
Veamoscundoycmorealizamoselclipping:
Antesdelatransformadaenperspectiva?
En este caso debemos clipear contra el frustum
de vista. Luego debemos realizar la
transformacin en perspectiva, luego la
proyeccinyluegodibujarenlaventana
Clippingen3D
Silvia Castro CG 2014
Despusdelatransformadaenperspectiva?
En coordenadas homogneas
debemosclipearcontralosplanos

-wsxsw
-wsysw
-wszsw
En coordenadas 3D de la pantalla
debemosclipearcontralosplanos

-1sx

s1
-1sys1
-1szs1
Esindistintoclipearencualesquieradeestosdosespacios?
Porqu?
En este caso tenemos dos opciones; podemos hacerlo en coordenadas 3D
delapantallaoencoordenadashomogneas.
Clippingen3D
Silvia Castro CG 2014
Entoncesdebemosclipearteniendo encuentaque:

-El clipping se realiza en coordenadas homogneas, es decir,


antes de dividir por w y despus de realizar la transformacin de
proyeccinperspectiva.

-Elvolumendevistacontraelqueseefectaelclippingestdado
por:
-wsxsw-wsysw-wszsw

Clippingen3D
Silvia Castro CG 2014
AlgoritmodeClippingde
Cohen-Sutherland
(3D)
Silvia Castro CG 2014
En este caso se dividir el espacio en 27 regiones y usaremos un
cdigo de 6 bits para chequear silos puntosestn dentro o fuera del
volumendevista.Estoseharparacadaunodelospuntosextremos
delossegmentosderecta.
Es decir que debe determinarse la ubicacin de los puntos con
respectoalvolumendevista:

-wsxsw
-wsysw
-wszsw
AlgoritmodeCohen-Sutherland
Silvia Castro CG 2014
16
El volumen de vista contra el que se efecta el clipping est dado
por:
-wsxsw-wsysw-wszsw
Clippingen3D
Y veremos que siempre podemos
clipearenlareginenquew>0.
Silvia Castro CG 2014
Los valores guardados se usarn para determinar el punto de interseccin
conelplanocorrespondiente.

Se generarn conjuntos que nos dicen cmo est ubicado un punto con
respectoalvolumendevista.
Bitn Ubicacin Seguarda
1 w+x>0
2 w-x>0
3 w+y>0
4 w-y>0
5 Detrsdelplano de
adelante
w+z>0
6 Delante delplano de
atrs
w-z>0
AlgoritmodeCohen-Sutherland
Silvia Castro CG 2014
Se debe calcular la interseccin de la lnea a clipear con el plano que
corta. Se calcula el valor de t de la interseccin. Slo cuando se ha visto
quelalneadebeclipearsesehallanlas coordenadasdelodelospuntos
deinterseccin.

Lainterseccindeunarectadadaenformaparamtrica
) ( ) (
2 2 1 1
1 1
x w x w
x w
t
+ +
+
=
) ( ) (
) ( ) (
2 1 2 1 1 1
1 2 1 1 2 1
x x t w w t x w
x x t x w w t w
+ = +
= +
) (
1 2 1
p p t p p + =
conelplanow=-x(w+x=0)es:
AlgoritmodeCohen-Sutherland
Seguard
w+x
w-x
w+y
w-y
w+z
w-z
Silvia Castro CG 2014
( )
i i i i i
w z y x p , , , =
Veamoselalgoritmo.Calculamos
Cdigopunto1 Cdigopunto2
Cp
1,1
w
1
+x
1
Cp
2,1
w
2
+x
2
Cp
1,2
w
1
x
1
Cp
2,2
w
2
x
2
Cp
1,3
w
1
+y
1
Cp
2,3
w
2
+y
2
Cp
1,4
w
1
y
1
Cp
2,4
w
2
y
2
Cp
1,5
w
1
+z1 Cp
2,5
w
2
+z
2
Cp
1,6
w
1
z
1
Cp
2,6
w
2
z
2
Secalcula:
c
1
(1a6)ndebitsparaloscualesCp
1,nbit
<0
c
2
(1a6)ndebitsparaloscualesCp
2,nbit
<0
) ( ) (
2 2 1 1
1 1
x w x w
x w
t
+ +
+
=
Silvia Castro CG 2014
AlgoritmodeCohen-Sutherland
AlgoritmodeCohen-Sutherland
Paraidentificarrpidamentelaslneasque estndentroyfuera de la
ventana,lesasignauncdigodereginde4bits(en2D)acadauno
delospuntosextremosdelsegmentoderecta
Losbitssonpuestosen1(uno)deacuerdoa:
bit1puntoporarribadelaventana
bit2puntopordebajodelaventana
bit3puntoaladerechadelaventana
bit4puntoalaizquierdadelaventana
Cdigo
Silvia Castro CG 2014
AlgoritmodeCohen-Sutherland
1001 1000 1010
0001 0010
0101 0110 0100
0000
SiCdigo1=0 yCdigo2=0
entonces
elsegmentodelneaestdentrodelaventana
sino
sino
si(Cdigo1 andCdigo2)=0
entonces
elsegmento delneaestfueradelaventana
nosabemos
Silvia Castro CG 2014
17
c1Cdigodelpuntop1,c2Cdigodelpuntop2
sic1esvacoyc2esvaco
entoncesLneatrivialmenteaceptada
sinosi(c1andc2)=vaco
entoncesLneatrivialmenterechazada
sino
t10;t21
paranbit:16
si(cp
1,nbit
<0)or(cp
2,n bit
<0)
entonces
tcp
1,n bit
/(cp
1,n bit
-cp
2,n bit
)
sicp
1,n bit
<0
entonces
sit>t1entoncest1t
sino
sit<t2entoncest2t
sit2>t1
entonces
dxx2-x1;dyy2-y1;dzz2-z1;
sit2=1entoncesx2x1+t2*dx;
sit1=0entoncesx1x1+t1*dx;
AlgoritmodeCohen-Sutherland
Silvia Castro CG 2014
Estealgoritmoquevimosrealizaelclippingenlaregindelosw>0.

De acuerdo a lo visto se debe considerar tambin el clipping de puntos con


w<0.Estoserealizadeacuerdoa:

-p
1
yp
2
conw>0-wsx,y,zsw

-p
1
yp
2
conw<0-wsx,y,zswcon-p
1
y-p
2

-p
1
yp
2
,unoconw>0y-wsx,y,zswconp
1
yp
2

otroconw<0-wsx,y,zswcon-p
1
y-p
2

AlgoritmodeCohen-Sutherland
Silvia Castro CG 2014
Pipeline3D
Silvia Castro CG 2014
Espacios

Objeto Mundo 3D Ojo Clipping CND Pantalla
Modelado Ubicacin Especificacin
en el Mundo de la cmara
Rotar Rotar Escalar Divisin w Transformacin
Trasladar Trasladar Trasladar Viewport
Perspectiva
Clipping CND Pantalla 3D
Escalar
Rotar
Pipeline3D
Silvia Castro CG 2014
Espacios

Objeto Mundo 3D Ojo Clipping CND Pantalla
Rotar Rotar Escalar Divisin w Transformacin
Trasladar Trasladar Trasladar Viewport
Perspectiva
Rasterizacin

Operaciones
sobre frag
Operaciones
raster
Mostrar fb
Escalar
Rotar
Bibliografa
Silvia Castro CG 2014
ACM SIGGRAPH Proceedings
Agoston, M. Computer graphics & geometric modeling / Mathematics, Springer-
Verlag London Ltd., 2005.
Angel, E., Shreiner, D. Interactive Computer Graphics: A top-down approach with
shader-based OpenGL, Addison Wesley, 2011, 6th. Ed.
Foley, J., van Dam, A., Feiner, S. y Hughes, J., Computer Graphics. Principles and
Practice, Addison Wesley, 1992, 2
nd
Edition.
Hearn, D., Baker, M.P., Computer Graphics, C Version, Prentice Hall Inc., 2003,
3rd Edition.
Hill, F. Jr, Kelley, S., Computer Graphics Using OpenGL, Prentice Hall., 2006,3rd
Ed.

Fin
Coordenadas

Homogneas
Silvia Castro CG 2014
18
) , , (
) , , (
2 2 2 2
1 1 1 1
w y x p
w y x p
H
H
=
=
Coordenadashomogneas
Enelespaciohomogneo2D
|
|
.
|

\
|
=
|
|
.
|

\
|
=
1 , ,
1 , ,
2
2
2
2
2
1
1
1
1
1
w
y
w
x
p
w
y
w
x
p
Silvia Castro CG 2014
) , , (
) , , (
2 2 2 2
1 1 1 1
w y x p
w y x p
=
=
( ) 1 t 0
1 2 1
s s + = p p t p p
Coordenadashomogneas
Enelespaciohomogneo2D
Silvia Castro CG 2014
Homogneas
Homogneas
proyectadas
Cartesianas
Coordenadashomogneas
Silvia Castro CG 2014
Coordenadashomogneas
Silvia Castro CG 2014
Porcinvisible
delapantalla
Coordenadashomogneas
Silvia Castro CG 2014
Coordenadashomogneas
?
Silvia Castro CG 2014
19
Coordenadashomogneas
Silvia Castro CG 2014
Coordenadashomogneas
Silvia Castro CG 2014