Você está na página 1de 23

Curso Livre de Produo 3D

Teoria I
1. Computao Grfica em 3D ............................................................ 2
1. Introduo .................................................................................... 2
1. Exerccios ................................................................................... 2
2. Produo ....................................................................................... 2
1. Exerccios ................................................................................... 3
3. Passos essenciais ........................................................................... 3
4. Resultado final ............................................................................... 4
1. Tipos de renderizao................................................................... 4
2. Compositing................................................................................ 4
3. Ps-produo .............................................................................. 4
4. Exerccios ................................................................................... 4
2. Fundamentos ................................................................................. 5
1. Espaos, sistema de coordenadas ..................................................... 5
1. 1D ............................................................................................. 5
1. Distncia entre 2 pontos ............................................................ 6
2. Diviso .................................................................................... 6
3. Exerccios ................................................................................ 6
2. 2D ............................................................................................. 6
1. Origem na tela ......................................................................... 7
2. Distncia entre 2 pontos ............................................................ 8
3. Diviso .................................................................................... 8
4. Ordem dos eixos ....................................................................... 8
5. Exerccios ................................................................................ 9
3. 3D ............................................................................................. 9
1. Ordem dos eixos ..................................................................... 10
2. z para cima ou y para cima? ..................................................... 10
3. Distncia entre 2 pontos .......................................................... 11
4. Diviso .................................................................................. 11
5. Exerccios .............................................................................. 11
2. Cenas, objetos ............................................................................. 12
1. Cenas, arquivos de dados, projetos .............................................. 12
1. Exerccios .............................................................................. 12
2. Objetos .................................................................................... 13
3. Localizao dos objetos na cena .................................................. 14
3. Transformaes............................................................................ 14
1. Ponto central da transformao ................................................... 15
2. Eixo da transformao................................................................ 15
3. Transformaes da vista 3D ........................................................ 16
1. Perspectiva ............................................................................ 16
Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil
Todos os direitos reservados.
http://alphachannel.com.br

2. Ortogrfica............................................................................. 17
4. Exerccios ................................................................................. 18
4. Organizao e hierarquias ............................................................. 18
1. Evitando o caos: organizao ...................................................... 18
1. Grupos .................................................................................. 18
2. Camadas ............................................................................... 19
2. Dando estrutura: hierarquias....................................................... 19
3. Exerccios ................................................................................. 20
5. Sistemas de coordenadas global, local... .......................................... 20
1. Sistema global .......................................................................... 20
2. Sistema local ............................................................................ 20
3. Hierarquias de sistemas.............................................................. 22
4. Exerccios ................................................................................. 23

Computao Grfica em 3D
Introduo
Sejam bem-vindos ao curso livre de Produo 3D!
Este curso tem dois objetivos principais:
1. Servir de introduo ao mundo da Computao Grfica (CG).
2. Ensinar a produzir contedo de CG com uma suite grfica poderosa e atual,
reconhecidamente uma das principais aplicaes do mercado de CG em 3D no
mundo todo.
A computao grfica vem se desenvolvendo de maneira cada vez mais acelerada h
dcadas e se tornou uma rea vasta, repleta de frentes de pesquisa e aplicaes, que
promete muitas oportunidades aos que escolherem se dedicar a um ou mais de seus
ramos.
Parte dessas oportunidades se encontra na tecnologia de ponta dentro de centros de
pesquisa e indstrias diversas. Mas a outra, igualmente importante, est bem aqui ao
nosso alcance, a partir dos nossos computadores pessoais.
Com um programa grfico poderoso como o que usamos neste curso, um computador
capaz de atender os requisitos mnimos, bom treinamento e bastante dedicao,
podemos abrir muitas portas no mundo interligado e apaixonado por tecnologia em que
vivemos.

Exerccios
1. Citar usos da computao grfica: campos de pesquisa e trabalho, usos no lazer.
2. Descobrir os requisitos mnimos de sistema exigidos pelo software deste curso.
3. Descobrir fruns nacionais (e, se quiser, estrangeiros) de usurios do software
deste curso.

Produo
CG em 3D pode ser realizada de diversas maneiras. Eis um resumo:
Programadores criativos podem gerar imagens e animaes diretamente a partir
de instrues em alguma linguagem de programao.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

Ferramentas de captura de movimentos, gravao de imagens e sons, etc.


podem alimentar programas feitos para processar esses dados e transform-los
em grficos digitais.
Juntando essas duas possibilidades, temos a principal: programadores criam
software cada vez mais avanado e com interfaces cada vez mais prticas de se
usar, para artistas, profissionais de outras reas e amadores usarem. Trabalhar
com esses programas , de longe, a maneira mais flexvel, agradvel e poderosa
de se criar contedo com CG.
Pare termos uma ideia razovel da rpida evoluo em hardware e software ligado CG,
basta lembrarmos que ela a responsvel direta pelos avanos na qualidade dos
grficos em filmes e jogos.

Exerccios
1. Encontrar imagens ou trailers de animaes feitas com CG em 3D (filmes que
passaram nos cinemas, por exemplo) de anos diferentes que ilustrem como tem
sido marcante a evoluo em grficos.
2. Encontrar imagens ou trailers de jogos eletrnicos em 3D (para computadores,
videogames, celulares, o que vocs quiserem) de anos diferentes que ilustrem
como tem sido rpida a evoluo em grficos.

