64
1 Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Modelagem Geométrica Alberto B. Raposo [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm Alberto Raposo – PUC-Rio Computação Gráfica e Áreas Correlatas Imagem digital Modelos processamento de imagens visão computacional computação gráfica (síntese de imagens) modelagem geométrica

Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

1

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Modelagem Geométrica

Alberto B. [email protected]

http://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm

Alberto Raposo – PUC-Rio

Computação Gráfica e Áreas Correlatas

Imagem digitalImagem digital

ModelosModelos

processamento de imagens

visãocomputacional

computaçãográfica

(síntese deimagens)

modelagem geométrica

Page 2: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

2

Alberto Raposo – PUC-Rio

Estrutura de aplicação gráfica interativa tradicional

Carla Freitas, UFRGSAula de hoje (e as próximas)

Alberto Raposo – PUC-Rio

Modelagem vs. Visualização

• Modelagem:– Interessada na descrição de uma cena

• Externamente: representação na forma de arquivo contendo as informações geométricas (e outras)

• Internamente (na execução do programa): representação em estrutura de dados residente em memória

• Visualização:– Interessada na visualização (display) da cena a partir de

uma dada câmera (posição do observador)• A princípio, são conceitos independentes.

Page 3: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

3

Alberto Raposo – PUC-Rio

Espaços de Coordenadas

• Plano ou R2 (2D)

xx

y

⎟⎟⎠

⎞⎜⎜⎝

⎛=

yx

p

0

⎭⎬⎫

⎩⎨⎧

∈⎟⎟⎠

⎞⎜⎜⎝

⎛= Ryxquetal

yx

R ,2

Marcelo Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Espaços de Coordenadas

• Espaço ou R3 (3D)

Marcelo Gattass, PUC-Rio

⎪⎭

⎪⎬

⎪⎩

⎪⎨

⎧∈

⎟⎟⎟

⎜⎜⎜

⎛= Rzyxquetal

zyx

R ,,3

y

x

z

0

⎟⎟⎟

⎜⎜⎜

⎛=

zyx

p

Page 4: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

4

Alberto Raposo – PUC-Rio

Modelagem Geométrica

• Tipos de estruturação de dados– Wireframe (representação de arestas)– Boundary representation (B-Rep)– Quadtree / Octree

• Malhas de Polígonos– LOD (nível de detalhe)

• Curvas• Geração de 3D a partir de 2D• Outras técnicas

– Metaballs– Subdivision Surfaces– Low-Poly

Alberto Raposo – PUC-Rio

Wireframe

• Representação de arestas (pontos + conexões entre pontos)

Page 5: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

5

Alberto Raposo – PUC-Rio

Wireframe em VRML: IndexedLineSet

#VRML V2.0 utf8

Transform { children [Shape {

geometry IndexedLineSet {coord Coordinate {

point [ 0 0 0, 1 0 0, 1 1 0, 0 1 0, 0 0 1, 1 0 1, 1 1 1, 0 1 1 ] }

coordIndex [ 0 1 -1 6 7 -1 1 2 -1 7 4 -1 2 3 -1 0 4 -1 3 0 -1 1 5 -14 5 -1 2 6 -1 5 6 -1 3 7 -1 ]

color Color { color [ 0 0 0, 0 0 0, 0 0 0, 0 0 0,0 0 0, 0 0 0, 0 0 0, 0 0 0,0 0 0, 0 0 0, 0 0 0, 0 0 0 ] }

}}

] } # end of children and Transform

Background {skyColor 1 1 1}

Alberto Raposo – PUC-Rio

Wireframe• Vantagens

– Simplicidade e velocidade na visualização dos modelos (geram-se apenas linhas)

• Problemas– Dificuldade de realizar operações com sólidos (cálculo de massa,

volume, determinação de inclusão...)– Representação ambígüa (sujeita a interpretações diferentes)

Márcio Pinho, PUCRS

As duas representações abaixo são válidas parao modelo em wireframe à esquerda

Page 6: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

6

Alberto Raposo – PUC-Rio

Boundary Representation (B-Rep)

• Define-se o modelo 3D a partir de conjunto de polígonos que delimitam uma região fechada no espaço– Esses polígonos são as

faces do objeto 3D (poliedro)

Alberto Raposo – PUC-Rio

Boundary Representation (B-Rep)

• Representações– 1 lista de vértices explícita:

FACE: (x1, y1, z1)-(x2, y2, z2)- .... - (xn, yn, zn);

– 2 listas: lista de vértices e lista das topologias das faces (caso do IndexedFaceSet - VRML)VÉRTICES:1 - (x1, y1, z1) 2 - (x2, y2, z2) .... .... ....n - (xn, yn, zn)

– 3 listas: vértices, arestas e faces

FACES: 1 - v1, v2, v3, ...., vn2 - v3, v5, ..., vn.... .... ....n – vn, v4, ..., v1

Page 7: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

7

Alberto Raposo – PUC-Rio

B-Rep em VRML: IndexedFaceSet(2 listas)

#VRML V2.0 utf8

Transform { children [Shape {

geometry IndexedFaceSet {coord Coordinate {

point [ 0 0 0, 1 0 0, 1 1 0, 0 1 0, 0 0 1, 1 0 1, 1 1 1, 0 1 1 ] }

coordIndex [ 0 1 5 4 -1 3 7 6 2 -1 6 7 4 5 -1 7 3 0 4 -1 3 2 1 0 -1 2 6 5 1 -1 ]

color Color { color [ 1 0 0, 0 1 0, 0 0 1, 1 0 1, 1 1 0, 0 1 1] }

colorPerVertex FALSE colorIndex [ 0, 1, 2, 3, 4, 5 ]

}}

] } # end of children and Transform

Background {skyColor 1 1 1}

Lista de vértices

Lista de faces

Alberto Raposo – PUC-Rio

Exemplo de 3 listas

http://gbdi.icmc.usp.br/documentacao/apostilas/cg/downloads/modpoliedrais.pdf

Page 8: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

8

Alberto Raposo – PUC-Rio

Quadtrees (2D) / Octrees (3D)

• Estruturas de dados (árvores) para decomposição hierárquica do plano (quadtrees) / espaço (octrees)

• Podem ser usadas para guardar diferentes tipos de dados, por ex.– Conjunto de pontos– Malhas poligonais

Alberto Raposo – PUC-Rio

Quadtrees• Todo nó representa um quadrado no plano. • Todo nó interno possui exatamente quatro filhos, os quais representam

os quatro quadrantes do nó pai: noroeste, nordeste, sudoeste e sudeste. • A subdivisão continua conforme algum critério de parada.

http://www.tecgraf.puc-rio.br/~hermann/gc/

Page 9: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

9

Alberto Raposo – PUC-Rio

Quadtree – Critério de Parada

• Exemplo:1. Começa com quadrado envolvendo todo o objeto, que em

seguida é dividido em 4 quadrados menores.2. Cada um é classificado em

Cheio: o quadrado está totalmente dentro do objetoVazio: o quadrado está totalmente fora do objetoCheio-Vazio: apenas parte do quadrado é ocupada pelo objeto

3. Para cada quadrado cheio-vazio, repetir os procedimentos 1 e 2.O procedimento encerra quando só existiremquadrados cheios e vazios

Pinho, PUCRS

Alberto Raposo – PUC-Rio

Quadtree - Exemplo

http://lcp.lcad.icmc.usp.br/~nonato/ED/Quadtree/quadtree.htm

Page 10: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

10

Alberto Raposo – PUC-Rio

Quadtree – Programa Exemplo

Autores: Patrícia Zottis e Rodrigo FehseAlterações: Leonardo Langie - PUCRS

Alberto Raposo – PUC-Rio

Octree

• Idêntica à Quadtree, mas considerando o espaço 3D– Cubo é dividido

em 8 sub-cubos

Page 11: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

11

Alberto Raposo – PUC-Rio

Octrees

Alberto Raposo – PUC-Rio

Octree

• Algoritmo deconstrução em C

Pinho, PUCRS

Page 12: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

12

Alberto Raposo – PUC-Rio

Octrees

FlipCode.com

Alberto Raposo – PUC-Rio

Uso de Octrees e Quadtrees

• Exemplos:– Frustum culling, detecção

de colisão, operações deunião e interseção

• Se pai (não) é importante,todos os filhos também(não) são

• Desvantagem:– Trabalhosas para manipular FlipCode.com

Page 13: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

13

Alberto Raposo – PUC-Rio

Malhas de Polígonos• Construção de modelos 3D usando grupos de polígonos.

– Como cada polígono é planar, necessita-se grande quantidade de polígonos para dar a impressão de superfícies curvas

48 polígonos 120 polígonos 300 polígonos 1000 polígonos

John Dingliana, 2004

Alberto Raposo – PUC-Rio

Malhas de Polígonos10K

polígonos1K

polígonos

MIT EECS 6.837, Durand and Cutler

Page 14: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

14

Alberto Raposo – PUC-Rio

Mesh Tesselation

• Construção de malhas poligonais – A partir de representações abstratas

– A partir de núvens de pontos

http://www.cs.lth.se/Education/Courses/EDA221/

http://www.ticam.utexas.edu/CCV/projects/VisualEyes/visualization/geomod/cloud/cloud.html

Alberto Raposo – PUC-Rio

Malhas de triângulos

• Costuma-se usar triângulos como o polígono das malhas– O polígono é gerado com exatamente 3 vértices por face– Um vértice pode pertencer a qualquer número de faces– Adjacência calculada em tempo constante– Triângulos são sempre planares

Giambruno, 2003

Page 15: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

15

Alberto Raposo – PUC-Rio

Strip

Fun

Alguns tipos de malhas de triângulos• O primeiro triangulo é desenhado com três vértices, e os demais com apenas

um.

• Muitos dos vértices são comuns a vários polígonos que o constituem. Assim, a organização dos polígonos com vista o compartilhamento dos vértices comuns traduz-se num envio e processamento únicos destes vértices [Möller 2003].

Alberto Raposo – PUC-Rio

Tipos de primitivas em OpenGL

GL_LINES

01

2

3 5

4

GL_LINE_STRIP

0

1

2

3

GL_LINE_LOOP0 1

234

GL_POLYGON(convexo)

0 4

32

1

GL_QUADS

03

21

4 7

65

GL_QUAD_STRIP

0

31

2 4

5

GL_TRIANGLES

0

1

2

3 4

5

GL_TRIANGLE_STRIP

1

0 2

3

4

5

GL_TRIANGLE_FAN

0

12 3

4

GL_POINTS

01

2

Page 16: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

16

Alberto Raposo – PUC-Rio

Exemplo em OpenGL

…define attributo de vértice…define vértice

glBegin(tipo_de_prim);

glEnd();

Alberto Raposo – PUC-Rio

Malhas no POVRAY: Exemplocamera {

location <20, 20, -50>look_at <0, 5, 0>

}light_source { <50, 50, -50> color rgb<1, 1, 1> }#declare Red = texture {pigment { color rgb<0.8, 0.2, 0.2> }finish { ambient 0.2 diffuse 0.5 }

}#declare Green = texture {pigment { color rgb<0.2, 0.8, 0.2> }finish { ambient 0.2 diffuse 0.5 }

}#declare Blue = texture {pigment { color rgb<0.2, 0.2, 0.8> }finish { ambient 0.2 diffuse 0.5 }

}

