A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "INF 1366 – Computação Gráfica Interativa Modelagem Geométrica"— Transcrição da apresentação:

1 INF 1366 – Computação Gráfica Interativa Modelagem Geométrica
Alberto B. Raposo Alberto Raposo – PUC-Rio

2 Computação Gráfica e Áreas Correlatas
processamento de imagens Imagem digital computação gráfica (síntese de imagens) visão computacional Modelos modelagem geométrica Alberto Raposo – PUC-Rio

3 Estrutura de aplicação gráfica interativa tradicional
Carla Freitas, UFRGS Aula de hoje (e as próximas) Alberto Raposo – PUC-Rio

4 Modelagem vs. Visualização
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. Alberto Raposo – PUC-Rio

5 Espaços de Coordenadas
Plano ou R2 (2D) y x x Marcelo Gattass, PUC-Rio Alberto Raposo – PUC-Rio

6 Espaços de Coordenadas
Espaço ou R3 (3D) y x z Marcelo Gattass, PUC-Rio Alberto Raposo – PUC-Rio

7 Modelagem Geométrica Tipos de estruturação de dados Primitivas
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 Alberto Raposo – PUC-Rio

8 Primitivas X3D Box, Cone, Cylinder, Sphere, Text Nó Shape Geometria
Aparência Material e/ou Textura Alberto Raposo – PUC-Rio

9 Box <Shape DEF=“MyShapeNode” bboxCenter = “0 0 0”
bboxSize= “ ” <Box DEF=“SingleGeometryNode” size = “1 1 1” solid = “true” /> <Appearance DEF = “SingleAppearanceNode” /> </Shape> Indica se é visto apenas de um lado Alberto Raposo – PUC-Rio

10 Cone <Cone DEF=“MyConeNode” bottomRadius = “1” height = “2”
bottom = “true” side = “true” solid = “true” /> Alberto Raposo – PUC-Rio

11 Cylinder <Cylinder DEF=“MyCylinderNode” radius = “1” height = “2”
bottom = “true” top = “true” side = “true” solid = “true” /> Alberto Raposo – PUC-Rio

12 Sphere <Sphere DEF=“MySphereNode” radius = “1” solid = “true” />
Alberto Raposo – PUC-Rio

13 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> Alberto Raposo – PUC-Rio

14 PointSet <PointSet Def=“MyPointNode”
<Color color=“1 0 0, 0 1 0, 0 0 1, ” /> < Coordinate point=“-2 0 0, 0 0 0, 0 0 2, 0 0 4” /> </PointSet> Alberto Raposo – PUC-Rio

15 Wireframe Representação de arestas (pontos + conexões entre pontos)
Alberto Raposo – PUC-Rio

16 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, ] } coordIndex [ ] 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, ] } } ] } # end of children and Transform Background {skyColor 1 1 1} Alberto Raposo – PUC-Rio

17 Wireframe em X3D: IndexedLineSet
Alberto Raposo – PUC-Rio

18 Wireframe Vantagens Problemas
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) As duas representações abaixo são válidas para o modelo em wireframe à esquerda Alberto Raposo – PUC-Rio Márcio Pinho, PUCRS

19 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

20 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, ...., vn 2 - v3, v5, ..., vn n – vn, v4, ..., v1 Alberto Raposo – PUC-Rio

21 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, ] } coordIndex [ ] 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

22 B-Rep em X3D: IndexedFaceSet
<IndexedFaceSet DEF='Box1_Geo' containerField='geometry' creaseAngle='0.524' coordIndex=' , , , , , , , , , , , '> <Coordinate DEF='Box1_Coord' containerField='coord' point=' , , , , , , , '/> Alberto Raposo – PUC-Rio

23 Exemplo de 3 listas apostilas/cg/downloads/modpoliedrais.pdf Alberto Raposo – PUC-Rio

24 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

25 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. Alberto Raposo – PUC-Rio

26 Quadtree – Critério de Parada
Exemplo: Começa com quadrado envolvendo todo o objeto, que em seguida é dividido em 4 quadrados menores. 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 Para cada quadrado cheio-vazio, repetir os procedimentos 1 e 2. O procedimento encerra quando só existirem quadrados cheios e vazios Pinho, PUCRS Alberto Raposo – PUC-Rio

27 Quadtree - Exemplo Alberto Raposo – PUC-Rio
Alberto Raposo – PUC-Rio

28 Quadtree – Programa Exemplo
Alberto Raposo – PUC-Rio Autores: Patrícia Zottis e Rodrigo Fehse Alterações: Leonardo Langie - PUCRS

29 Octree Idêntica à Quadtree, mas considerando o espaço 3D
Cubo é dividido em 8 sub-cubos Alberto Raposo – PUC-Rio