Passos essenciais
Mas como se trabalha com CG em 3D? Simplificando, o caminho tradicional para se
partir de uma ideia e se chegar a uma imagem ou animao em 3D no computador :
1. Criar a cena com os modelos em um programa de modelagem 3D.
2. Definir as superfcies desses modelos usando materiais diversos nesse mesmo
programa ou em outro.
3. Para animaes: preparar nossos modelos com recursos especficos para serem
animados e animar a cena num programa de animao.
4. Definir fontes de luz para iluminar a cena (no necessariamente depois dos dois
passos anteriores), geralmente no programa de modelagem ou no renderizador.
5. Definir ponto(s) a partir dos quais se v a cena, o que significa definir uma ou
mais "cmeras virtuais".
6. Renderizar -- ou seja, pedir a um programa chamado renderizador que use os
dados que criamos (modelos prontos com seus materiais, iluminao, cmeras)
e produza com eles as imagens ou sequncias de imagens (animaes) que
costumamos ver em telas de computadores, TV, cinema, celulares, etc.
Observaes:
1. Os passos 2, 4 e 5 acima so geralmente feitos no programa de modelagem ou
passados para o renderizador atravs de uma interface grfica de controle ou de
um arquivo de texto com instrues no formato compreendido por ele.
2. Como este um curso introdutrio, nos concentramos nos passos essenciais e
omitimos acima outros normalmente usados por profissionais em trabalhos mais
elaborados, como definio de efeitos especiais (partculas, fluidos, simulaes
fsicas), captura de movimentos, ps-produo, compositing, etc. Claro que isso
varia de acordo com as exigncias de cada trabalho.
Onde entra um programa como o que usamos neste curso na lista de passos acima?
Resposta: em todas as etapas e nas do item 2 das observaes, tambm. O software do
nosso curso um exemplo de "suite grfica", que junta diversas aplicaes avanadas

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

em um nico programa, capaz de ser usado como ferramenta para criar uma animao
desde o planejamento at o produto final.

Resultado final
Tipos de renderizao
Programas renderizadores costumam ser bastante flexveis quanto ao tipo de visual que
podemos buscar. Aqui esto algumas escolhas bastante populares para tipo de
renderizao:
1. Foto-realstica, que busca imitar o mundo real, criando imagens e animaes
capazes de nos fazer achar que as cenas foram fotografadas ou filmadas de
eventos reais.
2. Estilizada. Aqui as possibilidades so inmeras, inspiradas nos desenhos
animados tradicionais, em pinturas de diversos estilos, ilustraes, estilos de
diferentes partes do mundo, etc.
3. Outra possibilidade ao invs de renderizar os dados da cena como imagens ou
animaes "fixas" renderizar em tempo real dentro de alguma aplicao
interativa de realidade virtual, simulao ou jogo.
Como mencionado acima, aps toda a produo do contedo ainda existem passos
adicionais que podem ser aplicados. Essa etapas so conhecidas como "compositing" e
"ps-produo".

Compositing
Compositing significa juntar elementos (imagens, em nosso caso) de fontes diferentes e
combin-los como um s. Exemplos:
Chroma key: combinar gravaes de pessoas com fundos diversos gravados ou
gerados por computador, como se faz diariamente em programas de TV (nos
jornais, previso do tempo, propagandas, etc.) e filmes.
Inseres: colocar personagens virtuais em cenas reais, como monstros gigantes
em filmes.
Efeitos diversos, como sabres de luz, raios, auras, trilhas de partculas
brilhantes, exploses, etc. etc.

Ps-produo
uma etapa comum em cinema, TV, rdio, vdeos, udio, fotografia e arte digital. nela
que se pode:
Editar o contedo j renderizado para definir o que vai fazer parte do produto
final.
Integrar a trilha sonora e efeitos especiais diversos.
Acertar o formato final do filme (correes de cor, codecs, etc.), por exemplo, de
acordo com a mdia onde ele ser veiculado.

Exerccios
1. Conseguem pensar em mais possibilidades alm de renderizar para imagens,
animaes e aplicaes em tempo real? (Dica: papel...)

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

2. O software deste curso possui recursos para realizar todos os passos de


produo e ps-produo que mencionamos? Pesquisem em uma lista de
recursos dele, por exemplo.

Fundamentos
Nota: o material destas sees pode ser bsico demais para muitos de vocs, mas
muito importante que o compreendam bem, por isso mesmo quem j aprendeu tudo isso
pode se beneficiar com uma pequena reviso focada no essencial que vamos precisar.

Espaos, sistema de coordenadas


1D
Lembram-se da velha reta real?

Ela uma representao do conjunto de todos os nmeros reais, se extendendo


esquerda para -infinito e direita para +infinito. Podemos pensar nela como um espao
unidimensional (1D) e atribuir coordenadas dentro dele associadas ao valor em cada
ponto.
Por exemplo, podemos marcar o ponto A = 8.5 e o ponto B = -3.0 na reta real. Ento,
8.5 ser a coordenada de A na reta -- o "endereo" de A. E, claro, -3 ser a coordenada
de B. Como estamos em um espao 1D, note que s precisamos de um valor para
caracterizar totalmente a posio de qualquer ponto que desejarmos marcar.
Ento num "mundo" unidimensional, um nico valor na reta real representa a posio de
qualquer "objeto".
Mas o que seriam esses "objetos"?
Ora, em 1D estamos muito limitados. Podemos representar pontos "imateriais", "sem
partes", sem dimenso que possa ser medida. Ou seja, eles so meras posies na reta.
E dados dois pontos quaisquer (vamos cham-los de P1 e P2), podemos pensar numa
reta unindo-os. Essa reta ("segmento de reta" seria um termo mais preciso) no tem
espessura, s comprimento, dado pela distncia entre P1 e P2.
Ento isso, em 1D podemos representar apenas pontos e "segmentos de reta". Em CG
chamamos os pontos de vrtices e as retas que os unem de arestas, termos vindos da
matemtica.
Em Ingls:
Vrtice "vertex"; vrtices "vertices";
Aresta "edge"; arestas "edges".

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

Distncia entre 2 pontos


Para saber a distncia entre A e B, basta subtrair seus valores: 8.5 - (-3) = 8.5 + 3 =
11.5. Ou seja, A e B distam 11.5 unidades na reta real. Como pensamos em distncias
sempre como valores maiores ou iguais a zero, o correto dizer que a distncia entre A
e B o mdulo ou valor absoluto da diferena entre suas coordenadas: |P(A) - P(B)| =
|P(B) - P(A)|, onde || representa mdulo (valor absoluto, ignorando o sinal do nmero)
e usamos P(A) para representar a posio de A na reta real.

