inf 1366 – computação gráfica interativa modelagem geométrica

127
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

Upload: elsa

Post on 14-Jan-2016

46 views

Category:

Documents


2 download

DESCRIPTION

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. Computação Gráfica e Áreas Correlatas. processamento de imagens. Imagem digital. computação gráfica (síntese de imagens). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Modelagem Geométrica

Alberto B. Raposo

[email protected]://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm

Page 2: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Computação Gráfica e Áreas Correlatas

Imagem digitalImagem digital

ModelosModelos

processamento de imagens

visão computacional

computaçãográfica

(síntese deimagens)

modelagem geométrica

Page 3: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Estrutura de aplicação gráfica interativa tradicional

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

Page 4: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 5: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Espaços de Coordenadas

• Plano ou R2 (2D)

xx

y

y

xp

0

Ryxquetal

y

xR ,2

Marcelo Gattass, PUC-Rio

Page 6: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Espaços de Coordenadas

• Espaço ou R3 (3D)

Marcelo Gattass, PUC-Rio

Rzyxquetal

z

y

x

R ,,3

y

x

z

0

z

y

x

p

Page 7: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Modelagem Geométrica

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

• Primitivas• 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

Page 8: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Primitivas X3D

• Box, Cone, Cylinder, Sphere, Text

• Nó Shape– Geometria– Aparência

• Material e/ou Textura

Page 9: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Box

<Shape DEF=“MyShapeNode”

bboxCenter = “0 0 0”

bboxSize= “-1 -1 -1”

<Box DEF=“SingleGeometryNode”

size = “1 1 1”

solid = “true”

/>

<Appearance

DEF = “SingleAppearanceNode” />

</Shape> Indica se é vistoapenas de um lado

Page 10: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Cone

<Cone DEF=“MyConeNode” bottomRadius = “1” height = “2” bottom = “true” side = “true” solid = “true” />

Page 11: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Cylinder

<Cylinder DEF=“MyCylinderNode” radius = “1” height = “2” bottom = “true” top = “true” side = “true” solid = “true” />

Page 12: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Sphere

<Sphere DEF=“MySphereNode” radius = “1” solid = “true” />

Page 13: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Text<Text DEF=“MyTextNode” length = “” maxExtent = “0.0” string = “some” “text” top = “true” solid = “false” > <FontStyle DEF=“MyFontStyle” family = ‘ “SERIF” ’ justify = ‘ “BEGIN” ’ language = “ “ style = ‘ “PLAIN” ’ horizontal = “true” leftToRight = “true” topToBottom = “true” size = “1.0” spacing=“1.0” /> </Text>

Page 14: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

PointSet

<PointSet Def=“MyPointNode”

<Color color=“1 0 0, 0 1 0, 0 0 1, 0.8 0.8 0.8” />

< Coordinate point=“-2 0 0, 0 0 0, 0 0 2, 0 0 4” />

</PointSet>

Page 15: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Wireframe

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

Page 16: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 -1

4 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}

Page 17: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Wireframe em X3D: IndexedLineSet

Page 18: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 19: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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)

Page 20: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 21: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 22: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

B-Rep em X3D: IndexedFaceSet<IndexedFaceSet DEF='Box1_Geo'

containerField='geometry'

creaseAngle='0.524'

coordIndex=' 0 1 2 -1, 0 2 3 -1, 1 4 5 -1, 1 5 2 -1, 2 5 6 -1, 2 6 3 -1, 3 6 7 -1, 3 7 0 -1, 0 7 4 -1, 0 4 1 -1, 5 4 7 -1, 5 7 6 -1'>

<Coordinate DEF='Box1_Coord'

containerField='coord'

point=' -.5 .5 -.5, -.5 .5 .5, 1.86662 .5 2.8688, 1.86662 .5 1.8688, -.5 -.5 .5, .5 -.5 .5, 2.23105 -.5 -1.31997, -.5 -.5 -.5'/>

Page 23: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplo de 3 listas

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

Page 24: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 25: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 26: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 objeto

Vazio: o quadrado está totalmente fora do objeto

Cheio-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

Page 27: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Quadtree - Exemplo

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

Page 28: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Quadtree – Programa Exemplo

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

Page 29: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Octree

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

em 8 sub-cubos

Page 30: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Octrees

Page 31: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Octree

• Algoritmo deconstrução em C

Pinho, PUCRS

Page 32: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Octrees

FlipCode.com

Page 33: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 34: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

MIT EECS 6.837, Durand and Cutler

10Kpolígonos

1Kpolígonos

Page 35: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 36: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 37: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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].

Page 38: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Tipos de primitivas em OpenGL

GL_LINES

0

1

2

3 5

4

GL_LINE_STRIP

0

1

2

3

GL_LINE_LOOP0 1

234

GL_POLYGON(convexo)

04

3

21

GL_QUADS