mesh {/* top side */triangle {<-10, 10, -10>, <10, 10, -10>, <10, 10, 10>texture { Red }

}triangle {<-10, 10, -10>, <-10, 10, 10>, <10, 10, 10>texture { Green }

}

/* bottom side */triangle { <-10, -10, -10>, <10, -10, -10>, <10, -10, 10> }triangle { <-10, -10, -10>, <-10, -10, 10>, <10, -10, 10> }/* left side */triangle { <-10, -10, -10>, <-10, -10, 10>, <-10, 10, 10> }triangle { <-10, -10, -10>, <-10, 10, -10>, <-10, 10, 10> }/* right side */triangle {<10, -10, -10>, <10, -10, 10>, <10, 10, 10>texture { Green }

}triangle {<10, -10, -10>, <10, 10, -10>, <10, 10, 10>texture { Blue }

}/* front side */triangle {<-10, -10, -10>, <10, -10, -10>, <-10, 10, -10>texture { Blue }

}triangle {<-10, 10, -10>, <10, 10, -10>, <10, -10, -10>texture { Red }

}/* back side */triangle { <-10, -10, 10>, <10, -10, 10>, <-10, 10, 10> }triangle { <-10, 10, 10>, <10, 10, 10>, <10, -10, 10> }texture {pigment { color rgb<0.9, 0.9, 0.9> }finish { ambient 0.2 diffuse 0.7 }

}}