Diviso
Note que o ponto 0 (zero) fica no meio da reta real e a divide de maneira natural em
duas metades: esquerda do zero todos os valores so negativos e direita dele todos
so positivos.
Exerccios
1. Qual a distncia entre os pontos P = -100.3 e Q = 12?
2. O ponto P1 fica na coordenada 53. A distncia dele para P2 vale 20. Onde pode
estar P2 na reta? E P3, que tambm fica a 20 unidades de P1, mas no coincide
com P2? Qual a distncia entre P2 e P3?

2D
Mas e em um mundo bidimensional, como uma tela de TV ou monitor, uma mesa,
qualquer uma das paredes ao seu redor, uma folha de papel? Como representar a
posio de qualquer objeto colocado num plano?
A maneira mais simples usando duas retas reais, simplesmente extendendo o que
sabemos sobre espaos 1D. E o mais prtico coloc-las perpendiculares entre si: uma
na horizontal, outra na vertical, ambas se cruzando no ponto "zero" delas.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

Com esse arranjo, conhecido como plano cartesiano, podemos definir a posio de
qualquer objeto com dois valores reais, um em cada um dos eixos do plano cartesiano
ou eixos cartesianos. Para isso basta projetarmos perpendicularmente o ponto sobre o
eixo horizontal, normalmente chamado de eixo x ou das "abscissas", e sobre o eixo
vertical, conhecido como y ou das "ordenadas". Nos pontos onde essas projees
cortarem os eixos x e y teremos as coordenadas que procuramos. Note na figura as
projees do ponto P indicando que suas coordenadas so (x, y) = (6.5, 5.3).
Quais objetos podemos representar num mundo plano? Muito mais que em uma reta,
com certeza. Todos ns temos bastante experincia com isso, a resposta : tudo que
vemos representado em superfcies bidimensionais (papis, paredes, telas, etc.).
Conseguimos inclusive a iluso de tridimensionalidade, por meio de projees 3D -> 2D,
usando a matemtica relacionada ao estudo de perspectiva visual. Em particular,
expandindo o exemplo unidimensional: se na reta podemos representar pontos e
segmentos de reta, no plano podemos representar figuras geomtrias bidimensionais,
como polgonos.
Um exemplo de programa de computador onde o sistema de coordenadas x-y
importante so os programas de desenho 2D, como os de bitmap, editores de imagens e
editores de grficos vetoriais.
Origem na tela
A conveno universal usar a letra x para representar o eixo horizontal e y para
representar o vertical. Mas a origem desse sistema de coordenadas x-y, ou seja, o ponto
(0, 0), pode variar dependendo do programa sendo usado. Alguns consideram que o
canto inferior esquerdo da tela a origem. Nesse caso o eixo y "cresce para cima":
quanto mais alto na tela, maior o valor da coordenada y. Em outras palavras, +y para
cima, +x para a direita. Outros programas podem considerar a origem como sendo o
canto superior esquerdo e a o eixo y "cresce para baixo": quanto mais baixo na tela,

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

maior o valor da coordenada y.

Distncia entre 2 pontos


No espao cartesiano 2D a distncia "d" entre dois pontos (x1, y1) e (x2, y2) dada
pela frmula: d = (x2 - x1) + (y2 - y1). Ou seja, d a raiz quadrada de (x2 - x1) +
(y2 - y1).
Diviso
No plano cartesiano temos duas retas perpendiculares dividindo o plano em quatro
pedaos, quatro quadrantes (quadrante uma das partes de um todo dividido
igualmente em 4). Essa uma extenso natural de usarmos duas retas reais. Cada uma
delas, como vimos, divide-se em duas metades: positiva e negativa, a partir da origem
(o zero). Aqui ficamos com quatro opes para os sinais das coordenadas x e y: ++, -+,
--, +-.

Por ser o mais prtico a fazer, convencionou-se que imagens 2D possuem apenas
valores positivos, ficando a origem do sistema de coordenadas no canto esquerdo
inferior da imagem. Em outras palavras, as coordenadas de imagens nos programas de
desenho e edio 2D esto contidas no primeiro quadrante (Q1 na figura), onde x e y
so positivos.
Ordem dos eixos
Como escrito acima, a conveno universal que x repesenta o eixo horizontal e vai
para -infinito esquerda e +infinito direita. E que y vertical, -infinito para baixo e

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

+infinito para cima. Essa conveno chamada de "regra da mo direita", que costuma
ser ensinada em Fsica no colegial.
Exerccios
1. O que quer dizer o termo "perpendicular", mesmo? Poderamos representar as
coordenadas de pontos em 2D com eixos paralelos ao invs de perpendiculares?
E com eixos formando outros ngulos (ou seja, oblquos ou obtusos)?
2. Alm dos eixos X e Y, como poderamos representar coordenadas no plano?
Existem outros sistemas de coordenadas em 2D?
3. Em que quadrante fica o ponto P1, que equidista de P2 = (-39, -15) e P3 = (14,
-17) e est na reta que une P2 a P3?
4. Cite 5 exemplos de programas grficos 2D que trabalham com imagens
compostas por pixels (inclusive fotos digitais) e 5 exemplos de programas
grficos 2D que trabalham com grficos vetoriais.
Dica cultural: h um livro divertido chamado "Flatland: A Romance of Many
Dimensions", de Edwin Abbott Abbott, lanado em 1884. a histria de um personagem
de um mundo bidimensional que v em sonho um mundo unidimensional e depois
recebe a visita de um ser de um mundo tridimensional. Ele expande sua viso e faz
diversas anlises sobre as diferenas entre esses mundos, mas se complica com a
justia tentando convencer seus compatriotas sobre a existncia da terceira dimenso. A
histria serve de pano de fundo para crticas sociais e polticas.

3D
Da mesma maneira como descrevemos 2D a partir de 1D, adicionamos mais uma
dimenso para representar coordenadas em um espao tridimensional. Com mais um
eixo (mais uma reta real) passamos do plano com coordenadas x-y para o espao com
coordenadas x-y-z.
esse o sistema de coordenadas principal em aplicaes 3D, naturalmente. As setas nas
pontas dos eixos indicam a direo positiva, que vai para +infinito.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