30 Octrees Alberto Raposo – PUC-Rio

31 Octree Algoritmo de construção em C Pinho, PUCRS
Alberto Raposo – PUC-Rio

32 Octrees FlipCode.com Alberto Raposo – PUC-Rio

33 Uso de Octrees e Quadtrees
Exemplos: Frustum culling, detecção de colisão, operações de união e interseção Se pai (não) é importante, todos os filhos também (não) são Desvantagem: Trabalhosas para manipular FlipCode.com Alberto Raposo – PUC-Rio

34 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 1K polígonos 10K polígonos Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler

35 Mesh Tesselation Construção de malhas poligonais
A partir de representações abstratas A partir de núvens de pontos Courses/EDA221/ projects/VisualEyes/visualization/ geomod/cloud/cloud.html Alberto Raposo – PUC-Rio

36 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 Alberto Raposo – PUC-Rio

37 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]. Strip Fun Alberto Raposo – PUC-Rio

38 Tipos de primitivas em OpenGL
GL_LINE_STRIP 1 2 3 4 GL_LINE_LOOP 1 2 3 GL_LINES 1 2 3 5 4 GL_POINTS 1 2 GL_TRIANGLE_FAN 1 2 3 4 GL_TRIANGLES 1 2 3 4 5 GL_TRIANGLE_STRIP 1 2 3 4 5 GL_POLYGON (convexo) 4 3 2 1 GL_QUAD_STRIP 3 1 2 4 5 GL_QUADS 3 2 1 4 7 6 5 Alberto Raposo – PUC-Rio

39 Exemplo em OpenGL glBegin(tipo_de_prim); glEnd();
…define attributo de vértice …define vértice glBegin(tipo_de_prim); glEnd(); Alberto Raposo – PUC-Rio

40 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

41 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. Alberto Raposo – PUC-Rio

42 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

43 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. Alberto Raposo – PUC-Rio

44 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

45 Exemplo de LOD Discreto
VRML: nó LOD The Annotated VRML Reference Alberto Raposo – PUC-Rio

46 LOD Discreto Alberto Raposo – PUC-Rio

47 Exemplo de LOD – X3D Alberto Raposo – PUC-Rio

48 Exemplo de LOD – X3D Alberto Raposo – PUC-Rio
<?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> Alberto Raposo – PUC-Rio

49 Exemplo de LOD – X3D Alberto Raposo – PUC-Rio <Shape>
<Appearance> <Material diffuseColor='0 0 1'/> </Appearance> <Sphere radius='1.4'/> </Shape> </Group> <Group DEF="Image"> <Box/> </LOD> </Scene> </X3D> Alberto Raposo – PUC-Rio

50 LOD Contínuo View dependent LOD Alberto Raposo – PUC-Rio

51 LOD Contínuo observador View dependent LOD Alberto Raposo – PUC-Rio

52 LOD Contínuo Visualização de Terrenos
(vídeo) Alberto Raposo – PUC-Rio

53 X3D: ElevationGrid Alberto Raposo – PUC-Rio

54 Exemplo de Elevation Grid
#VRML V2.0 utf8 Transform { children [ Shape { geometry DEF EG ElevationGrid { xDimension 5 xSpacing 1 zDimension 4 zSpacing 1 height [ # 5x4 array of heights ] creaseAngle 0.8 } appearance Appearance { material DEF M Material { diffuseColor } texture DEF IT ImageTexture { url "stone.jpg" } Alberto Raposo – PUC-Rio