Page 17: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

17

Alberto Raposo – PUC-Rio

Problema Geral

• Quantos mais polígonos, menos facetada fica a superfície curva– Mais polígonos, significa mais tempo de

processamento!!!

(menos polígonos) (mais polígonos)

Alberto Raposo – PUC-Rio

LOD – Level of Detail• À medida que à distância da câmera a um modelo aumenta,

o espaço por este ocupado na janela diminui e, conseqüentemente, o detalhe com que é visualizado também diminui.

• O LOD permite definir representações alternativas para um objeto gráfico, cada uma sendo ativada de acordo com a distância ao observador.

Page 18: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

18

Alberto Raposo – PUC-Rio

LOD• Torna-se desnecessário e

ineficiente definir o objeto com todo detalhe. O objetivo principal é o de utilizar diferentes representações de um modelo, normalmente de resoluções distintas, que serão selecionadas de acordo com um critério de decisão pré-determinado. Um dos critérios de decisão mais utilizado é à distância do modelo à câmera.

Alberto Raposo – PUC-Rio

Tipos de LOD

• Discreto– A construção das diferentes representações do modelo é

realizada numa fase de pré-processamento, sendo associada a cada uma delas um intervalo de distâncias à câmera dentro do qual o nível de detalhe deve ser utilizado.

– Durante a execução, o algoritmo calcula a distância da câmera ao objeto e avalia qual dos diferentes níveis de detalhe deve ser utilizado.

Page 19: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

19

Alberto Raposo – PUC-Rio

Tipos de LOD

• Contínuo– Os níveis de detalhe são gerados em tempo de

execução.– View dependent LOD

• Extensão de LOD contínuo usando posição do observador para definir o nível de detalhe.

Alberto Raposo – PUC-Rio

Exemplo de LOD Discreto

• VRML: nó LOD

The Annotated VRML Reference

Page 20: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

20

Alberto Raposo – PUC-Rio

Exemplo LOD (VRML)#VRML V2.0 utf8LOD {range [ 25, 100, 200, 400 ]level [

# level 0 - default gray, lit coneTransform { translation 0 1.5 0 children

Shape {appearance DEF AP Appearance { material Material {} }geometry Cone { bottomRadius 1 height 3 }

}}# level 1 - lit, 8 triangle cone approximationShape {

appearance USE APgeometry IndexedFaceSet {

coord Coordinate {point [ 1 0 0, .707 0 -.707, 0 0 -1,

-.707 0 -.707, -1 0 0, -.707 0 .707, 0 0 1,.707 0 .707, 0 3 0 ] }

coordIndex [ 0 1 8 -1 1 2 8 -1 2 3 8 -1 3 4 8 -1 4 5 8 -1 5 6 8 -1 6 7 8 -1 7 0 8 -10 7 6 5 4 3 2 1 ]

}}

Nível 0: cone

Nível 1: conefacetado

Distâncias de cada nível

Alberto Raposo – PUC-Rio

Exemplo LOD (VRML)# level 2 - lit, tetrahedronShape {appearance USE APgeometry IndexedFaceSet {

coord Coordinate {point [ 1 0 0, 0 0 -1, -1 0 0, 0 0 1, 0 3 0 ] }

coordIndex [ 0 1 4 -1 1 2 4 -1 2 3 4 -1 3 0 4 -1 0 3 2 1 ]

}}# level 3 - unlit, medium gray billboarded polygonBillboard {

children Shape {geometry IndexedFaceSet {

coord Coordinate { point [ 1 0 0, 0 3 0, -1 0 0 ] }coordIndex [ 0 1 2 ]colorPerVertex FALSEcolor Color { color 0.5 0.5 0.5 }

}}

}# level 4 - emptyWorldInfo {}

]}

Nível 2: conecom menos faces

Nível 3: triângulo

Nível 4: nada

Page 21: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

21

Alberto Raposo – PUC-Rio