Ordem dos eixos


H duas convenes para se definir a direo dos eixos: a "regra da mo direita" e a
"regra da mo esquerda". Vamos usar a figura acima como base. Usando a mo direita,
aponte o polegar para a direita, como se fosse o eixo x na figura. A palma da mo fica
para cima. Depois aponte o indicador para a frente, como o eixo y na figura. O dedo
mdio apontado para cima ficar alinhado com o eixo z da imagem. Esse arranjo dos
dedos da mo representa a regra da mo direita.
Se fizermos o mesmo com a mo esquerda, alinhando o polegar com o eixo x e o
indicador com o eixo y da figura. A palma da mo agora fica para baixo. Note que nesse
arranjo com a mo esquerda o eixo z aponta para baixo.
A conveno mais comum em CG a da mo direita. O que varia qual eixo aponta
para cima.
z para cima ou y para cima?
A coordenada z nas telas de computadores tradicionalmente representa "profundidade",
j que x representa "largura" e y, "altura". Mas em algumas aplicaes convencionou-se
que x e y representavam o plano, pensado como cho, e ento z representaria a altura.
Isso comum em simuladores de voo, por exemplo.
Existem programas grficos que seguem a conveno "y aponta para cima" e outros que
seguem a conveno "z aponta para cima". Na prtica isso no causa problemas srios,
bastando que se tome cuidado na hora de importar ou exportar dados entre programas
com convenes diferentes. Boas ferramentas de importao e exportao de dados j
so programadas para fazer a converso necessria automaticamente.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

10

Importante: com z ou y para cima continuamos com a mesma orientao do sistema


de coordenadas. A diferena apenas questo de girar 90 em relao ao eixo x. Para
ver isso: faa a regra da mo direita com seus dedos novamente, a gire o pulso at o
dedo mdio (z) apontar para voc. Note que o dedo indicador (y) ficou para cima.
J a diferena entre as regras da mo direita e esquerda no assim trivial, no d para
mudar de uma orientao para a outra apenas com rotaes do sistema como um todo.

Distncia entre 2 pontos


No espao cartesiano 3D a distncia entre dois pontos (x1, y1, z1) e (x2, y2, z2) dada
por uma extenso da frmula usada para o caso 2D: em 3D, a distncia d a raiz
quadrada de (x2 - x1) + (y2 - y1) + (z2 - z1).
Diviso
Como j deve ter ficado claro, 3D uma extenso de 2D, que uma extenso de 1D.
Como vimos, na reta temos a origem (x = 0) dividindo-a em duas metades. No plano, a
origem (x, y) = (0, 0) o divide em quatro quadrantes. Em 3D, os planos perpendiculares
a cada eixo que passam pela origem (x, y, z) = (0, 0, 0) dividem o espao em oito
octantes.
Em programas 3D costuma-se usar o espao todo, no apenas um ou parte dos
octantes. Portanto, valores positivos e negativos de x, y e z so usados.
Importante: programas de modelagem 3D em geral no foram feitos para lidar com
grandes variaes de escala entre os modelos dentro de nossas cenas. Por exemplo, se
vamos modelar uma formiguinha caminhando em uma rua de uma cidade grande,
melhor nem tentar modelar na mesma cena os prdios de centenas de andares em
grandes quarteires, os veculos e pessoas e l embaixo a formiguinha e outros objetos
prximos escala dela. Aplicar texturas, ento, seria impraticvel. A diferena de
dimenses faz com que se perca preciso nos extremos, sem falar da dificuldade de
editar a cena e dos limites das cmeras nela, incluindo a da vista 3D. A soluo,
naturalmente, ter cenas independentes para intervalos de escala incompatveis: uma
para os prdios sobre os quarteires vistos de longe, outra para os carros, caminhes,
(partes visveis dos) imveis prximos, etc. e outra para a formiguinha e demais objetos
compatveis com ela, mais as partes do cenrio onde ela estiver. Com compositing e
truques de edio conseguimos integrar macro e micro no resultado final, como
comum vermos em filmes.
Exerccios
1. Vimos que a frmula da distncia em 3D uma extenso da usada em 2D.
Podemos dizer que a de 2D uma extenso da usada em 1D? Ou seja,
possvel escrever a distncia em 1D entre dois pontos como a raiz quadrada de
uma subtrao dos valores desses pontos?
2. Qual a distncia entre os pontos (-10, 10, 12) e (5, 34, 9)?
3. Qual dos pontos do exerccio anterior est mais prximo da origem?
4. O que precisamos fazer para mudar a orientao do sistema de coordenadas, da
regra da mo direita para a da mo esquerda?

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

11