55 Exemplo de Elevation Grid
Transform { translation children Shape { geometry ElevationGrid { xDimension 5 xSpacing 1 zDimension 4 zSpacing 1 height [ # 5x4 array of heights ] creaseAngle 0.8 } appearance Appearance { material USE M texture USE IT } DirectionalLight { direction } Viewpoint { position } Background { skyColor } ]} Alberto Raposo – PUC-Rio

56 Elevation Grid Exemplo de superfície matemática
Alberto Raposo – PUC-Rio

57 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

58 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 Alberto Raposo – PUC-Rio

59 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 Alberto Raposo – PUC-Rio

60 Continuidade de curvas (2D) / superfícies (3D)
Contínua: C1 e G1 Descontínua Contínua: C0 e G0 Continuidade Geométrica C0 e G1 Marcelo Gattass, PUC-Rio Alberto Raposo – PUC-Rio

61 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

62 Exemplos de Conexões de Curvas
ponto de junção C2 C1 C0 TV2 TV3 TV1 P1 P2 P3 Q1 Q2 Q3 S se conecta a C0, C1 e C2 com continuidade C0, C1 e C2, respectivamente. 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. Kessler, Dinh, 2003 Alberto Raposo – PUC-Rio

63 Controle de Curvas / Splines
Curvas são definidas por pontos de controle Alterando os pontos, altera-se a curva Interpolação Bézier (aproximação) BSpline (aproximação) Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler

64 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 Alberto Raposo – PUC-Rio

65 Curvas Alberto Raposo – PUC-Rio

66 Curvas Paramétricas Para selecionar parte da curva: 0  t  1 Linear:
Quadrática: Cúbica: x=axt + bx x = axt2 + bxt + cx x = axt3 + bxt2 + cxt + dx y=ayt + by y = ayt2 + byt + cy y = ayt3 + byt2 + cyt + dy z=azt + bz z = azt2 + bzt + cz 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 Alberto Raposo – PUC-Rio

67 Equações Paramétricas
x = axt3 + bxt2 + cxt + dx y = ayt3 + byt2 + cyt + dy z = azt3 + bzt2 + czt + dz Kessler, Dinh, 2003 Alberto Raposo – PUC-Rio

68 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. Alberto Raposo – PUC-Rio

69 Famílias de Curvas Família Tipo Definida por Hermite Cúbica
2 pontos extremos, vetores tangentes nos extremos Bézier 2 pontos extremos, 2 pontos de controle Splines 4 pontos de controle Kessler, Dinh, 2003 Alberto Raposo – PUC-Rio

70 Famílias de Curvas P2 P4 P1 P3 P3 P1 P4 P2 Hermite Bézier Spline
pontos de controle Hermite Bézier Spline Alberto Raposo – PUC-Rio

71 Exemplos Hermite R1 P4 P1 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. R4 Kessler, Dinh, 2003 Alberto Raposo – PUC-Rio

72 Exemplos Hermite Curvas com pontos extremos fixos e magnitudes dos vetores tangentes iguais, mas a direção do vetor tangente da esquerda varia. Kessler, Dinh, 2003 Alberto Raposo – PUC-Rio

73 Formulação Hermite Q(t) = G M T Matriz Geométrica Matriz Base Matriz T
Alberto Raposo – PUC-Rio

74 Formulação Hermite Alberto Raposo – PUC-Rio Kessler, Dinh, 2003

75 Formulação Hermite Alberto Raposo – PUC-Rio Kessler, Dinh, 2003

76 Formulação Hermite Q(t) = GHMHT t f(t) P1 P4 R1 R4
Q(t) é soma ponderada dos elementos de GH t f(t) 1 P1 P4 R1 R4 Função blending de Hermite Alberto Raposo – PUC-Rio Kessler, Dinh, 2003

77 Formulação Hermite Alberto Raposo – PUC-Rio

78 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

79 Formulação Bézier Q(t) = GBMBT
Lembrando que: R1 = 3(P2 – P1) e R4 = 3(P4 – P3) podemos relacionar Bézier com Hermite: Alberto Raposo – PUC-Rio

80 Formulação Bézier Voltando a Hermite: Q(t) = GHMHT Como: GH = GB MHB
Temos: Q(t) = GBMHBMHT Alberto Raposo – PUC-Rio

81 Formulação Bézier Q(t) = GBMBT Polinômios de Bernstein: f(t) t 1 BB1
Alberto Raposo – PUC-Rio

82 Trabalho 1: 2004.2 Programa para desenhar curvas de Bézier 3 exemplos.
Alberto Raposo – PUC-Rio

83 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

84 Natural vs. B-Spline Splines naturais B-Splines
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) P0 P1 P2 P3 P5 P4 P6 P7 P8 P9 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Kessler, Dinh, 2003 Alberto Raposo – PUC-Rio

85 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. Can put control points of NURBS (or any rational curve) through a perspective transformation and still construct the curve correctly. This is not true of non-rational curves. Rational curves use ratios of parametric functions, and therefore can use homogeneous space Q(t)=[X(t) Y(t) Z(t) W(t)] and use the 3D curves X(t)/W(t), Y(t)/W(t), Z(t)/W(t). Alberto Raposo – PUC-Rio

86 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) Alberto Raposo – PUC-Rio

87 NURBS: VRML número de pontos de controle em cada dimensão
vetores de nós 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 Alberto Raposo – PUC-Rio

88 Comparação Armazenado como NURB (11KB)
Armazenado como IndexFaceSet de alta resolução (2.2MB) Blaxxun, Inc. Alberto Raposo – PUC-Rio

89 Superfícies NURBs http://www.tiemdesign.com Stephane, Paris
Alberto Raposo – PUC-Rio

90 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

91 Primitivas 3D Formas geométricas 3D básicas, que podem ser estendidas por operações booleanas (CSG) Primitivas “menos básicas” Primitivas básicas Giambruno, 2003 Alberto Raposo – PUC-Rio

92 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

93 CSG No espaço: POV-Ray documentation Alberto Raposo – PUC-Rio

94 Exemplos CSG http://www.cl.cam.ac.uk/Teaching/ 1998/AGraphics/l3a.html
Alberto Raposo – PUC-Rio

95 Extrusão Acrescenta o eixo z (profundidade) a um polígono Pinho, PUCRS
Alberto Raposo – PUC-Rio

96 Sweeping Extrusão ao longo de uma curva Giambruno, 2003
Alberto Raposo – PUC-Rio

97 Skinning Extrusão ao longo de uma curva (sweeping), mas com cortes variados ao longo do caminho. Giambruno, 2003 Alberto Raposo – PUC-Rio

98 VRML: Extrusion se início / fim da extrusão é aberto
polígono 2D (corte) curva de extrusão Alberto Raposo – PUC-Rio

99 VRML Extrusion - Exemplo
vrml/tutorial/index.shtml?extru Alberto Raposo – PUC-Rio

100 VRML Extrusion – Exemplo
#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 [ , ] beginCap FALSE endCap FALSE} } ]} vrml/tutorial/index.shtml?extru Alberto Raposo – PUC-Rio

101 VRML Extrusion - Exemplo
#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 [ , ] beginCap FALSE endCap FALSE solid FALSE} } ]} passa a não existir lado interno e externo das faces vrml/tutorial/index.shtml?extru Alberto Raposo – PUC-Rio

102 VRML Extrusion – Exemplo (sweeping)
vrml/tutorial/index.shtml?extru Alberto Raposo – PUC-Rio

103 VRML Extrusion – Exemplo (lathing)
vrml/tutorial/index.shtml?extru Alberto Raposo – PUC-Rio

104 VRML Extrusion – Exemplo
vrml/tutorial/index.shtml?extru Alberto Raposo – PUC-Rio

105 X3D Extrusion <Extrusion
crossSection = “ , , , , , ” spine = “0 0 0, 0 1 0, ” scale = “ 1 1, 1 1, ” solid = “true” /> Alberto Raposo – PUC-Rio

106 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, ” solid = “true” /> Alberto Raposo – PUC-Rio

107 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

108 Lathing no POVRAY www.povray.org y x (2,4) (0,4) (2,3) (3,2) (1,1)
#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 (0,4) (2,4) (2,3) (3,2) (1,1) x (0,0) Alberto Raposo – PUC-Rio

109 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 } Alberto Raposo – PUC-Rio

110 Outras técnicas de modelagem
Alberto Raposo – PUC-Rio

111 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

112 Metaballs Alberto Raposo – PUC-Rio

113 Metaballs no POVRAY Alberto Raposo – PUC-Rio #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 } sphere { <.5,0,0>, .7, 1 pigment {Yellow} translate <1., 0, 0>} sphere { <-.5,0,0>,.9, 1 pigment {Red} translate <1., 0, 0> } Alberto Raposo – PUC-Rio

114 Metaballs Alberto Raposo – PUC-Rio

115 Metaballs Digital I Designs Alberto Raposo – PUC-Rio

116 Metaballs Vantagens: Adequadas para representar metamorfoses e “blendings” Alberto Raposo – PUC-Rio

117 Subdivision Surfaces Metodologia de geração de superfícies poligonais “lisas” (smooth), criada pela Pixar para o curta “Geri´s Game” Alberto Raposo – PUC-Rio

118 Subdivision Surfaces Definição de uma superfície “lisa” como o limite de uma seqüência de refinamentos sucessivos subdivision/intro/index.htm Alberto Raposo – PUC-Rio

119 Subdivision Surfaces Exemplo 2D ...
teaching/demos/java/4point.htm Alberto Raposo – PUC-Rio

120 Subdivision Surfaces Exemplo 3D ...
subdivision/index.html Alberto Raposo – PUC-Rio

121 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

122 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ções em tempo real (jogos e realidade virtual, por exemplo). Low-Poly: a melhor qualidade possível com número limitado de polígonos Alberto Raposo – PUC-Rio

123 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

124 Low-Poly Texturing-your-Lara-Croft-model/4859 character/tutorial_1/ Alberto Raposo – PUC-Rio

125 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. Alberto Raposo – PUC-Rio

126 Informações Adicionais
Quadtrees e Octrees 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. Alberto Raposo – PUC-Rio

127 Informações Adicionais
Metaballs: G. Graves. “The Magic of Metaballs”. Computer Graphics World, Maio 1993. Subdivision surfaces: Low-Poly: M. Giambruno. “3D Graphics & Animation”.New Riders, 2002 The Annotated VRML 97 Reference: Alberto Raposo – PUC-Rio


Carregar ppt "INF 1366 – Computação Gráfica Interativa Modelagem Geométrica"

Apresentações semelhantes


Anúncios Google