LOD Contínuo

View dependent LOD

Alberto Raposo – PUC-Rio

LOD Contínuo

View dependent LOD

observador

Page 22: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

22

Alberto Raposo – PUC-Rio

LOD ContínuoVisualização de Terrenos

• http://www.llnl.gov/icc/sdd/img/images.shtml

(vídeo)

Alberto Raposo – PUC-Rio

VRML: Elevation Grid

Page 23: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

23

Alberto Raposo – PUC-Rio

Exemplo de Elevation Grid#VRML V2.0 utf8Transform { children [Shape {geometry DEF EG ElevationGrid { xDimension 5xSpacing 1zDimension 4zSpacing 1height [ # 5x4 array of heights0 .707 1 .707 00 .47 .667 .47 00 .236 .33 .236 00 0 0 0 0 ]

creaseAngle 0.8}appearance Appearance { material DEF M Material { diffuseColor 1 1 1 }texture DEF IT ImageTexture { url "stone.jpg" }

}}

Alberto Raposo – PUC-Rio

Exemplo de Elevation GridTransform {

translation 4.3 0 0children Shape {geometry ElevationGrid {xDimension 5xSpacing 1zDimension 4zSpacing 1height [ # 5x4 array of heights0 .876 1.2 .66 00 .555 1.3 .47 00 1. .33 .2 00 0 0 0 0

]creaseAngle 0.8

}

appearance Appearance {material USE Mtexture USE IT}

}}DirectionalLight { direction -0.80 -0.6 0 }Viewpoint { position 3 2 8 }Background { skyColor 1 1 1 }

]}

Page 24: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

24

Alberto Raposo – PUC-Rio

Elevation Grid

• Exemplo de superfície matemática

http://pcf1.chembio.ntnu.no/~bka/div/vrml/elevation.html

Alberto Raposo – PUC-Rio

Height Field no POVRAY#include "colors.inc"

camera{location <0, 2, -10>look_at 0angle 30

}

light_source{ <1000,1000,-1000> White }

height_field {tga "03_stone.TGA"smoothpigment { White }translate <-.5, -.5, -.5>scale <17, 1.75, 17>

}

Page 25: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

25

Alberto Raposo – PUC-Rio

Apesar de tudo...• Superfícies poligonais são limitadas

– Facetas planares– Deformação é difícil– Parametrização não é natural

MIT EECS 6.837, Durand and Cutler

Alberto Raposo – PUC-Rio

Porque o facetamento

• Shading (Gouraud) é feito a partir das normais de cada uma das superfícies (polígonos) descontinuidade

de normais

MIT EECS 6.837, Durand and Cutler

Page 26: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

26

Alberto Raposo – PUC-Rio

Continuidade de curvas (2D) / superfícies (3D)

G0 continuidade geométrica: 2 segmentos / superfícies conectadasNão há buracos na curva / superfícieG0 → C 0 (continuidade paramétrica)

G1 continuidade geométrica : a direção das tangentes dos 2 segmentos / superfícies são iguais no ponto / curva de junção

C1 continuidade (paramétrica): vetores tangentes dos dois segmentos / superfícies são iguais em magnitude e direção no ponto / curva de junção

Cn continuidade (paramétrica): direção e magnitude da n-ésima derivadasão iguais no ponto / curva de junção

Alberto Raposo – PUC-Rio

Continuidade de curvas (2D) / superfícies (3D)