Cenas, objetos
Cenas, arquivos de dados, projetos
Em editores de texto (e diversos outros tipos de aplicaes), chamamos cada arquivo
que criamos de "documento", ou "arquivo", mesmo (em Ingls: "file"). Dizemos que o
arquivo tal contm o documento tal. Documento um termo geral que pode ser aplicado
a vrios outros tipos de programa. Mas em muitos deles o mais comum usarmos
termos especficos. Por exemplo, em programas grficos 2D o termo mais comum
"imagem".
Em programas de CG em 3D usados para modelagem e animao, o termo mais usual
no documento nem imagem: cena. Dizemos que um arquivo do software contm
determinada cena. Naturalmente isso foi inspirado nos filmes, j que esses programas
so usados para criar animaes inteiras e efeitos especiais e inseres diversas em
filmes.
Vamos voltar ao exemplo dos editores de texto. Achamos que, ao imprimir ou exportar o
texto para outro formato, o contedo todo dele estar l. Por isso a relao: um arquivo
de dados representa um documento no programa tal. Certo? No necessariamente. Um
arquivo de texto pode conter mais material do que o que normalmente aparece no
resultado final, como senha, permisses de uso, dados de quem criou o texto e
informaes sobre as modificaes feitas nele, para permitir desfaz-las.
Da mesma maneira, um arquivo de dados de um programa grfico 2D pode conter mais
do que a imagem que queremos exportar dele. Um bom programa 2D costuma ter
informaes extras diversas, como camadas, mscaras, filtros, lista de modificaes, etc.
Ento cada "documento" muito mais que sua imagem final. Por isso costuma-se
chamar o contedo desses arquivos de "projeto". Cada arquivo contm um projeto, que
pode conter um documento, uma imagem ou cena ou vrios ou diversos outros dados
relevantes.
Finalmente, um projeto pode estar espalhado em mais de um arquivo. Por exemplo,
podemos ter nossa cena principal em um arquivo, materiais em outro(s), cada
personagem em outro, etc. Nesse caso chamamos os diversos arquivos extras de
"biblioteca" (em Ingls: "library"), em possvel analogia com o uso desse termo por
programadores. As vantagens principais disso so:
1. Poder reaproveitar dados em mais de uma cena, diminuindo o trabalho
necessrio para cri-los.
2. Poder dividir a grande quantidade de dados em diversos arquivos e s trazer
para a memria do computador o que for necessrio.
3. Garantir que uma mudana em um arquivo da biblioteca seja propagada para
todos os outros de uma vez, sem termos que repetir a mesma mudana em cada
arquivo.
Resumindo: cada arquivo de dados do nosso programa 3D pode conter uma ou mais
cenas e ser independente ou estar ligado a outros arquivos de dados (uma biblioteca).
Para projetos maiores e para quem usa bastante um programa 3D, bibliotecas de dados
so essenciais.
Exerccios
Compare essas duas situaes:

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

12

1. Tenho 10 cenas diferentes, cada uma completa e sozinha em seu arquivo, no


uso nem quero usar uma biblioteca de dados. Cada uma delas tem sua prpria
cpia do material "Ouro", por exemplo.
2. Tenho 10 cenas diferentes que utilizam diversos dados da minha biblioteca,
como seus materiais. Tenho um nico material "Ouro", por exemplo, que todas
as 10 cenas reutilizam.
Perguntas: o que acontece com os casos 1 e 2 acima nas situaes abaixo?
1. Aprendi como criar um material mais parecido com ouro e resolvi atualizar meu
material "Ouro".
2. Fui contratado para um trabalho onde preciso de diversos materiais e objetos
que j criei nas 10 cenas que possuo.
3. Perdi minha biblioteca de materiais por causa de um defeito no disco rgido.
4. Saiu uma nova verso do meu programa 3D que no totalmente compatvel
com a anterior, vou ter que importar minhas cenas na nova verso e corrigir
algumas falhas de converso manualmente.

Objetos
Textos contm caracteres, imagens contm pixels, cenas contm... objetos e dados
diversos (textos, imagens, sons).
Vamos nos concentrar no essencial. O que so esses "objetos"?
Como exemplo vamos imaginar uma cena em 3D que criamos para uma imagem,
animao ou jogo. Digamos que a cena represente dois mesatenistas praticando pinguepongue (s para irrit-los :-) ) em um salo de jogos.
Nossa cena tem:
Cenrio: a sala, com paredes, cho, teto.
Partes mveis do cenrio: portas, janelas.
Mveis em geral: a mesa de tnis, um armrio, uma mesa de canto, outros
aparelhos esportivos.
Objetos diversos: as raquetes e bolinhas, alguns psteres nas paredes, revistas
sobre algumas mesas.
Personagens: os dois jogadores.
Esses so nossos objetos, nossos modelos em 3D, que so renderizveis, ou seja, que
podemos renderizar.
Tudo pronto ento para renderizar uma imagem? No. Em programas 3D precisamos
pensar na cmera que vai "filmar" a cena e na iluminao. Cmeras e fontes de luz so
exemplos de objetos prontos no-renderizveis -- que no aparecem no resultado
final. Eles so "ferramentas" nossa disposio.
Assim, podemos dividir em dois tipos os objetos de uma cena qualquer:
1. Objetos renderizveis, que vo ser vistos na imagem, animao ou jogo
resultante da cena. Esses so os objetos que podemos criar a partir de
estruturas como meshes, NURBS, patches, metaballs, voxels, etc.
2. Objetos auxiliares, que no aparecem no resultado final: cmeras, fontes de luz,
marcadores, malhas de controle e diversos outros tipos de controle, etc.
Importante: em geral possvel usar objetos normalmente renderizveis como

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

13

controles e podemos "desligar" qualquer objeto renderizvel, fazendo com que seja
ignorado pelo programa renderizador.

Localizao dos objetos na cena


Esse o momento em que juntamos tudo que vimos no texto at aqui. Lembra-se das
coordenadas cartesianas? com esse sistema de coordenadas que definimos as posies
de todos os objetos na cena.
Cada objeto possui um ponto central. Quando se diz que o objeto Cubo est no ponto
(x, y, z) = (10, 5, 3), por exemplo, queremos dizer que seu ponto central est
exatamente nessas coordenadas. Transformaes como translao, rotao e escala
tambm podem ser feitas a partir do ponto central do objeto.
Mas "ponto central" na verdade um termo enganoso em CG, porque esse
ponto no matemtico nem fsico: ele no precisa estar no centro geomtrico
ou no centro de massa do objeto. Podemos coloc-lo onde quisermos, at
mesmo fora do objeto.
Colocar o ponto central de um objeto em uma posio mais conveniente para o uso que
faremos dele pode simplificar bastante a manipulao desse objeto.
Exemplos disso:
1. Queremos posicionar um vaso sobre o tampo de uma mesa, bem no meio dela.
Se o ponto central do tampo for definido no meio da superfcie superior dele e o
ponto central do vaso na base do vaso, para coloc-lo sobre o tampo basta dar
ao vaso as mesmas coordenadas do tampo da mesa. Isso pode ser feito com um
simples comando, mesmo em programas sem recursos para automaticamente
encostar um objeto em outro.
2. Pense nas articulaes de uma personagem. Queremos que o osso do brao gire
a partir do ombro, no do meio desse osso. Todo o "esqueleto" da personagem
feito com base nisso, colocar os pontos centrais nas extremidades corretas.
(Criar corretamente esqueletos de animao definidos a partir de ossos ou juntas
j garante isso.)