03

21

4 7

65

GL_QUAD_STRIP

0

31

2 4

5

GL_TRIANGLES

0

1

2

34

5

GL_TRIANGLE_STRIP

1

02

3

4

5

GL_TRIANGLE_FAN

0

1

2 3

4

GL_POINTS

01

2

Page 39: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplo em OpenGL

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

glBegin(tipo_de_prim);

glEnd();

Page 40: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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)

Page 41: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 42: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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.

Page 43: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 44: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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.

Page 45: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplo de LOD Discreto

• VRML: nó LOD

The Annotated VRML Reference

Page 46: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

LOD Discreto

Page 47: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplo de LOD – X3D

Page 48: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplo de LOD – X3D<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd">

<X3D profile="Immersive" version="3.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-3.0.xsd">

<head>

</head>

<Scene>

<LOD range="15" forceTransitions="false">

<Group DEF="Model">

<Shape>

<Appearance>

<Material diffuseColor='1 0 0'/>

</Appearance>

<Box/>

</Shape>

Page 49: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplo de LOD – X3D<Shape>

<Appearance>

<Material diffuseColor='0 0 1'/>

</Appearance>

<Sphere radius='1.4'/>

</Shape>

</Group>

<Group DEF="Image">

<Shape>

<Appearance>

<Material diffuseColor='0 0 1'/>

</Appearance>

<Box/>

</Shape>

</Group>

</LOD>

</Scene>

</X3D>

Page 50: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

LOD Contínuo

View dependent LOD

Page 51: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

LOD Contínuo

View dependent LOD

observador

Page 52: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

LOD ContínuoVisualização de Terrenos

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

(vídeo)

Page 53: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

X3D: ElevationGrid

Page 54: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

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

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

Page 55: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplo de Elevation GridTransform { translation 4.3 0 0 children Shape { geometry ElevationGrid { xDimension 5 xSpacing 1 zDimension 4 zSpacing 1 height [ # 5x4 array of heights 0 .876 1.2 .66 0 0 .555 1.3 .47 0 0 1. .33 .2 0 0 0 0 0 0 ] creaseAngle 0.8 }

appearance Appearance { material USE M texture USE IT } } } DirectionalLight { direction -0.80 -0.6 0 } Viewpoint { position 3 2 8 } Background { skyColor 1 1 1 }]}

Page 56: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Elevation Grid

• Exemplo de superfície matemática

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

Page 57: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 58: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 59: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

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

G0 continuidade geométrica: 2 segmentos / superfícies conectadas

Não há buracos na curva / superfície

G0 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 derivada são iguais no ponto / curva de junção

Page 60: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

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

Descontínua Contínua: C0 e G0

)1()0( 21 RR

Contínua: C1 e G1

)1()0( 21 TT

C0 e G1

)1()0( 21 RR

Continuidade Geométrica

Marcelo Gattass, PUC-Rio

Page 61: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 62: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplos de Conexões de Curvas

C0

C1

C2

TV2

TV3

TV1

P1

P2

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 C2 com continuidade C0, C1 e C2, respectivamente.

Kessler, Dinh, 2003

Page 63: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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çãoBézier (aproximação)

Page 64: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 65: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Curvas

http://www.abm.org

Page 66: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 entre flexibilidade e complexidade na especificação e computação da formae.

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

Kessler, Dinh, 2003

Page 67: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

ddd

ccc

bbb

aaa

C

Kessler, Dinh, 2003

Page 68: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

mmmm

mmmm

mmmm

mmmm

1

2

3

t

t

t

Page 69: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Famílias de Curvas

Família Tipo Definida por

Hermite Cúbica 2 pontos extremos, vetores tangentes nos extremos

Bézier Cúbica 2 pontos extremos, 2 pontos de controle

Splines Cúbica 4 pontos de controle

Kessler, Dinh, 2003

Page 70: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Famílias de Curvas

Hermite

P1

P2

P3

P4

P1

P2

P3

P4

Bézier

pontos decontrole

Spline

Page 71: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 72: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplos Hermite

Kessler, Dinh, 2003

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

Page 73: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

mmmm

mmmm

mmmm

mmmm

1

2

3

t

t

t

Page 74: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Formulação Hermite

1

)(2

3

4141t

t

t

MRRPPTMGtQ HHH

1

0

0

0

)0(1 HH MGQP

1

1

1

1

)1(4 HH MGQP

0

1

0

0

)0(1 HH MGQR

0

1

2

3

)1(4 HH MGQR

Kessler, Dinh, 2003

Page 75: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Formulação Hermite

Kessler, Dinh, 2003

0011

1110

2010

3010

41414141 HMRRPPRRPP

0011

0121

0032

1032

0011

1110

2010

30101

HM

Page 76: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Formulação Hermite

Kessler, Dinh, 2003

Q(t) = GHMHT

423

123

423

123

)(

)2(

)32(

)132(

)(

Rtt

Rttt

Ptt

Ptt

tQ

t

f(t)

1 P1 P4

R1

R4

Q(t) é soma ponderada dos elementos de GH

Função blending de Hermite

Page 77: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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()(

Page 78: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 79: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Formulação Bézier

Q(t) = GBMBT 4321 PPPPGB

1

2

3

t

t

t

T

Lembrando que: R1 = 3(P2 – P1) e R4 = 3(P4 – P3)

podemos relacionar Bézier com Hermite:

HBBH MGPPPPRRPPG

3010

3000

0300

0301

43214141

Page 80: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Formulação Bézier

Voltando a Hermite: Q(t) = GHMHT

Como: GH = GB MHB

Temos: Q(t) = GBMHBMHT

Page 81: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 2

3ttBB 3

4tBB

Page 82: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Trabalho 1: 2004.2

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

Page 83: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 84: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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, m3, 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

Q3

Q4

Q5

Q6

Q7

Q8

Q9

Page 85: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 entre os nós.

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

Page 86: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 87: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

NURBS: VRML

nú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 88: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Comparação

• Armazenado como NURB (11KB)

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

Blaxxun, Inc.

Page 89: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Superfícies NURBs

http://www.tiemdesign.com

Stephane, Paris

Page 90: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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)

Page 91: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 92: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 93: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

CSG• No espaço:

POV-Raydocumentation

Page 94: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Exemplos CSG

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

Page 95: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Extrusão

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

Pinho, PUCRS

Page 96: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Sweeping

• Extrusão ao longo de uma curva

Giambruno, 2003

Page 97: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Skinning

• Extrusão ao longo de uma curva (sweeping), mas com cortes variados ao longo do caminho.

Giambruno, 2003

Page 98: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

VRML: Extrusion

polígono 2D (corte)

curva de extrusão

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

Page 99: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

VRML Extrusion - Exemplo

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

Page 100: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 FALSE endCap FALSE}

} ]}