Descontínua Contínua: C0 e G0

)1()0( 21 RRrr

=

Contínua: C1 e G1

)1()0( 21 TTrr

=

C0 e G1

)1()0( 21 RRrr

Continuidade GeométricaMarcelo Gattass, PUC-Rio

Page 27: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

27

Alberto Raposo – PUC-Rio

Continuidade de curvas (2D) / superfícies (3D)

• Malhas de polígonos são C0 (G0) apenas• Superfícies C1 garante superfícies menos

facetadas (smoothness)• Superfícies C2 são ainda mais “polidas” que

as C1

Alberto Raposo – PUC-Rio

Exemplos de Conexões de Curvas

C0

C1

C2

TV2

TV3

TV1

P1P2

P3

Q1

Q2

Q3

Q1 e Q2 têm continuidade C1 porque seus vetores tangentes, TV1 e TV2 são iguais. Q1 e Q3 têm continuidade G1 apenas.

ponto de junção

S se conecta a C0, C1 e C2com continuidade C0, C1 e C2, respectivamente.

Kessler, Dinh, 2003

Page 28: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

28

Alberto Raposo – PUC-Rio

Controle de Curvas / Splines• Curvas são definidas por pontos de controle• Alterando os pontos, altera-se a curva

MIT EECS 6.837, Durand and Cutler

BSpline (aproximação)

Interpolação Bézier (aproximação)

Alberto Raposo – PUC-Rio

Funções• Explícitas: y = f(x) [e.g. y=2x2]

– Apenas 1 valor de y para cada x

• Implícitas: f(x,y)=0 [e.g. x2+y2-r2=0]– Precisa de restrições para modelar apenas partes da curva– Manter continuidade na junção de 2 curvas é difícil

• Paramétricas: x=f(t), y=f(t) [e.g. x=t3+3, y=3t2+2t+1]– Curvaturas representadas como vetores tangentes (d/dt).– Fácil manter continuidade nas junções

Kessler, Dinh, 2003

Page 29: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

29

Alberto Raposo – PUC-Rio

Curvas

http://www.abm.org

Alberto Raposo – PUC-Rio

Curvas ParamétricasPara selecionar parte da curva: 0 ≤ t ≤ 1

Linear:

x=axt + bx

y=ayt + by

z=azt + bz

Quadrática:

x = axt2 + bxt + cx

y = ayt2 + byt + cy

z = azt2 + bzt + cz

Cúbica:

x = axt3 + bxt2 + cxt + dx

y = ayt3 + byt2 + cyt + dy

z = azt3 + bzt2 + czt + dz

Em CG, preferem-se as cúbicas, que provêem um balanceamento entreflexibilidade e complexidade na especificação e computação da formae.

• Precisa 4 pontos/derivadas conhecidas para determinar 4 coeficientes desconhecidos.

Kessler, Dinh, 2003

Page 30: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

30

Alberto Raposo – PUC-Rio

Equações Paramétricasx = axt3 + bxt2 + cxt + dx

y = ayt3 + byt2 + cyt + dy

z = azt3 + bzt2 + czt + dz

[ ] TCtztytxtQ == )()()()(

[ ]123 tttT =

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

zyx

zyx

zyx

zyx

dddcccbbbaaa

C

Kessler, Dinh, 2003

Alberto Raposo – PUC-Rio

Matriz Base e Matriz Geométrica

Q(t) = G M T

Matriz Geométrica Matriz Base Matriz T

• Idéia: – Curvas diferentes podem ser especificadas alterando-se a informação

geométrica na matriz G.– A matriz base tem valores constantes específicos de cada família de

curvas.

[ ]4321 GGGG⎥⎥⎥⎥

⎢⎢⎢⎢

44342414

43332313

42322212

41312111

mmmmmmmmmmmmmmmm

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

1

2

3

ttt

Page 31: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

31

Alberto Raposo – PUC-Rio

Famílias de Curvas

4 pontos de controleCúbicaSplines

2 pontos extremos, 2 pontos de controle

CúbicaBézier

2 pontos extremos, vetorestangentes nos extremos

CúbicaHermite

Definida porTipoFamília

Kessler, Dinh, 2003

Alberto Raposo – PUC-Rio

Famílias de Curvas

Hermite

P1

P2

P3

P4

P1

P2

P3

P4

Bézier

pontos decontrole

Spline

Page 32: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

32

Alberto Raposo – PUC-Rio

Exemplos Hermite

P1P4

R4

R1

Conjunto de curvas Hermite com mesmos pontos extremos P1 e P4, vetores tangente R1 e R4 com mesma direção, mas magnitudes diferentes de R1. A magnitude de R4 é mantida fixa.

Kessler, Dinh, 2003

Alberto Raposo – PUC-Rio

Exemplos Hermite

Kessler, Dinh, 2003

Curvas com pontos extremos fixos e magnitudes dos vetorestangentes iguais, mas a direção do vetor tangente da esquerda varia.

Page 33: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

33

Alberto Raposo – PUC-Rio

Formulação Hermite

Q(t) = G M T

Matriz Geométrica Matriz Base Matriz T

[ ]4321 GGGG⎥⎥⎥⎥

⎢⎢⎢⎢

44342414

43332313

42322212

41312111

mmmmmmmmmmmmmmmm

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

1

2

3

ttt

Alberto Raposo – PUC-Rio

Formulação Hermite

[ ]

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

==

1

)(2

3

4141 ttt

MRRPPTMGtQ HHH

⎥⎥⎥⎥

⎢⎢⎢⎢

==

1000

)0(1 HH MGQP

⎥⎥⎥⎥

⎢⎢⎢⎢

==

1111

)1(4 HH MGQP

⎥⎥⎥⎥

⎢⎢⎢⎢

=′=

0100

)0(1 HH MGQR

⎥⎥⎥⎥

⎢⎢⎢⎢

=′=

0123

)1(4 HH MGQR

Kessler, Dinh, 2003

Page 34: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

34

Alberto Raposo – PUC-Rio

Formulação Hermite

Kessler, Dinh, 2003

[ ] [ ]⎥⎥⎥⎥

⎢⎢⎢⎢

=

0011111020103010

41414141 HMRRPPRRPP

⎥⎥⎥⎥

⎢⎢⎢⎢

−−

−−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

=

0011012100321032

0011111020103010 1

HM

Alberto Raposo – PUC-Rio

Formulação Hermite

Kessler, Dinh, 2003

Q(t) = GHMHT

423

123

423

123

)(

)2(

)32(

)132()(

Rtt

Rttt

Ptt

PtttQ

++−

++−

++−

=

t

f(t)

1 P1 P4

R1

R4

Q(t) é soma ponderada dos elementos de GH

Função blendingde Hermite

Page 35: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

35

Alberto Raposo – PUC-Rio

Formulação Hermite

423

123

423

123

)()2(

)32()132()(

RttRttt

PttPtttQ

−++−

++−++−=

xRttxRttt

xPttxPtttx

423

123

423

123

)()2(

)32()132()(

−++−

++−++−=

yRttyRttt

yPttyPttty

423

123

423

123

)()2(

)32()132()(

−++−

++−++−=

zRttzRttt

zPttzPtttz

423

123

423

123

)()2(

)32()132()(

−++−

++−++−=

Alberto Raposo – PUC-Rio

Programa Hermite

Page 36: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

36

Alberto Raposo – PUC-Rio

Exemplos Bézier

• 4 pontos– Curva passa pelo primeiro e pelo último– P2 e P3 definem as tangentes em P1 e P4:

• R1 = 3(P2 – P1) e R4 = 3(P4 – P3)

Marcelo Walter, Unisinos

Alberto Raposo – PUC-Rio

Formulação Bézier

Q(t) = GBMBT [ ]4321 PPPPGB =

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

1

2

3

ttt

T

Lembrando que: R1 = 3(P2 – P1) e R4 = 3(P4 – P3) podemos relacionar Bézier com Hermite:

[ ] [ ] HBBH MGPPPPRRPPG =

⎥⎥⎥⎥

⎢⎢⎢⎢

==

30103000

03000301

43214141

Page 37: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

37

Alberto Raposo – PUC-Rio

Formulação Bézier

Voltando a Hermite: Q(t) = GHMHT

Como: GH = GB MHB

Temos: Q(t) = GBMHBMHT

Alberto Raposo – PUC-Rio

Formulação Bézier

Q(t) = GBMBT

43

323

223

123

)33(

)363(

)133()(

Pt

Ptt

Pttt

PttttQ

++−

++−

++−+−=

t

f(t)1

1

BB1 BB4

BB2 BB3

Polinômios de Bernstein: 3)1(1

tBB −= 2)1(32

ttBB −=

)1(3 23

ttBB −= 34

tBB =

Page 38: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

38

Alberto Raposo – PUC-Rio

Programa Bézier

Alberto Raposo – PUC-Rio

Trabalho 1: 2004.2

• Programa para desenhar curvas de Bézier– 3 exemplos.

Page 39: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

39

Alberto Raposo – PUC-Rio

Splines• Junções em curvas Hermite e Bézier são

facilmente C1 e G1, mas garantir C2 não é trivial.

• Spline é curva que garante C2

– C2 é útil quando curva trilha caminho da câmera (pense como velocidade: C1 e aceleração: C2)

• Pode passar ou não pelos pontos de controle

Alberto Raposo – PUC-Rio

Natural vs. B-Spline• Splines naturais

– n pontos de controle, que afetam toda a curva– difícil computação

• B-Splines– curva com m+1 pontos de controle, P0, P1, ... Pm, m≥3, definindo

m-2 segmentos polinomiais cúbicos conectados– segmento Qi é definido por Pi-3, Pi-2, Pi-1 e Pi.– efeito dos pontos de controle é localizado (restrito a 4 segmentos)

Kessler, Dinh, 2003P0

P1

P2

P3

P5

P4

P6

P7

P8P9

Q3Q4

Q5

Q6

Q7

Q8

Q9

Page 40: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

40

Alberto Raposo – PUC-Rio

B-Splines• Uniform B-Splines têm nós em intervalos iguais de t.

– Distâncias em t entre nós adjacentes é a mesma.– Funções blending são as mesmas para todos os segmentos.

• Nonuniform B-Splines têm intervalos diferentes de t entreos nós.

• Nonuniform Rational B-Splines (NURBS) são comumenteusadas em modelagem 3D.– Curvas são invariantes às tranformações perspectivas.

Alberto Raposo – PUC-Rio

Extensão para Superfícies• Toda a matemática das curvas paramétricas cúbicas pode ser extendida

para superfícies.– Superfícies Paramétricas bicúbicas

• Usa-se 2 parâmetros, s e t, ao invés de apenas t: Q(s, t)

• Superfície definida por 16 coeficientes (e 16 valores conhecidos).

s

t

Q(sc, t) Q(s, tc)

Page 41: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

41

Alberto Raposo – PUC-Rio

Splines VRML (Extensão Cortona)

• SplineCone• SplineCylinder• SplineElevationGrid• SplineExtrusion• SplineFaceSet• SplineSphere

“LOD” embutido: a partir da distância especificada,a curva passa a ter a percentagem de qualidade

Alberto Raposo – PUC-Rio

Splines VRML (Extensão Cortona)#VRML V2.0 utf8Viewpoint { description "Initial view" position 0 0 9 }NavigationInfo { type "EXAMINE" }

# No SplineTransform {children Shape {

appearance Appearance { material Material { } }geometry Sphere {

radius 2}

}}