Transformaes
As 3 operaes mais bsicas que podemos realizar com objetos no espao 3D so:
Translao: mudar a posio do objeto.
Rotao: mudar a direo dele.
Escala ou redimensionamento: mudar seu tamanho.
H diversas maneiras para se definir transformaes em um programa grfico 3D:
1. A mais natural editar diretamente, ativando o comando e movendo o mouse
at chegarmos ao efeito desejado. Podemos usar opes extras dessas
ferramentas para conseguir maior preciso ou restringir de alguma maneira as
modificaes.
2. Pode-se digitar valores diretamente na interface (em botes do tipo "slider" e
caixas para entrada de nmeros), para maior preciso. Isso ideal quando
sabemos exatamente os novos valores que desejamos aplicar.
3. Para os que no se intimidam com a matemtica envolvida, pode ser possvel
editar diretamente na interface os valores da matriz que transforma os objetos.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

14

4. Muitos programas suportam scripts, que so sequncias de cdigo escritas em


alguma linguagem de programao especfica. Pode-se escrever scripts para
aplicar transformaes aos objetos.

Ponto central da transformao


Cada uma dessas transformaes se d em relao a um ponto especfico. Por exemplo,
uma roda de carro gira em relao a seu centro; os ponteiros do relgio giram em
relao ao eixo onde suas pontas foram fixadas; a bolinha de um pndulo gira em torno
do ponto onde seu brao est preso.
Vamos analisar as imagens abaixo. Na cena original, esquerda nas duas figuras, vemos
os eixos X (vermelho) e Z (azul) e nosso objeto, um retngulo preto. O ponto central
desse objeto est indicado como um ponto amarelo e nesse caso est mesmo no centro
geomtrico do objeto.
Nesta primeira imagem partimos da cena do lado esquerdo e fizemos uma rotao do
objeto em torno de seu ponto central, chegando ao resultado mostrado no lado direito.
Note que o centro ficou no mesmo lugar onde estava e o resto do objeto se moveu.

No exemplo seguinte, partindo novamente da cena original, fizemos uma rotao do


objeto em torno da origem do sistema de coordenadas: o ponto (0, 0) em 2D ou (0, 0,
0) em 3D. Deixamos duas cpias do objeto apenas com as silhuetas visveis, para
ilustrar onde ele estava e como se moveu. Note que, como o centro da transformao
est fora do objeto, o objeto inteiro mudou de posio no espao.

Eixo da transformao
Alm do ponto, temos tambm os eixos de uma transformao. Podemos realizar
transformaes livres, nos 3 eixos (x, y, z) ao mesmo tempo, ou restringi-las a apenas 1
Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil
Todos os direitos reservados.
http://alphachannel.com.br

15

ou 2 deles.
Uma translao restrita ao eixo x s mover o objeto em relao a esse eixo, por
exemplo. Redimensionar um cilindro ao longo de seu eixo principal o deixar mais longo,
mas com o mesmo dimetro.
A imagem abaixo mostra, da esquerda para a direita, 1) o cilindro original, seguido de 3
cpias redimensionadas: 2) aumentado livremente (ou seja, igualmente em x, y e z), 3)
apenas em relao ao eixo z e 4) em relao aos eixos x e y:

Transformaes da vista 3D
Objetos no-renderizveis tambm podem ser transformados. Podemos mover, girar e
redimensionar cmeras e luzes, por exemplo, mudando suas posies na cena e a
maneira como afetam os demais objetos.
Mas alm disso esses objetos podem possuir recursos extras. No caso das cmeras, h
diversas funcionalidades especficas, inspiradas em cmeras reais, que podemos editar,
como as caractersticas de suas lentes.
Um recurso bastante comum em CG definir o tipo de projeo da cena em 3D para
uma imagem em 2D, como a que podemos ver nas telas e folhas de papel. As mais
comuns em CG so:
Perspectiva
Esta classe de projees representa de maneira mais realista a altura, largura e
profundidade da vista e dos objetos dentro dela. O estudo da perspectiva um dos mais
importantes e desenvolvidos ao longo da histria da Arte.
Principais caractersticas suportadas por essas projees:
Objetos mais distantes so reproduzidos em tamanho proporcionalmente menor.
"Foreshortening": iluso tica que faz os objetos parecerem menores do que so
quando so vistos ao longo da nossa linha de viso. Exemplo clssico: trilhos de
trem vistos por quem est de p sobre eles ou ao lado deles e olha para o
horizonte na direo em que eles seguem.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

16

Ortogrfica
Tambm chamada de "ortogonal", porque nela a linha de viso ortogonal ao plano de
projeo. (Ortogonal aqui significa que elas formam ngulo de 90.)
Principais caractersticas:
Esse tipo de projeo preserva o "paralelismo" entre as linhas que formam um
modelo (veja a imagem abaixo e a explicao acima dela).
bastante popular em desenho tcnico e mecnico.
Na imagem a seguir temos, esquerda, um cubo com projeo em perspectiva e,
direita, o mesmo cubo com projeo ortogrfica. Note como na em perspectiva as linhas
paralelas do cubo no parecem mais paralelas. J na ortogrfica, as arestas que so
paralelas no objeto real em 3D continuam aparecendo paralelas nesta projeo 2D na
tela ou papel.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

17

Exerccios
1. Alm das transformaes que vimos, existem outras, como inclinao (em
Ingls: "shear") e reflexo ("reflection"). O que elas fazem?
2. Um quadrado redimensionado em relao a apenas um de seus eixos vira o que?
E um cubo? Considere que os eixos esto alinhados com os lados do quadrado e
um dos cantos do cubo.
3. Encontre exemplos de vrios tipos de projeo: em perspectiva, ortogrfica,
perspectiva olho-de-peixe ("fisheye"), panormica, as usadas em domos, etc.

