Você está na página 1de 24

1

Universidade Federal de Santa Maria


Departamento de Eletrnica e Computao
Prof. Cesar Tadeu Pozzer
Disciplina: Computao Grfica
pozzer@inf.ufsm.br
30/05/2012

Computao Grfica 3D

Definio
Faz uso de 3 coordenadas: x, y e z.

Aplicaes
Jogos 3D
Visualizao
CAD
Desenhos animados por computador
Realidade Virtual (VR) e aumentada (AR)








2

1 Sistemas de Coordenadas

Existem dois sistemas de coordenadas 3D: left-handed ou right-handed.

Em um sistema right-handed, fazendo-se a mo girar em torno do eixo z, do eixo x positivo para o eixo y
positivo, tem-se o polegar apontando na direo positiva do eixo z. O sistema de coordenadas do mundo
definido neste sistema.

No sistema left-handed o polegar aponta para o z negativo. Geralmente utiliza-se o sistema left-handed em
coordenadas de visualizao.









2 Transformaes

Rotao: Para vetores em trs dimenses, pode-se fazer a rotao sobre qualquer eixo de rotao, sendo
principalmente sobre os eixos x, y e z. Neste caso, usa-se as seguintes matrizes R.

(
(
(
(

=
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
) (

x
R
(
(
(
(

=
1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
) (

y
R
(
(
(
(


=
1 0 0 0
0 1 0 0
0 0 cos sin
0 0 sin cos
) (

z
R

Pode-se utilizar ngulos de Euler para descrever a rotao de um objeto em um espao euclidiano 3D. Para
posicionar um objeto em uma dada orientao, basta aplicar uma seqncia de rotaes descrita pelos ngulos
de Euler. Isso significa dizer que a matriz de rotao pode ser decomposta como o produto de trs rotaes
sobre os eixos cartesianos x, y e z. A rotao deve ocorrer na ordem R
z
R
y
R
x
. Em aplicaes aeroespaciais,
costuma-se nomear os ngulos de Euler de modo que o ngulo no eixo x chamado de pitch, no eixo y de yaw e
no eixo z de roll. Essa nomenclatura varia entre referncias bibliogrficas.










http://en.wikipedia.org/wiki/Yaw,_pitch,_and_roll







x
w

y
w

z
w

y
z
x
yaw
roll
pitch
3
Translao

P = P + T
(
(
(

+
+
+
=
(
(
(

+
(
(
(

=
z
y
x
z
y
x
T z
T y
T x
T
T
T
z
y
x
P'
(
(
(
(

+
+
+
=
(
(
(
(

(
(
(
(

= =
1 1 1 0 0 0
1 0 0
0 1 0
0 0 1
'
z
y
x
z
y
x
T z
T y
T x
z
y
x
T
T
T
TP P

Escala
P S P = '
(
(
(
(

=
(
(
(
(

(
(
(
(

= =
1 1 1 0 0 0
0 0 0
0 0 0
0 0 0
'
z
y
x
z
y
x
zS
yS
xS
z
y
x
S
S
S
SP P


3 Visualizao 3D

O processo de visualizao de uma cena 3D por computador semelhante ao processo envolvido para se
tirar uma fotografia. Deve-se posicionar a cmera no espao e definir sua orientao (6 graus de liberdade: 3
eixos de translao e 3 eixos rotao, semelhante a um spaceball).

Como a maioria dos monitores (displays) existentes so bidimensionais, deve-se usar processos para converter
objetos do espao tridimensional para uma representao bidimensional. Este processo possui um termo
conhecido como three-dimensional pipeline. As etapas deste pipeline so mostradas na seguinte figura, e
incluem modelagem, visualizao e converso de diferentes tipos de coordenadas.





Como primeiro passo da etapa tem-se a definio de como ser composto o cenrio a ser modelado. Aps sua
definio, tm-se pontos tridimensionais no sistema de coordenadas do mundo que o definem.

As coordenadas de visualizao (view coordinates) so as coordenadas do sistema de visualizao, e no
necessariamente precisam ser coincidentes com as coordenadas do mundo. Neste sistema de coordenadas que
esto localizados o observador e o plano de projeo da imagem.

A prxima etapa do processo fazer a converso das coordenadas de visualizao para o plano de projeo, que
ser mapeado para o monitor. nesta etapa do processo onde realizada a converso do espao tridimensional
para o bidimensional (tela do computador). Ao mapear a imagem para a tela, so realizadas operaes para
recortar partes do cenrio que no esto dentro da rea da janela de visualizao (viewport), para posterior
identificao de superfcies visveis e aplicao de processos de renderizao.

Coordenadas de visualizao

O viewing system um sistema de coordenadas usado para dar ao observador um maior controle e mobilidade
da posio em que se deseja observar um cenrio tridimensional. Estes sistemas permitem que o plano de
projeo esteja em qualquer lugar do espao, ou seja, permite que se veja o cenrio sob qualquer ngulo.

Um exemplo pode ser dado ao se observar um automvel. Movendo-se ao seu redor, tm-se diferentes ngulos
de viso. Abaixando-se pode-se v-lo por baixo, usando-se uma escada pode-se v-lo de cima; e obtm-se uma
viso interna entrando-se dentro do mesmo.
Coordenadas
do mundo
Coordenadas de
visualizao
Coordenadas
de projeo
Coordenadas
do dispositivo
Modelagem
do objeto
4

Tudo depende da forma como definimos o ponto onde o observador se encontra, que chamado de centro de
projeo (view point ou view reference point) e, associado a ele, existe o plano de projeo onde ser projetada
a imagem.

Alm do view point, pode-se tambm definir uma orientao espacial do observador, ou seja, para onde ele esta
olhando (ngulo de elevao) e qual a inclinao de sua cabea (angulo de rotao). Os diferentes sistemas de
visualizao apresentados a seguir nos mostram mais caractersticas do que podemos simular em um
computador.

1 Visualizao sobre o eixo Z

A forma mais simples de se visualizar um cenrio localizar o observador sobre o eixo de projeo z, como
mostrado na seguinte figura. Para este tipo de sistema, no necessrio nenhum processamento na etapa de
gerao de coordenadas de visualizao do pipeline de visualizao, pois o view point, assim como o plano de
projeo paralelo ao plano x
w
y
w
, j esto localizados sobre o eixo z. Deste modo, necessita-se usar apenas a
projeo para fazer a visualizao do cenrio.










View point (centro de projeo) localizado sobre o eixo z, em um sistema left-handed.

Deve-se apenas verificar se o sistema de coordenadas dos dois referenciais o mesmo: left-handed ou right-
handed e fazer ajustes se necessrio (aplicar reflexo).

2 Visualizao definida por um vetor arbitrrio

Usando-se um vetor arbitrrio no espao tridimensional para definir a direo onde a cmera ir apontar d ao
observador um controle total de como observar um cenrio sobre diferentes ngulos e posies. Com este
sistema de visualizao consegue-se gerar a maioria das aplicaes grficas, como simuladores, jogos
tridimensionais, dentre outros.

Este sistema define basicamente dois pontos (C e F), que definem a orientao da reta de visualizao e um
ngulo de rotao. Com a definio destas trs variveis pode-se posicionar a cmera em qualquer posio.

A cmera ento posicionada no ponto C (cmera) e direcionada no ponto F (foco). O plano de projeo
perpendicular ao eixo z, que deve ser coincidente com reta de visualizao definida pelos pontos C e F.











z
w

View point
x
v

z
v

y
v

x
w

y
w

C (e,f,g)

x
v

z
w

z
v

y
v

y
w

x
w

F (a,b,c)
5
Antes de calcular as coordenadas de projeo deve-se tornar os dois sistemas de coordenadas coincidentes. Isso
pode ser feito por uma seqncia de transformaes geomtricas afins:

1. Translade o centro de projeo da cmera (view point) para a origem do sistema de coordenadas do
mundo. (ou levar o mundo para o sistema de coordenadas da cmera).
2. Aplique rotaes para alinhar os eixos x
v
, y
v
, z
v
com os respectivos eixos do mundo: x
w
, y
w
, z
w
.

A matriz de translao dada por
(
(
(
(

=
1 0 0 0
1 0 0
0 1 0
0 0 1
g
f
e
T

Para o clculo das rotaes, devem-se encontrar ngulos e que representam a orientao da cmera em
relao ao sistema de coordenadas do mundo.














Esta etapa pode requerer at 3 rotaes sobre os eixos, dependendo do valor do ngulo . No caso mais geral,
deve-se aplicar uma seqncia de transformaes R
z
R
y
R
x
. Ou seja, primeiro rotaciona-se no eixo x, depois
sobre y e finalmente sobre z.

Fazendo-se uma analogia a este processo, pode-se imaginar que a cmera esteja conectada aos objetos da cena
por um eixo virtual. Cada operao aplicada cmera para alinhar seus eixos com o sistema de coordenadas
do mundo tambm aplicada sobre os objetos da cena, visto que ambos esto unidos. Ao final do processo a
cmera esta observando o mundo sob o eixo z e continua com a mesma viso dos objetos da cena que tinha
antes de serem aplicadas as transformaes.

A matriz resultante (rotaes e translao) deve ser ento aplicada sobre cada elemento do cenrio, para ento
realizar a etapa de projeo. Este processo deve ser realizado para tornar a projeo mais simplificada.

3 Visualizao definida por dois vetores e um ponto

Dado o sistema anterior, pode-se definir a cmera por um vetor N que normal ao plano de projeo (aponta
para z
v
positivo), e por um vetor V (chamado up), que orienta a cmera em relao direo de visualizao
(rotao sobre o eixo z
v
).

Dados N e V, pode-se calcular o vetor U como sendo V N , que aponta na direo do eixo x
v
positivo. A
biblioteca OpenGL/Glut( gluLookAt(pos,dir,up) ) utiliza este sistema de visualizao. Acesse os sites
para maiores detalhes de implementao: http://pyopengl.sourceforge.net/documentation/manual-
3.0/gluLookAt.xhtml ou http://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml. NOTA: Nesse
mesmo site podem ser encontradas formulaes matemticas para vrias outras funes da API do OpenGL,
que vo ser muito teis caso seja necessrio programar na verso 3.2 ou superior desta API (Ex: gluPerspective,
glFrustum, glRotate, glMultMatrix, glOrtho, etc).


F(a, b, c )
z
w

x
w

y
w

x
w

y
w

z
w

y
v

z
v

x
v

6

A cmera est posicionada no ponto C (e, f, g).












Como no sistema anterior, deve-se transladar o sistema de coordenadas da cmera para o mundo.
(
(
(
(

=
1 0 0 0
1 0 0
0 1 0
0 0 1
g
f
e
T

Dados os vetores N e V, pode-se obter n, u e v unitrios por

) , , (
3 2 1
n n n
N
N
n = =
) , , (
3 2 1
u u u
N V
N V
u =

=
) , , (
3 2 1
v v v u n v = =

A matriz de rotao dada por [4]

(
(
(
(

=
1 0 0 0
0
0
0
3 2 1
3 2 1
3 2 1
n n n
v v v
u u u
R
e a transformao completa por

T R M =

Para maiores detalhes de outras formas de visualizao, ver [watt].


Projeo

Para fazer a visualizao de objetos 3D em um dispositivo 2D (o monitor, por exemplo), deve-se fazer a
transformao do espao 3D para o 2D, ou seja, converter as coordenadas que correspondam a uma viso do
objeto de uma posio especfica. Este processo chamado de projeo.

Para fazer a projeo deve-se definir o plano de projeo e o centro de projeo. O plano de projeo a
superfcie onde ser projetado o objeto. No centro de projeo partem retas (raios de projeo) que passam pelo
plano de projeo e tocam no objeto.

x
w

y
w

z
w

V = up
N=z
v
U = x
v

Plano

C
7
Existem vrios tipos de projeo, que so dadas em funo do centro de projeo, plano de projeo e direo
dos raios de projeo

Em projees paralelas, as coordenadas so transformadas para o plano de visualizao seguindo linhas
paralelas. O centro de projeo localizado no infinito. J, projees em perspectiva, os objetos so
transformados segundo linhas que no so paralelas, ou seja, linhas que se encontram no centro de projeo.












A diferena bsica entre elas que a primeira no deforma as caractersticas originais do objeto nem d uma
representao realista do objeto. A noo de profundidade (afastamento) no apresentada. A segunda d
representaes realista, mas para isso, deforma a forma original do objeto.

Em uma projeo ortogrfica, as linhas de projeo so paralelas entre si e perpendiculares ao plano de
projeo. As projees oblquas tambm so paralelas porm inclinadas em relao ao plano de projeo.











Projeo Paralela e em Perspectiva [Watt]

Em uma projeo em perspectiva, linhas distantes so visualizadas menores que linhas mais prximas de
mesmo comprimento.















Projees planas
Paralela Perspectiva
1, 2 ou 3 pontos de fuga
Oblqua Ortogrfica
P
2

Plano de projeo
P
1

'
2
P
'
1
P
Centro de projeo
Plano de projeo
P
2

P
1

'
2
P
'
1
P
Raios paralelos
Centro de projeo
Plano de projeo
8
1 Projeo Ortogrfica

Em projees paralelas so mantidos a forma e tamanho originais do objeto. Este tipo de projeo transforma o
objeto tridimensional em bidimensional pela simples desconsiderao de uma coordenada, ou seja, todos os
valores em um certo eixo recebem valor zero, o que equivalente a anular o eixo. Considerando-se uma
projeo sobre o plano xy, tem-se a seguinte matriz de projeo
T
ort
=
(
(
(
(

1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
[4-1]

Esta projeo importante pois usada como processo final das projees em perspectiva, descritas nas
prximas sees.

Como seria a projeo ortogrfica se a cmera no estivesse sobre o eixo z? Com certeza no
seria simples assim.
Como seria
1
ort
T ?

2 Projees em Perspectiva

O ponto P(x,y,z) um ponto tridimensional no sistema de coordenadas de visualizao. Este ponto deve ser
projetado no plano xy (perpendicular ao eixo z) posicionado a uma distncia d da origem do sistema. P(x,y)
representa a projeo deste ponto no plano de projeo (tela). Fazendo-se uma analogia a uma cmera
fotogrfica, tem-se em C a posio da cmera e em P(x, y) a posio do filme fotogrfico. Este modelo
chamado de pinhole camera (Furo de agulha).











Considerando-se a projeo apenas no eixo y, tem-se

















Aplicando a relao de tringulos obtm-se
Centro de
projeo
z

y

Plano de
projeo
P(x, y, z) P(x, y)
C
x

Centro de
projeo
z

y

d
Plano de
projeo
P(x, y, z)
P
C
Quanto menor for d, menor a
projeo. Se d=0, o objeto
desaparece.
Mudando d=100 para d=-100,
muda-se a orientao do objeto.
Se d for igual a posio do objeto,
no h alterao de tamanho.

9
z
x
d
x
=
'
ou
z
d
x
x
=
'

z
xd
x = '
z
y
d
y
=
'

z
yd
y = '

Fazendo-se d r / 1 = , em representao matricial, esta transformao pode ser vista da seguinte maneira:
(
(
(
(

=
0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
r
T
pers


Concatenando-se uma projeo ortogrfica para anular a componente z tem-se

(
(
(
(

=
(
(
(
(

(
(
(
(

=
0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
r r
T
pers

(
(
(
(

=
(
(
(
(

(
(
(
(

rz
y
x
z
y
x
r
0
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1


Homogeneizando a matriz obtm-se a transformao de perspectiva

| |
(

=
(

= 1 0 1 0 1 ' ' '


z
yd
z
xd
rz
y
rz
x
z y x

OBS: Deve-se observar que se o objeto tiver alguma coordenada z=0 vai gerar um erro de diviso por zero. Em
termos prticos, o objeto deveria ser desenhado com tamanho infinito, visto que quanto mais prximo do centro
de projeo estiver, maior a sua projeo no plano de projeo.

2.1 Projeo com um ponto de fuga

Um fator que caracteriza uma matriz de projeo o valor dos elementos da quarta linha. O elemento A
43

possui um valor r, e dos demais possuem valor zero. O nmero elementos diferentes de zero ir determinar o
nmero de pontos de fuga (vanish point - V.P.) presentes na projeo. Como mostrado na seguinte figura, um
ponto de fuga um ponto para onde as linhas que definem o objeto convergem. Existe uma relao entre o
centro de projeo e o ponto de fuga. Se o centro de projeo estiver no ponto r z = , o ponto de fuga estar no
ponto r z = .

















V.P.
Centro de
projeo
Objeto visualizado com um
ponto de fuga
10
Nos exemplos at agora citados, o centro de projeo e o ponto de fuga sempre estavam localizados
sobre o eixo z. Caso desejar-se colocar o centro de projeo sobre outro eixo, basta apenas mudar o valor de r
da posio A
43
e coloc-lo na posio A
42
para se trabalhar sobre o eixo y, ou na posio A
41
para trabalhar-se
sobre o eixo x.


2.2 Projeo com dois pontos de fuga

Caso desejar-se dar mais realismo aos objetos, pode-se estender a tcnica usada na seo anterior e, em
vez de definir apenas um centro de projeo, definir dois e, por conseqncia, teremos tambm dois pontos de
fuga. A seguinte figura mostra um objeto visualizado com dois pontos de fuga.



(
(
(
(

+
=
(
(
(
(

(
(
(
(

qy px
z
y
x
z
y
x
q p 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1






2.3 Projeo com trs pontos de fuga

A projeo que mais d noo da forma tridimensional de um objeto com trs centros de projeo.
Neste caso teremos a matriz de transformao com todos os elementos da quarta coluna no nulos que ter a
seguinte forma



| |
T
rz qy px z y x
x
y
x
r q p
) (
1 0
0 1 0 0
0 0 1 0
0 0 0 1
+ + =
(
(
(
(

(
(
(
(





V.P. V.P.
Objeto visualizado com
dois pontos de fuga
V.P.
V.P. V.P.
Objeto visualizado com trs
pontos de fuga
11

Modelos de Cmera Sinttica

O modelo de cmera sinttica apresentado um modelo chamado pinhole. O modelo pinhole uma cmera sem
a convencional lente de vidro. Faz uso de um pequeno orifcio que projeta a luz proveniente da cena sob o
filme. Para garantir que a imagem gerada esteja focada, deve-se garantir que esse orifcio (pinhole) seja
pequeno (na ordem de 0.5 mm). A dimenso deste orifcio determina a abertura da cmera. Se esse orifcio for
muito grande, a imagem se tornar desfocada. Quanto menor for o orifcio, maior deve ser o tempo de
exposio da foto. Quanto menor for a abertura, maior ser a profundidade de campo (depth of field). Quanto
menor a abertura, maior deve ser o tempo de exposio da foto. Deve-se observar que deve-se ter uma
quantidade adequada de luz para sensibilizar o filme (ou sensor CCD ou CMOS). O problema de se ter
exposio longa que se o fotgrafo ou o alvo se moverem durante a foto, obtm-se uma imagem borrada - no
necessariamente fora de foco, mas com um efeito muito semelhante.

Deve-se observar que a dimenso do orifcio usada em uma cmera sinttica zero. Isso garante que qualquer
cena seja sempre renderizada em foco (Ver material de Sntese de Imagens), ou seja, a profundidade de campo
infinita. Por isso, tanto objetos prximos como objetos afastados se encontram sempre em foco. Isso no
possvel de ser alcanado com uma mquina fotogrfica convencional que faa uso de lentes.
A seguinte figura ilustra um exemplo de uma mquina fotogrfica do tipo pinhole. Observe que a imagem
gerada sempre de invertida. Esse mesmo efeito ocorre em uma cmera sinttica se o plano de projeo estiver
atrs da cmera.



Cmeras com lente tm vantagens e desvantagens em relao ao modelo pinhole. A principal desvantagem
que as cenas podem sair fora de foco. A vantagem que o tempo de exposio da foto pode ser muito menor
(de 30 segundos at 1/8000 segundos). A principal diferena refere-se abertura. Como a abertura maior,
mais luz entra na cmera e o tempo de exposio pode ser menor.

Uma cmera utiliza-se de lentes para fazer a projeo da imagem no filme, como mostrado na seguinte figura.
















d
1
d
2
f
2
f
1
f

Plano de
projeo

Circle of
confusion

12
Deve-se observar que para uma dada configurao, apenas objetos a uma distncia d da cmera vo estar em
foco (linha azul distncia d
1
). O objeto posicionado na distncia d
2
vai estar fora de foco, como mostrado na
seguinte figura.














O ponto amarelo caracteriza o crculo de confuso (circle of confusion - Disco de luz ou crculos luminosos da
imagem, produzido pela objetiva quando o objeto a ser fotografado no est perfeitamente focado). Em ptica,
tambm conhecido como disk of confusion, circle of indistinctness, blur circle, etc. Este crculo gerado por
um cone de raios luminosos que no convergem para um nico ponto. Quanto maior for este crculo, mais
desfocada ser a imagem.


Especificao de lentes para mquinas fotogrficas

Vrias variveis definem uma lente de uma mquina fotogrfica (tanto para maquinas Point-and-shoot como
para mquinas SLR). Nesta seo vamos analisar apenas a abertura e distncia focal.

A abertura (http://en.wikipedia.org/wiki/Aperture) se refere quantidade de luz que entra na mquina
fotogrfica. Na seguinte figura ilustrado o efeito de reduzir a abertura da lente (por meio de um diafragma).
Pode-se observar que o crculo de confuso tornou-se menor, o que caracteriza uma imagem com melhor foco e
com maior profundidade de campo. Porm deve-se ter um tempo de exposio maior. Tendo-se um tempo de
exposio maior, por sua vez, maior a chance que a cmera se mova neste tempo, ocasionando borres na
imagem final. Por isso, importante o uso de um trip para assegurar que a cmera no ir se mover durante a
exposio. Cmeras profissionais incorporam recursos de estabilizao de imagem, que pode consistir de
mover o sensor ou as lentes para compensar o movimento (tremor) da cmera.
[http://www.canon.co.jp/Imaging/enjoydslr/p_2_005.html]












A abertura em cmeras fotogrficas dada pelo f-number (f/#), que expressa o dimetro da entrada da luz em
funo da distncia focal da lente
D
f
f = /#
onde D o dimetro da abertura [http://en.wikipedia.org/wiki/F-number] .

diafragma
13
Valores tpicos de f-number (f-stops) so f/1, f/1.4, f/2, f/2.8, f/4, f/5.6, f/8, f/11, f/16, f/22, etc. A diferena
entre cada valor corresponde a potncias de 2 , visto que a cada incremento do f-number, reduz-se pela
metade a rea de entrada da luz na cmera. Quanto maior for o f-number, menor a abertura e maior a
profundidade de campo.




Lentes convencionais com zoom ptico (por exemplo, a lente 18-200mm) tm uma abertura mxima em torno
de f/3.5 at f/5.6 (sem e com zoom). A abertura mxima reduzida medida que se aumenta o zoom
[http://en.wikipedia.org/wiki/Aperture]. Em lentes profissionais mais caras isso no ocorre (Ex: Nikon 14-
24mm f/2.8).








A distncia focal (http://en.wikipedia.org/wiki/Focal_length) a distncia que os raios de luz so convergidos
para um ponto focal. Quanto menor for, maior ser o ngulo de viso da lente (FOV Field of view). Muitas
lentes tm distncia focal varivel, o que possibilita aproximar ou afastar os objetos. Isso o que chamado de
zoom ptico. A taxa de zoom dada pela diviso entre a distncia focal mxima e mnima (com apresentado
Abertura mxima: f/2.8 (W)-5.9 (T)
Distncia Focal: 4.7-18.8mm ou 26-105mm
(equivalente 35mm)
Zoom: 4x (105/26 = 4)
Preo: US$ 110,00

Abertura mxima: f/2.8 (fixa)
Distncia Focal: 14-24mm (equivalente 35mm)
ou 21-36mm (sensor APS-C size)
Zoom: 1.7x
Peso: 969g
Preo: US$ 2.000,00
Abertura mxima: f/3.5 (W)-5.6 (T)
Distncia Focal: 18-200mm (equivalente
35mm) ou 28-300mm (sensor APS-C size)
Zoom: 11.1x
Peso: 560g
Preo: US$850,00
14
nas figuras acima). As lentes que no tem zoom so chamadas de lentes de distncia focal fixa ou prime
lenses.

A medida da distncia focal dada em milmetros, em relao s antigas mquinas fotogrficas de filme
(padro 35mm). Como hoje em dia o tamanho dos sensores das mquinas digitais menor que esse padro,
geralmente os fabricantes colocam a distncia focal proporcional ao sensor usado. Para se ter os dados reais da
distncia focal da lente, deve-se sempre procurar a distncia equivalente ao filme 35mm.


Para mquinas Point-and-shoot, geralmente quanto menor for a distncia focal mnima, mais cara e melhor a
mquina. Valores considerados razoveis devem estar abaixo de 30mm. Existe tambm disponvel no mercado
(em 2011) mquinas com at 36x de zoom ptico, cuja distncia focal varia dentre 4-144mm (22.5-810mm
35mm equivalent).


Para mquinas SLR, tem-se uma grande gama de lentes, com variaes grandes de distncia focal (de 10mm a
600mm) e abertura mxima (f/1.2 at f/5.6).





Abertura mxima: f/3.4 (W)-5.7 (T)
Distncia Focal: 4-144mm ou 22.5-810mm
(equivalente 35mm)
Zoom: 36x (144/4 = 36)
Preo: US$ 400,00

Abertura mxima: f/4 (fixa)
Distncia Focal: 600mm (equivalente 35mm)
ou 900mm (sensor APS-C size)
Zoom: 0x
Peso: 5kg
Preo: US$ 10.000,00
Abertura mxima: f/5.6 (fixa)
Distncia Focal: 1200mm (equivalente 35mm)
Zoom: 0x
Preo: US$ 120.000,00 (somente a lente)
Peso: 16.5kg
(fora de produo)
15








Na seguinte figura so apresentados modelos de lentes de cmeras SLR profissionais. Deve-se observar a
quantidade de lentes usadas para garantir uma imagem em foco, juntamente com recursos de zoom ptico.


[http://nikonimaging.com/global/products/lens/index.htm]





Para os que tiverem interesse no processo de construo de lentes para mquinas SLR (excluindo a parte de
especificao e projeto), os seguintes vdeos fazem uma boa explanao sobre o assunto, justificando o seu alto
preo:

Busca no Youtube: Canon Lens Production
http://www.youtube.com/watch?v=MKNFW0YwDYw&NR=1
http://www.youtube.com/watch?v=qzpt49qq6v4&feature=related
http://www.youtube.com/watch?v=6bQ3-DWh-rA&feature=related

Busca no Youtube: how its made s8 ep4- optical lenses
http://www.youtube.com/watch?v=F7-IfLe3-oo&feature=related
http://www.youtube.com/watch?v=r5XMI7-xFow&feature=related

Abertura mxima: f/8-16
Distncia Focal: 650-1300mm
Zoom: 2x
Preo: US$ 270,00
Peso: 1.8 kg
Comentrios divertidos encontrado na internet da lente Phoenix:
To shoot at 2600mm with a crop factor of 1.5 you'll want to shoot at, at most,
1/4000s to eliminate camera shake. I'm wondering if there's anything closer
than the Sun that's bright enough to be photographed at f/32, 1/4000s.
Well, I bought this for fun to compare to my canon 600mm lens. This lens is just cheap, and it is.
You get what you pay for, all I need to say about this product is that it will have all the optical
qualities of a coke bottle, but you don't get the free fizzy drink with it.
16

No site do pesquisador Ken Perlin (http://mrl.nyu.edu/~perlin/experiments/demos/OpticalBench.html) tem um
applet onde se pode fazer simulaes simples dos princpios de lentes cncavas e convexas.



A seguinte figura ilustra o funcionamento de uma mquina SLR.



Autofoco em mquinas Fotogrficas

O foco automtico em modo passivo, o mais utilizado atualmente, pode ser de dois tipos: Phase detection
(mquinas SLR utilizando a tecnologia TTL (Through-the-lens) [http://en.wikipedia.org/wiki/Through-the-
lens]) ou Contrast detection (usado em mquinas Point-and-shoot). Essas duas tecnologias so apresentadas nas
prximas figuras (applets interativos).

Por deteco de contraste, a mquina utiliza o prprio sensor para determinar o ponto mximo de contraste
entre pixels vizinhos. um processo mais demorado, mas ao mesmo tempo super preciso, pois deve mover a
lente em ambas as direes (frente e para trs) para achar o ponto de contraste mximo.

A deteco por fase mais rpida, pois analisando o sinal capturado por sensores em formato de fileiras de
pixels, pode-se determinar em que direo e passo a lente deve se mover para ajustar o foco. Os valores de
movimento so pr-estabelecidos pelo fabricante. Se estiverem um pouco errados ou se houver alguma
desregulagem ou desgaste, a mquina perde a preciso do foco.

17

http://graphics.stanford.edu/courses/cs178/applets/autofocusCD.html


http://graphics.stanford.edu/courses/cs178/applets/autofocusPD.html

Em 2011, a Sony lanou dois modelos (alpha 33 e alpha 55) de mquina SLR-like, que com o uso de um
espelho translcido consegue ter as vantagens do autofoco por deteco de fase e ao mesmo tempo modo
Liveview. Porm, esse modelo no tem viewfinder ptico.



18
4 Representao e Modelagem

Nveis de realismo de representao
Pontos
Linhas (wireframe)
Faces (preenchimento)
o Iluminao
o Textura
o Bump mappimg
o Environment Mapping
o


1. Faces (Polgono)

- Tabela de vrtices (vertex table) [Hearn, pg 307]
- tabela de arestas (edge table)
- Tabela de superfcie (polygon-surface table)











Vantagens:
Esta organizao permite que o objeto seja visualizado como pontos, linhas ou faces.
Evita a duplicao de vrtices no caso do uso de uma nica tabela

Observaes:
Para se trabalhar com faces deve-se fazer uso de algoritmos de preenchimento de polgonos, como z-
buffer ou scan-line.
Para se obter superfcies com realismo (no mnimo iluminao), deve-se dispor de algoritmos que
faam clculos de iluminao, aplicados sobre cada pixel de cada face.

Outra abordagem: Armazenar na tabela de arestas as faces que a aresta comum. Isso traz vantagens na
aplicao de algoritmos de iluminao (renderizao), onde deve haver uma transio suave de cor na
transio entre faces que possuem arestas em comum.










Tcnicas de Gerao de objetos 3D

As tcnicas apresentadas a seguir so usadas para gerar primitivas (vrtices) que definem objetos 3D, que
podem ser simples esferas bem como complexas superfcies.

Vertex Table
V
1
: x
1
, y
1
, z
1

V
2
: x
2
, y
2
, z
2

V
3
: x
3
, y
3
, z
3

V
4
: x
4
, y
4
, z
4

V
5
: x
5
, y
5
, z
5

Edge Table
E
1
: V
1
, V
2

E
2
: V
2
, V
3

E
3
: V
3
, V
1

E
4
: V
3
, V
4

E
5
: V
4
, V
5

E
6
: V
5
, V
1

Face Table
S
1
: E
1
, E
2
, E
3

S
2
: E
3
, E
4
, E
5
, E
6

Edge Table
E
1
: V
1
, V
2
, S
1

E
2
: V
2
, V
3
, S
1

E
3
: V
3
, V
1
, S
1
, S
2

E
4
: V
3
, V
4
, S
2

E
5
: V
4
, V
5
, S
2

E
6
: V
5
, V
1
, S
2

E
1

E
2

E
4

E
5

E
6

E
3

S
1

S
2

V
2

V
4

V
5

V
1

V
3

19
Deve-se observar que a partir da malha de pontos gerada, deve-se definir estruturas de arestas e faces, com
mostrado na tcnica anterior, para possibilitar a visualizao do objeto de forma mais realista. Caso contrrio,
este poderia ser observado somente como uma coleo de pontos, que em muitos casos no suficiente para
descrever a geometria real do objeto.

Cabe como exerccio ao aluno implementar algoritmos de gerao da malha para cada modelo apresentado.


Esfera

Em coordenadas esfricas temos



sin
cos sin
2 / 2 / cos cos
r y
r z
r x
=
=
=



onde
sin, no intervalo especificado, varia de -1 a 1
cos, no intervalo especificado, varia de 0 a 1
o termo cos, nas equaes de x e z, altera o raio de cada crculo concntrico que defina a esfera.

Deve-se observar que este algoritmo faz uso de duas variveis paramtricas, logo o algoritmo de renderizao
deve ter a seguinte estrutura.

) ; 2 ; 0 ( step for =
{
) ; ; 0 ( step for =
{
x =
y =
z =
}
}

Este algoritmo alimenta uma matriz quadrada (reticulado) de dimenso MxN, em funo do parmetro step.
Quanto menor for o step, maior dever ser a dimenso da matriz. Cada coluna desta matriz contm uma
sequencia de pontos que representa uma fatia do objeto construdo. Cada elemento da matriz contm as 3
coordenadas (x,y,z) de cada vrtice do objeto gerado. Esta abordagem muito mais simples do que criar listas
de vrtices, arestas e faces.

Uma vez construda a matriz, pode-se fazer a exibio do objeto da tela. Para isso necessita-se de um algoritmo
de triangulao, de modo a gerar uma malha triangular para os pontos gerados e assim definir a geometria do
objeto. Vamos considerar aqui um caso simples, onde esta matriz representa um terreno, para evitar o
tratamento de ligaes circulares. O seguinte pseudo-algoritmo trata deste problema

for(l=0; l<M; l++)
{
for(c=0; c<N; c++)
{
line(M[l,c], M[l ,c+1]); //linha horizontal
line(M[l,c], M[l+1,c ]); //linha vertical
line(m[l,c], M[l+1,c+1]); //linha diagonal
}
}


x
y
z
cos
sin
90
0
-90
0
0
0
Equao do crculo







20

O resultado do processo uma malha triangular como mostrado na seguinte figura. Fazendo-se uso de uma
cmera sinttica, pode-se fazer a visualizao do objeto sob qualquer ngulo e se desejar, em perspectiva. Essa
mesma abordagem de criao de uma malha triangular pode ser usado na renderizao de superfcies
paramtricas e tambm na tcnica de sweep, apresentadas na sequencia, de forma transparente. O terreno
mostrado apresentado uma estrutura mais complexa do que o cilindro, mas mesmo assim possui uma geometria
bastante regular.



























Existem diversas aplicaes que necessitam de modelos mais genricos, que no podem ser representados por
reticulados, como mostrado nas seguintes imagens. Para isso, o uso de tcnicas de modelagem como half-edge
(ver ltima seo) faz-se necessrio.




21
Elipside

Para a elipside, pode-se ter at 3 raios diferentes.



sin
sin cos
2 / 2 / cos cos
y
z
x
r y
r z
r x
=
=
=



Super Elipside



1
2 1
2 1
sin
sin cos
2 / 2 / cos cos
s
y
s s
z
s s
x
r y
r z
r x
=
=
=


Superfcies biparamtricas

Fazem uso de 16 pontos de controle
para a definio de um patch.




Superfcie Bzier (Bzier surface patch)

= =
=
m
i
n
j
m j n i ij
t s t J s J B t s P
0 0
, ,
1 , 0 ), ( ) ( ) , (
i n i
i n
t t
i
n
t J

|
|

\
|
= ) 1 ( ) (
,

)! ( !
!
i n i
n
i
n

=
|
|

\
|

Para polinmios de grau 3, tem-se as seguintes funes base:

(1-t)
3
(valor mximo em t=0)
3t(1-t)
2
(valor mximo em t=1/3)
3t
2
(1-t) (valor mximo em t=2/3)
t
3
(valor mximo em t=1)


Superfcie Spline (B-Spline Surface Patch)

= =
=
m
i
n
j
j i ij
t B s B P t s Q
0 0
) ( ) ( ) , ( ,

=
=
m
i
i
t B
0
1 ) (
3
6 / 1 t B
i
=
) 1 3 3 3 ( 6 / 1
2 3
1
+ + + =

t t t B
i

) 4 6 3 ( 6 / 1
2 3
2
+ =

t t B
i

3
3
) 1 ( 6 / 1 t B
i
=



No caso de superfcies spline, apenas uma
frao da rea definida pelos pontos de
controle gerada, e nenhum dos 16
22
pontos de controle interpolado.

Renderizao de superfcies paramtricas curvas [watt pg 197]

Renderizar diretamente a partir da descrio paramtrica;
Podem ser representadas por um reticulado de pontos 3D
Aproximar a superfcie por uma malha poligonal e utilizar algoritmos de preenchimento de polgonos
para renderizar esta aproximao.
o Abordagem mais simples e
o Mais utilizada atualmente.


Sweep (Varredura)

Definidos a partir de uma figura 2D (shape) e uma varredura que move a primitiva por uma regio no espao.
Pode consistir de rotao, translao e objetos gerados por esta tcnica podem ser representados por um
reticulado de pontos 3D.

Sweep Transacional: Pode-se utilizar um path para determinar a trajetria da figura base.
a. Pode gerar cilindros, por exemplo.
Sweep Rotacional: Aplica sobre a forma base rotaes sobre eixos.
a. Pode gerar formas cilndricas como anis, copos, vasos, etc. OBS: a equao de gerao da
esfera pode ser vista como um sweep rotacional.
Combinao dos dois: Pode-se usar translao e rotao para definir o objeto.
a. Usado para gerar molas.





Octree

Consiste na subdiviso de um slido em 8 quadrantes.
Como o nome sugere, faz uso de uma rvore onde cada n tem 8 ponteiros (1 para cada quadrante).
Cada quadrante pode ser dividido recursivamente at que se chegue na resoluo desejada.
Cada n na rvore poder ser full, empty ou partial. Essa informao pode ser utilizada para determinar
o nvel de refinamento de um ramo da rvore.
Utiliza-se a palavra voxel para descrever cada elemento volumtrico que define o objeto em uma octree.
Tem o mesmo significado que um pixel em uma imagem.

23


Pode-se facilmente aplicar operaes booleanas sobre dois objetos definidos por uma octree.

CSG

A representao de objetos slidos pode ser obtida por vrias tcnicas, como por octree, CSG, dentre outras.
Uma forma de classificar a tcnica pela forma como os objetos so representados. Com o uso de octrees, faz-
se uma decomposio do objeto em primitivas bsicas, como o cubo, e por isso, operaes booleanas entre
objetos so simplificadas. Entretanto, esta representao no oferece alto grau de preciso, principalmente
quando aplicada a objetos curvos.

A representao de slidos por CSG (Constructive Solid Geometry), que um modelo construtivo, se
caracteriza por uma representao com alta preciso, pois os objetos no so mais definidos por primitivas
(cubos) e sim por equaes. O fato de se trabalhar com a descrio precisa do objeto implica em um aumento de
complexidade, tanto na realizao da operaes booleanas, bem como na visualizao do mesmo.

O termo construtivo vem do fato que objetos complexos so obtidos por operaes booleanas entre objetos mais
simples, como esferas, cubos, cilindros, etc. Estes objetos simples so armazenados em uma rvore, que
tambm pode conter transformaes, como escala, rotao, translao e que oferece ao usurio a capacidade de
edio do slido que ser gerado. A representao da CSG exige uma estrutura de dados que possam organizar,
de forma hierrquica, as primitivas e seus relacionamentos. Esta hierarquia definida por uma rvore binria
onde as primitivas s podem ser armazenados nas folhas e as operaes nos demais ns.

A rvore CSG define um conjunto de primitivas de forma hierrquica, onde a cada nvel da rvore, operaes
booleanas e/ou transformaes como rotao e escala podem ser aplicadas s primitivas para que sua
combinao possa gerar o slido desejado.

Para a obteno do slido gerado, deve-se traar retas que interceptam os elementos definidos na rvore, bem
como operaes de unio, interseo e diferena.



24













Outras tcnicas de modelagem de objetos

Winged-edge
Half-edge
Fractal
Sistemas de Partculas

Referncias Bibliogrficas

[1] Hearn, D., Baker, M. P. Computer Graphics, C Version (2
nd
Edition), Prentice Hall, New Jersey, 1997

[2] Watt, A. 3D Computer Graphics, Addison Wesley; 3 edition (December 6, 1999)

[3] Rogers, D., Adams, J. Mathematical Elements for Computer Graphics, 2
nd
Edition. Mc Graw Hill, 1990.

[4] Fiume, E. L. The Mathematical Structure of Raster Graphics. San Diego, CA. Academic Press, 1989.







U
D I