Page 101: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 FALSE endCap FALSE solid FALSE}

} ]}

passa a não existir lado internoe externo das faces

Page 102: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

VRML Extrusion – Exemplo (sweeping)

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

Page 103: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

VRML Extrusion – Exemplo (lathing)

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

Page 104: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

VRML Extrusion – Exemplo

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

Page 105: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

X3D Extrusion

<Extrusion

crossSection = “-3.5 -1,-2.1 2.9, 2.2 2.9, 3.6 -1,0 -3.5, -3.5 -1”

spine = “0 0 0, 0 1 0,0 1.6 0”

scale = “ 1 1, 1 1, 0.2 0.2”

solid = “true” />

Page 106: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

X3D Extrusion

<Extrusion

crossSection = “0 0, 0 6,3 6, 3 5, 1 5, 1 1, 9 1, 9 5,5 5, 5 6, 10 6, 10 0”

spine = “0 0 0, 0 2.5 0”

solid = “true” />

Page 107: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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

Page 108: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Lathing no POVRAY #include "colors.inc" background{White} camera { angle 10 location <1, 9, -50> look_at <0, 2, 0> } light_source { <20, 20, -20> color White } lathe { linear_spline 6, <0,0>, <1,1>, <3,2>, <2,3>, <2,4>, <0,4> pigment { Blue } finish { ambient .3 phong .75 } }

x

y

(0,0)

(1,1)

(3,2)

(2,3)

(2,4)(0,4)

www.povray.org

Page 109: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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, 0 pigment { 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> open texture { T_Gold_1B } }

Page 110: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Outras técnicas de modelagem

Page 111: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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”

Page 112: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Metaballs

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

Page 113: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Metaballs no POVRAY

#include "colors.inc" background{Gray} camera { angle 15 location <0,0,-20> look_at <0,0,0> } light_source { <10, 20, -10> color White } blob { threshold .65 sphere { <.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 .65 sphere { <.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 } }

Page 114: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Metaballs

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

Page 115: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Metaballs

Digital I Designs

Page 116: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Metaballs

• Vantagens:– Adequadas para representar metamorfoses e

“blendings”

Page 117: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Subdivision Surfaces

• Metodologia de geração de superfícies poligonais “lisas” (smooth), criada pela Pixar para o curta “Geri´s Game”

Page 118: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 119: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Subdivision Surfaces

• Exemplo 2D

...

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

Page 120: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Subdivision Surfaces

• Exemplo 3D

...

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

Page 121: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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)

Page 122: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 123: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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!

Page 124: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 125: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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/

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

Page 126: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

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 127: INF 1366 – Computação Gráfica Interativa Modelagem Geométrica

Alberto Raposo – PUC-Rio

Informações Adicionais

• Metaballs:– G. Graves. “The Magic of Metaballs”. Computer Graphics

World, 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