Organizao e hierarquias
Evitando o caos: organizao
Durante seu desenvolvimento, a complexidade de uma cena pode crescer rapidamente,
com dezenas, centenas e at milhares de objetos, materiais, texturas, controles, etc.
Manter organizado esse grande volume de dados imprescindvel.
No mundo real usamos gavetas, prateleiras, pastas, escrevemos ndices, separamos
arquivos em rvores de diretrios, usamos programas indexadores, entre outros meios
de organizar o que quer que precisemos.
Em programas grficos 3D tambm temos uma srie de recursos nossa disposio
para organizar os dados e facilitar nossas vidas. Os mais simples so grupos e camadas.
Grupos
normal em um arquivo agruparmos objetos segundo critrios como um ou mais
destes:
Tipo: agrupa-se objetos que so representaes de itens de funcionalidade
semelhante ou relacionada. Exemplos: modelos de brinquedos, de utenslios de
cozinha, ferramentas de jardinagem, objetos que usam determinados materiais
em comum, entre tantas outras possibilidades.
Conjunto: agrupa-se objetos que, juntos, formam algo maior, como partes de
um veculo ou mesa mais cadeiras mais objetos sobre a mesa, etc.
Critrios variados, a sua escolha.
conveniente poder dizer ao nosso programa grfico que determinados objetos fazem
parte de uma mesma coleo, selecionada e nomeada por ns. Podemos salv-los em
um mesmo arquivo e, ao importar, importar o grupo todo de uma vez com um s
comando.
E existem diversas outras vantagens nesse recurso de agrupar objetos, como:
Alguns programas possuem recursos para usar esse tipo de informao para
controlar quais objetos recebem iluminao de determinadas fontes de luz, por
exemplo.
"Instancing", ou seja, para fazer mltiplas cpias de um grupo de objetos na
cena, durante a renderizao. Exemplo: podemos criar umas poucas pedras ou
folhas de vegetao, coloc-las num mesmo grupo e o programa poder criar
centenas ou milhares de cpias -- idnticas ou com variaes -- desse grupo no
resultado final. Isso economiza nosso trabalho e a memria e processamento do
computador e ainda reduz o tamanho do arquivo de dados contendo nossa cena.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

18

Camadas
Outra maneira de agrupar objetos o recurso das camadas (em Ingls: "layers").
Camadas so como caixas invisveis onde podemos guardar objetos isolados ou em
grupos.
Podemos facilmente desabilitar uma ou mais camadas, tornando de uma vez todo o seu
contedo invisvel na tela ou na renderizao final, ou impossvel de ser selecionado ou
editado. Isso ajuda bastante quando queremos nos concentrar apenas em uma parte da
cena, sem que o resto dos objetos atrapalhe nossa viso, o ato de selecionar ou o tempo
de renderizao de nossos testes.
comum organizar cenas separando cmeras, luzes e cenrio em uma ou mais
camadas, isoladas das camadas onde esto personagens. Tambm boa ideia isolar
controles de efeitos especiais e de animao de personagens em camadas distintas dos
modelos.
O conceito de camadas tambm costuma ser usado em situaes mais especficas, como
esqueletos de animao e "render layers", camadas de renderizao. Com isso
organizamos melhor os ossos e controles de um esqueleto de animao, no primeiro
caso, e ganhamos flexibilidade e muitas possibilidades interessantes para compor as
imagens renderizadas com efeitos diversos.

Dando estrutura: hierarquias


Mais um recurso duplamente importante: o de hierarquias.
Por um lado elas podem ser usadas como grupos e camadas na organizao de uma
cena. Mas um grupo de objetos ou uma camada composta deles no possui estrutura
alguma, todos os objetos l dentro so independentes uns dos outros. Se selecionamos
uma bolinha num grupo de bolinhas e a movemos ou aplicamos outra transformao,
como mudar seu tamanho, as outras no sero afetadas. O mesmo para o chassis de um
modelo de automvel: podemos mov-lo e suas rodas e bancos, etc. vo ficar para trs.
J uma hierarquia impe uma ordem. Associamos dois objetos definindo um como
estando acima do outro na hierarquia. Um termo usual em Ingls dizer que um
"parent" do outro, o que podemos traduzir como "pai" ou "me". Dois ou mais objetos
com um mesmo pai so considerados "irmos" ("siblings") na hierarquia. Podemos
chamar o objeto acima de todos na hierarquia de "raz" ("root") dela.
No exemplo do carro, podemos definir que o chassis pai das rodas e bancos, que cada
roda pai de sua calota, que pai de seus parafusos. Ao mover o chassis, seus "filhos"
sero movidos junto, e os filhos dos seus filhos tambm, e os filhos dos filhos...
Assim, se quisermos mudar o tamanho do carro, basta selecionar o objeto no topo da
hierarquia -- o chassis, em nosso exemplo -- e aplicar a transformao a ele. Por causa
da hierarquia, todos os objetos abaixo do objeto "raiz" sero transformados junto com
ele. Note que o mesmo no ocorre na direo oposta: podemos mudar o tamanho de um
pneu ou mov-lo e o chassis no ser afetado. Transformaes aplicadas diretamente
aos filhos no afetam os pais.
Note que podemos misturar grupos, hierarquias e camadas. No exemplo do carro,
podemos criar um grupo para as rodas completas e outro para os bancos e tornar o
chassis pai de ambos, deixando o carro todo em determinada camada.
Um exemplo importante e bastante comum de hierarquia o corpo dos personagens
(quando ele composto de pedaos separados) ou o esqueleto de animao dele. Como
Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil
Todos os direitos reservados.
http://alphachannel.com.br

19

as transformaes feitas no objeto pai so propagadas aos filhos, se girarmos um brao


na altura do ombro, brao, antebrao, mo e dedos sero girados junto, como
esperaramos. Girando apenas a mo, s os dedos acompanharo.