# Spline - Cortona ExtensionTransform {translation 0 -4 0children Shape {

appearance Appearance { material Material { } }geometry SplineSphere {

radius 2distance 5quality [1 0.5]

}}

}

Page 42: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

42

Alberto Raposo – PUC-Rio

Splines: Demo em VRML

http://www.parallelgraphics.com

Alberto Raposo – PUC-Rio

NURBS: VRMLnúmero de pontos de controleem cada dimensão

grau dos polinômios = ordem -1(ex. para spline cúbica, ordem = 4)

pontos de controle (uDimension x vDimension)

peso de cada ponto de controle

vetores de nós

Page 43: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

43

Alberto Raposo – PUC-Rio

NURBS: Demo em VRML

http://www.parallelgraphics.com

Alberto Raposo – PUC-Rio

Comparação

• Armazenado como NURB (11KB)

• Armazenado como IndexFaceSet de alta resolução (2.2MB)

Blaxxun, Inc.

Page 44: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

44

Alberto Raposo – PUC-Rio

Demo

Blaxxun, Inc.

Alberto Raposo – PUC-Rio

Superfícies NURBs

http://www.tiemdesign.com

Stephane, Paris

Page 45: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

45

Alberto Raposo – PUC-Rio

Geração de 3D a partir de 2D

• Primitivas 3D • CSG (Constructive Solid Geometry)• Extrusão• Lathing (revolução)• Sweeping (extrusão ao longo de uma curva)• Skinning (sweeping com cortes variados)

Alberto Raposo – PUC-Rio

Primitivas 3D

• Formas geométricas 3D básicas, que podem ser estendidas por operações booleanas(CSG)

Giambruno, 2003

Primitivas “menos básicas”Primitivas básicas

Page 46: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

46

Alberto Raposo – PUC-Rio

