Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 9 jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Objetos 3D Os objetos do mundo físico possuem formas altamente diversificadas, sendo impossível criar um programa gráfico que contenha cada uma destas possíveis formas. É necessário que se disponha de recursos que permitam a construção de um objeto qualquer a partir de primitivas e propriedades comuns entre os objetos. A suavização de curvas permite gerar uma série de objetos criados pelo homem que possuam superfície curva como garrafas, engrenagens, esferas etc. Página 2
Primitivas Básicas 3D Planos São os objetos mais simples na geometria de 3 dimensões. Apesar de ser infinito, pequenas partes finitas podem ser usadas para compor um objeto. Sua caracterização é dada por Ax + By + Cz + D = ; x, y, z são coordenadas de um ponto pertencente ao plano no espaço e A, B, C e D são constantes que descrevem as propriedades espaciais do plano; Uma importante forma de caracterizar um plano é através do seu vetor normal, perpendicular ao plano. Página 3
Primitivas Básicas 3D Paralelepípedos Objetos muito comuns nas modelagens e representações 3D. Sua definição pode ser dada a partir da posição de dois dos seus vértices opostos ligados por uma diagonal. Se as 6 faces forem quadradas, temos um cubo. Página 4
Primitivas Básicas 3D Superfícies Quádricas São uma família de superfícies curvas representadas por entidades matemáticas cujas expressões contem termos quadráticos. Esferas Todos os pontos da superfície estão à mesma distância do seu centro(raio). Uma esfera é definida pela equação: x 2 + y 2 + z 2 = r 2 Página 5
Primitivas Básicas 3D Elipsóides Semelhante à esfera, com a diferença que qualquer plano que corte uma esfera resultará em um círculo enquanto cortes feitos no elipsóide resultará em elipses. É definido pela equação: (x/r x ) 2 + (y/r y ) 2 + (z/r z ) 2 = 1 r x,, r y e r z são os coeficientes (raios) nos sentidos dos 3 eixos. Página 6
Página 7 Toróides É gerado pela rotação de um círculo ou elipse ao redor de um eixo. Um toróide gerado pela rotação de uma elipse que gira ao redor de um eixo z e a uma distância r desse eixo é definido por: Primitivas Básicas 3D 1 2 2 2 z r x y z y y r x r
Criação de Objetos 3D Etapas Modelagem de Objetos Modelagem de cenas Visualização de Cenas É a fase onde deve-se descrever, de alguma forma, os objetos com os quais se trabalhará Corresponde ao instanciamento dos objetos em um universo 3D É a fase onde se procura gerar uma imagem de uma cena 3D anteriormente modelada. Geralmente obtém-se uma projeção 2D da cena 3D original, tal como em uma fotografia Página 8
Representação de Objetos 3D Representação A forma mais comum de representação tridimensional é através de um conjunto de superfícies poligonais que delimitam o interior de um objeto. Os programas gráficos geralmente traduzem a descrição do objeto em termos de superfícies poligonais. A vantagem deste método é que as superfícies planas formadas permitem um tratamento através de equações lineares, o que acelera o cálculo. Aresta Vértice Face Página 9 Malha Poligonal Normal
Representação de Objetos 3D Representação Uma segunda solução propõe a representação do sólido através de uma série de faces conectadas apropriadamente. Uma aproximação matemática simples pode ser utilizada para descrever cada face, e a exibição do objeto é produzida como o agregado destas faces. Página 1
Representação Objetos 3D Representação A figura abaixo mostra um exemplo de um cilindro transformado numa superfície poligonal. As figuras podem ser apresentadas facilmente na forma de estrutura de arame. Além disso, o grau de detalhamento da superfície pode ser aumentado desde que a superfície seja dividida num número maior de polígonos, mais isso tem um custo computacional maior. Página 11
Visualização Tridimensional É um processo semelhante ao processo de visualização 2D, porém mais complexo, pois os dispositivos existentes são adequados à apresentação de imagens bidimensionais; É considerada, no entanto, uma nova etapa: a projeção; Através da projeção, as coordenadas de profundidade são tratadas corretamente; As imagens são vistas através de uma câmera virtual, que também representa a posição do observador do objeto/cena. Página 12
Visualização Tridimensional Dada a geometria (ponto) num sistema de coordenada de mundo, como visualizar (pixel)? Transformar para sistema de câmera Transformar (warp) para o volume de visualização Clip (cortar partes não visíveis) Projetar em coordenadas de display (janela) Rasterizar y im x im y c y w y o x o z c x c (R,T) z w x w z o Página 13
Visualização Tridimensional Pipeline da Visualização 3D Página 14
Câmera Virtual A visualização pode partir de dois princípios: Câmera móvel: as coordenadas do universo não se modificam; Mundo móvel: o universo é movimentado em busca de um ângulo que permita uma melhor visualização; Define de que local a cena será exibida; Página 15
Câmera Virtual Um mesmo conjunto de objetos no universo tem diferentes coordenadas para cada posição, dependendo de quem os observa; É preciso definir a partir da posição da câmera e de sua orientação um novo sistema de referência, Sistema de Referência da Câmera (SRC). Antes de projetar qualquer entidade tridimensional é preciso obter suas coordenadas em relação ao SRC e somente então projetá-las. Página 16
Câmera Virtual Fatores que determinam como a imagem será projetada no plano para formar a imagem 2D: Posição da câmera; Direção ou orientação vetor que vai da câmera ao ponto focal; Ponto focal Para onde a câmera está apontando; Tipo de projeção; Posição dos planos de recorte. Página 17
Câmera Virtual Fatores que determinam como a imagem será projetada no plano para formar a imagem 2D: Página 18
Câmera Virtual Fatores que determinam como a imagem será projetada no plano para formar a imagem 2D: Página 19
Câmera Virtual Os planos de corte são usados para eliminar partes da cena que estão muito próximas ou muito distantes da câmera; Página 2
Estrutura de dados em 3D Uma das formas mais utilizadas na representação de polígonos é através de 3 tabelas, contendo respectivamente uma lista de vértices, uma lista de arestas e uma lista de polígonos. Tabela de vértices 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 5 V 5 x 6 y 6 z 6 Tabela de polígonos S 1 A 1 A 2 A 3 S 2 A 3 A 4 A 5 A 6 Tabela de polígonos S 1 V 1 V 2 V 3 S 2 V 1 V 3 V 4 V 5 Página 21 Tabela de arestas A 1 V 1 V 2 A 2 V 2 V 3 A 3 V 1 V 3 A 4 V 3 V 4 A 5 V 4 V 5 A 6 V 1 V 6 V 2 A 1 A 2 V 1 S 1 A 6 V 5 S 2 A 5 A 3 V 4 A 4 V 3
Estrutura de dados em 3D As coordenadas de todos os vértices do objeto são armazenadas na tabela de vértices. A lista de arestas faz referência à tabela de vértices para definir todas as arestas do objeto. De forma análoga, a tabela de superfície de polígonos utiliza a tabela de arestas para formar os elementos poligonais do objeto, ou então, como mostrado, um índice para a tabela de vértices Com as tabelas de vértices e arestas pode-se compor a imagem do objeto em estrutura de arame. Página 22
Estrutura de dados em 3D Outra forma de armazenar estas informações seria com somente duas tabelas: a de vértices e a de polígonos. Neste caso, contudo, algumas arestas podem ser traçadas duas vezes. Outra alternativa é manter apenas a tabela de polígonos, mas além de inviabilizar a apresentação da estrutura de arame, também aumenta a necessidade de memória pois cada vértice pode aparecer em vários polígonos. Os atributos dos elementos podem ser armazenados em outras tabelas ou em campos adicionais. Pode-se optar pela carga dos atributos em tempo de execução, definidos dentro do código do programa. Página 23
Página 24 Transformações Geométricas em 3D Translação c z b y a x z y x z y x T c b a,, ' ', ',,,,, 1 1 1 1,1,, ',1 ', ', c b a z y x z y x
Transformações Geométricas em 3D Escala S a, b, c x, y, z x', y', z' ax, by, cz Página 25 x', y', z',1 x, y, z,1 a b c 1
Transformações Geométricas em 3D Rotação ao redor do eixo de cada eixo: Página 26
Transformações Geométricas em 3D Rotação ao redor do eixo X R x x, x, y, z x', y', z' ycos x', y', z',1 x, y, z,1 zsin, ysin 1 cos sin z cos sin cos 1 Página 27
Transformações Geométricas em 3D Rotação ao redor do eixo Z R z x, y, z xcos x', y', z' ysin, xsin ycos, z x', y', z',1 x, y, z,1 cos sin sin cos 1 1 Página 28
Transformações Geométricas em 3D Rotação ao redor do eixo Y R y x, y, z x', y', z' xcos zsin x', y', z',1 x, y, z,1, y, xsin cos sin 1 z cos sin cos 1 Página 29