Exerccios
1. Programas grficos 2D, como Gimp e Adobe Photoshop, tambm possuem um
recurso chamado de camadas ("layers"). Explique do que se trata. Podemos
fazer a analogia: camadas em programas de modelagem em 3D guardam
objetos e camadas em programas de edio de bitmaps em 2D guardam pixels?
2. Imagine uma cena razoavelmente complexa, com diversas classes de objetos.
Descreva o que ela conteria e explique que critrio usaria para definir grupos e
hierarquias desses objetos. Pensando tambm na iluminao e na cmera da
cena, explique como dividiria todos os objetos em camadas?

Sistemas de coordenadas global, local...


Sistema global
Como vimos, as posies em nosso espao 3D so definidas a partir de um sistema
cartesiano de eixos perpendiculares x, y e z. Isso determina uma origem nesse espao,
um ponto central de coordenadas (0, 0, 0).
A partir desse sistema de eixos podemos determinar a posio de qualquer objeto em
nosso espao 3D. Chamamos esse sistema de coordenadas o sistema global ou de
coordenadas globais ou do "mundo". Em Ingls: "global coordinates" ou "world
coordinates".
Podemos aplicar transformaes a qualquer objeto usando nosso sistema global, usando
como centro da transformao a origem do sistema de coordenadas global: (0, 0, 0).
Girar um objeto distante em relao a esse centro, por exemplo, como girar uma
pedra amarrada na ponta de um barbante ou como a ponta de um ponteiro de relgio ou
de um pndulo giram em relao extremidade fixa de seu brao.

Sistema local
Relembrando: cada objeto possui um ponto central, que podemos colocar em qualquer
lugar, mesmo fora do prprio objeto.
Nesse ponto central tambm podemos definir um sistema de eixos x, y, z local, do
objeto. A partir desse sistema de coordenadas local podemos dar coordenadas locais a
todos os vrtices do objeto. Essas coordenadas em geral so bem mais prticas para se
trabalhar durante a modelagem.
Notem a imagem abaixo, ela ilustra a relao entre sistemas de coordenadas global e
local. Temos os eixos globais, do sistema de coordenadas global da nossa cena e, com
origem no ponto central da esfera amarela, o sistema de coordenadas local dela. Aqui
ambos os sistemas esto alinhados, mas isso no necessrio, o sistema local pode ser
transformado independentemente do global. Poderamos, por exemplo, ter o eixo z local
da esfera apontando para baixo ou para o eixo x global ou qualquer outra direo.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

20

O resultado das transformaes que aplicamos aos objetos depende do sistema que
estamos usando, claro. Uma rotao local na esfera resulta em algo bem diferente de
uma rotao global, como vimos nas imagens da seo sobre "Ponto da transformao".
Vamos analizar aquele exemplo de novo:
Na primeira imagem, temos uma rotao em relao origem do sistema de
coordenadas local do retngulo preto.

J nesta segunda, a rotao foi em relao ao sistema de coordenadas global.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

21

Hierarquias de sistemas
A situao fica mais interessante ainda quando temos hierarquias. A teremos
coordenadas globais, coordenadas locais do objeto pai, coordenadas locais do objeto
filho. Uma transformao local do pai transforma junto o filho, como vimos, e isso ocorre
em relao ao sistema de coordenadas do pai.
Como exemplo, na imagem abaixo temos uma hierarquia de "ossos de animao", um
recurso tradicional de programas de animao 3D. O primeiro "osso" esquerda a raiz
da hierarquia -- todos os outros so "descendentes" dele. O osso do meio filho do da
esquerda e pai do osso da direita. Nesta primeira imagem, repare nos eixos x-y-z nas
pontas dos 3 ossos, indicando seus respectivos sistemas locais de coordenadas.

Na sequncia, vemos na imagem abaixo que foram aplicadas transformaes aos ossos e
suas posies e orientaes mudaram. Seus eixos deixam claro que seus sistemas locais
de coordenadas mudaram junto, repare como eles no esto mais alinhados (assim
como os ossos no esto).

A rotao do osso da esquerda, que a raz da hierarquia, afetou tambm seu filho e
neto. E a posterior rotao do osso do meio afetou ambos, ele e o filho dele. Importante
lembrar: transformaes no sistema de coordenadas local do pai afetam seus filhos,
Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil
Todos os direitos reservados.
http://alphachannel.com.br

22

netos, etc. etc. Mas transformaes locais dos filhos no afetam seus pais, avs, etc.
Mais exemplos para ajudar a entender transformaes em hierarquias:
1. Pensem em um barco vela onde tornamos o mastro "filho" do casco do barco.
Quando o barco se move, o mastro segue junto, como deveria. Se o barco virar
para os lados, o mastro vira junto, de acordo com o centro de rotao do barco.
2. Nossos braos. Considerem o brao como pai do antebrao, por sua vez pai da
mo. Como mencionamos, quando o brao gira na altura do ombro, seu filho o
antebrao gira tambm, em relao ao mesmo ponto (o centro do sistema de
coordenadas local do pai). E a mo gira junto, tambm em relao ao mesmo
ponto. Se o antebrao tambm girar independentemente nesse movimento, isso
no afetar seu pai, o brao, mas sua filha, a mo, ter a rotao combinada: a
do brao (pai do antebrao), em relao ao sistema local dele e a do antebrao
(pai da mo), em relao ao sistema local dele. Faam os movimentos com um
de seus braos e isso deve ficar mais claro.

Exerccios
1. Temos uma esfera de raio 1 localizada sobre o eixo x nas coordenadas (10, 0,
0). Essa a posio do centro da esfera. Quais as coordenadas (x, y, z) globais
do ponto na superfcie dela mais distante da origem? E quais as coordenadas (x,
y, z) locais desse ponto em relao ao centro da esfera?
2. Repita o exerccio anterior considerando agora o ponto central da esfera
localizado no em seu centro, mas em sua superfcie, no ponto mais prximo da
origem do sistema de coordenadas global.

Alpha Channel - 1 Escola Profissionalizante de Computao Grfica do Brasil


Todos os direitos reservados.
http://alphachannel.com.br

23

Você também pode gostar