CSG (Constructive Solid Geometry)

• Sólidos montados a partir de operações booleanas com outros sólidos

• No plano:

Giambruno, 2003

Alberto Raposo – PUC-Rio

CSG• No espaço:

POV-Raydocumentation

Page 47: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

47

Alberto Raposo – PUC-Rio

Exemplo: CSG no POVRAY#include "colors.inc"camera {location <0, 1, -15>look_at 0angle 36

}light_source { <500, 500, -1000> White }plane { y, -1.5pigment { checker Green White }

}

union{sphere { <0, 0, 0>, 1translate -0.5*x

}sphere { <0, 0, 0>, 1translate 0.5*x

}pigment { Red }

}

intersection {sphere { <0, 0, 0>, 1translate -0.5*x

}sphere { <0, 0, 0>, 1translate 0.5*x

}pigment { Blue } translate <3, 0, 0>

}

difference {sphere { <0, 0, 0>, 1

}cylinder { <0, 0, -1> <0, 0, 1>, .35 }

pigment { Yellow }translate <-3, 0, 0>}

Alberto Raposo – PUC-Rio

Exemplos CSG

http://www.cl.cam.ac.uk/Teaching/1998/AGraphics/l3a.html

Page 48: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

48

Alberto Raposo – PUC-Rio

Extrusão

• Acrescenta o eixo z (profundidade) a um polígono

Pinho, PUCRS

Alberto Raposo – PUC-Rio

Sweeping

• Extrusão ao longo de uma curva

Giambruno, 2003

Page 49: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

49

Alberto Raposo – PUC-Rio

Skinning• Extrusão ao longo de uma curva

(sweeping), mas com cortes variados ao longo do caminho.

Giambruno, 2003

Alberto Raposo – PUC-Rio

VRML: Extrusion

polígono 2D (corte)

curva de extrusão

se início / fim da extrusão é aberto

Page 50: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

50

Alberto Raposo – PUC-Rio

VRML Extrusion - Exemplo

http://www.lighthouse3d.com/vrml/tutorial/index.shtml?extru

Alberto Raposo – PUC-Rio

VRML Extrusion – Exemplo

http://www.lighthouse3d.com/vrml/tutorial/index.shtml?extru

#VRML V2.0 utf8 Transform {

children [Shape{ appearance Appearance { material Material {}}

geometry Extrusion{ crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 -1] spine [0 -1 0 , 0 1 0 ]beginCap FALSEendCap FALSE}

} ]}

Page 51: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

51

Alberto Raposo – PUC-Rio

VRML Extrusion - Exemplo

http://www.lighthouse3d.com/vrml/tutorial/index.shtml?extru

#VRML V2.0 utf8 Transform {

children [Shape{ appearance Appearance { material Material {}}

geometry Extrusion{ crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 -1] spine [0 -1 0 , 0 1 0 ]beginCap FALSEendCap FALSEsolid FALSE}

} ]}

passa a não existir lado internoe externo das faces

Alberto Raposo – PUC-Rio

VRML Extrusion – Exemplo (sweeping)

http://www.lighthouse3d.com/vrml/tutorial/index.shtml?extru

Page 52: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

52

Alberto Raposo – PUC-Rio

VRML Extrusion – Exemplo (lathing)

http://www.lighthouse3d.com/vrml/tutorial/index.shtml?extru

Alberto Raposo – PUC-Rio

VRML Extrusion – Exemplo

http://www.lighthouse3d.com/vrml/tutorial/index.shtml?extru

Page 53: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

53

Alberto Raposo – PUC-Rio

Lathing (sólidos de revolução)

• Sólido é gerado girando superfície em torno de um eixo (ideal para modelos radiais)

Giambruno, 2003

Alberto Raposo – PUC-Rio

Lathing no POVRAY#include "colors.inc"background{White}camera {angle 10location <1, 9, -50>look_at <0, 2, 0>

}light_source {<20, 20, -20> color White

}

lathe {linear_spline6,<0,0>, <1,1>, <3,2>, <2,3>, <2,4>, <0,4>pigment { Blue }finish {ambient .3phong .75

}}

x

y

(0,0)

(1,1)

(3,2)

(2,3)

(2,4)(0,4)

Page 54: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

54

Alberto Raposo – PUC-Rio

Superfície de Revolução (POVRAY)#include "colors.inc"#include "golds.inc"camera {location <10, 15, -20>look_at <0, 5, 0>angle 45

}background { color rgb<0.2, 0.4, 0.8> }light_source { <100, 100, -100> color rgb 1 }plane {

y, 0pigment { checker color Red, color Green scale 10 }

}sor {8,<0.0, -0.5>,<3.0, 0.0>,<1.0, 0.2>,<0.5, 0.4>,<0.5, 4.0>,<1.0, 5.0>,<3.0, 10.0>,<4.0, 11.0>opentexture { T_Gold_1B }

}

Alberto Raposo – PUC-Rio

Outras técnicas de modelagem

Page 55: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

55

Alberto Raposo – PUC-Rio

Metaballs (Superfícies Implícitas)

• Técnica de modelagem implícita (não paramétrica, como as curvas)

• Modelos gerados a partir de esferas, que podem ser vistas como partículas gerando “campo de atração”, decrescente a partir de seu centro– “gosma líquida”

Alberto Raposo – PUC-Rio

Metaballs

http://www.niksula.cs.hut.fi/~hkankaan/Homepages/metaballs.html

Page 56: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

56

Alberto Raposo – PUC-Rio

Metaballs no POVRAY

#include "colors.inc"background{Gray}camera {

angle 15location <0,0,-20>look_at <0,0,0>

}light_source { <10, 20, -10> color White }blob {

threshold .65sphere { <.5,0,0>, .8, 1 pigment {Blue} translate <-1., 0, 0>}sphere { <-.5,0,0>,.8, 1 pigment {Green} translate <-1., 0, 0>}finish { phong 1 }

} blob {

threshold .65sphere { <.5,0,0>, .7, 1 pigment {Yellow} translate <1., 0, 0>}sphere { <-.5,0,0>,.9, 1 pigment {Red} translate <1., 0, 0> }

finish { phong 1 }

}

Alberto Raposo – PUC-Rio

Metaballs

http://astronomy.swin.edu.au/~pbourke/modelling/implicitsurf/

Page 57: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

57

Alberto Raposo – PUC-Rio

Metaballs

Digital I Designs

Alberto Raposo – PUC-Rio

Metaballs

• Vantagens:– Adequadas para representar metamorfoses e

“blendings”

Page 58: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

58

Alberto Raposo – PUC-Rio

Subdivision Surfaces• Nova metodologia de geração de superfícies

poligonais “lisas” (smooth), criada pela Pixar para o curta “Geri´s Game”

Alberto Raposo – PUC-Rio

Subdivision Surfaces

• Definição de uma superfície “lisa” como o limite de uma seqüência de refinamentos sucessivos

http://www.multires.caltech.edu/teaching/courses/subdivision/intro/index.htm

Page 59: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

59

Alberto Raposo – PUC-Rio

Subdivision Surfaces

• Exemplo 2D

...

http://www.multires.caltech.edu/teaching/demos/java/4point.htm

Alberto Raposo – PUC-Rio

Subdivision Surfaces

• Exemplo 3D

...

http://symbolcraft.com/graphics/subdivision/index.html

Page 60: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

60

Alberto Raposo – PUC-Rio

Doo-Sabin Subdivision

MIT EECS 6.837, Durand and Cutler

Idéia: introduzir novos vértices em cada face, na metade da distância entre o antigo vértice e o centróide da face.

Alberto Raposo – PUC-Rio

Doo-Sabin Subdivision

Hatice Çinarhttp://www.cmpe.boun.edu.tr/~akarun/cmpe535projects2004.htm

Page 61: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

61

Alberto Raposo – PUC-Rio

Vantagens sobre Curvas

• Geração de subdivision surfaces usam algoritmos mais simples que as curvas

• Se encaixam em qualquer topologia, sem problemas de continuidade (muito útil em animação)

• Pode-se representar superfícies com o grau de “smoothness) desejado (escalabilidade, LOD)

Alberto Raposo – PUC-Rio

Low-Poly• Representações paramétricas,

implícitas, subdivision surfaces,etc., buscam modelagem de alta resolução– Mais necessidade de processamento

• Nem sempre adequados para aplicaçõesem tempo real (jogos e realidade virtual, por exemplo).

• Low-Poly: a melhor qualidade possível com número limitado de polígonos

Page 62: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

62

Alberto Raposo – PUC-Rio

Low-Poly

• Não envolve novas tecnologias de modelagem, mas envolve mais precisão nas tomadas de decisão sobre onde investir em mais detalhes e onde simplificar para obter o melhor resultado– Modelagem ruim em alta resolução tem pouco

impacto; apenas leva mais tempo para gerar a imagem.

• Em low-poly, isso é crítico!

Alberto Raposo – PUC-Rio

Low-Poly

http://www.muranon.com/axel/character/tutorial_1/

http://www.tutorialized.com/tutorial/Texturing-your-Lara-Croft-model/4859

Page 63: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

63

Alberto Raposo – PUC-Rio

Informações Adicionais• Modelagem em Geral:

– D. F. Rogers, J. A. Adams. “Mathematical Elements for Computer Graphics”. 2nd Ed., McGraw-Hill, 1990.

– Peter Shirley. Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, 2002.

– Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics, Addison-Wesley, 1995.

– http://www-pal.usc.edu/cs582/index.html– http://www.inf.pucrs.br/~pinho/CG/Aulas/Modelagem/Modelag

em3D.htm– http://www.ic.uff.br/~aconci/sweeping.html– http://www.inf.unisinos.br/~osorio/CG-Doc/CG-Web/cg.html

Alberto Raposo – PUC-Rio

Informações Adicionais

• Quadtrees e Octrees– http://www.tecgraf.puc-rio.br/~hermann/gc/– http://www.flipcode.com/tutorials/tut_octrees.shtml

• LOD– D. Luebke, M Reddy et al. “Level of Detail

for 3D Graphics”. Morgan Kaufman, 2003.– T. Möller, E. Haines. “Real-Time Rendering”.

A K Peters Ltd., 1999.

Page 64: Computação Gráfica e Áreas Correlataswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2005/03_Modelagem.pdfComputação Gráfica e Áreas Correlatas Imagem digitalImagem digital

64

Alberto Raposo – PUC-Rio

Informações Adicionais• Metaballs:

– G. Graves. “The Magic of Metaballs”. Computer GraphicsWorld, Maio 1993.

– http://astronomy.swin.edu.au/~pbourke/modelling/implicitsurf/• Subdivision surfaces:

– http://www.eas.asu.edu/~cse470/resources/subdivision/– http://mrl.nyu.edu/publications/subdiv-course2000/

• Low-Poly:– M. Giambruno. “3D Graphics & Animation”.New Riders, 2002

• The Annotated VRML 97 Reference: http://accad.osu.edu/~pgerstma/class/vnv/resources/info/AnnotatedVrmlRef/Book.html