Objetos 3D
Modelos de Sólidos Construtivos Fronteiras Decomposição Conjunto de pontos no R 3
Construtivos - CSG primitivas Operações boleanas
CSG diff uncy bl 1 bl 2 Árvore binária
CSG Visualização: Traçado de Raios
Por fronteira (BRep, Boudary Representation) p1p1 p2p2 p3p3
Elementos topológicos SólidoFacesArestas e vértices
Hierarquia nos elementos topológicos dos modelos de fronteira Vértices, Arestas e Faces face aresta vértice
Restrições dos modelos de fronteira Garrafa de Klein (não orientável) A superfície não pode ser qualquer!
vertex v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 coordinates x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 x 4 y 4 z 4 x 5 y 5 z 5 x 6 y 6 z 6 x 7 y 7 z 7 x 8 y 8 z 8 face f 1 f 2 f 3 f 4 f 5 f 6 vertices v 1 v 2 v 3 v 4 v 6 v 2 v 1 v 5 v 7 v 3 v 2 v 6 v 8 v 4 v 3 v 7 v 5 v 1 v 4 v 8 v 8 v 7 v 6 v 5 A vertex-based boundary model
edge e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 e 10 e 11 e 12 vertices v 1 v 2 v 2 v 3 v 3 v 4 v 4 v 1 v 1 v 5 v 2 v 6 v 3 v 7 v 4 v 8 v 5 v 6 v 6 v 7 v 7 v 8 v 8 v 5 vertex v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 coordinates x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 x 4 y 4 z 4 x 5 y 5 z 5 x 6 y 6 z 6 x 7 y 7 z 7 x 8 y 8 z 8 face f 1 f 2 f 3 f 4 f 5 f 6 edges e 1 e 2 e 3 e 4 e 9 e 6 e 1 e 5 e 10 e 7 e 2 e 6 e 11 e 8 e 3 e 7 e 12 e 5 e 4 e 8 e 12 e 11 e 10 e 9 An edge-based boundery model
vertex v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 coordinates x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 x 4 y 4 z 4 x 5 y 5 z 5 x 6 y 6 z 6 x 7 y 7 z 7 x 8 y 8 z 8 face f 1 f 2 f 3 f 4 f 5 f 6 first edge e 1 e 9 e 6 e 7 e 12 e 9 sign + - edge e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 e 10 e 11 e 12 vstart v 1 v 2 v 3 v 4 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 vend v 2 v 3 v 4 v 1 v 5 v 6 v 7 v 8 v 6 v 7 v 8 v 5 ncw e 2 e 3 e 4 e 1 e 9 e 10 e 11 e 12 e 6 e 7 e 8 e 5 nccw e 5 e 6 e 7 e 8 e 4 e 1 e 2 e 3 e 12 e 9 e 10 e 11 Winged-edge data structure (Baumgart)
vend ncw pccw fccw fcwpcw nccw vstart vertex v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 first edge e 1 e 2 e 3 e 4 e 9 e 10 e 11 e 12 coordinates x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 x 4 y 4 z 4 x 5 y 5 z 5 x 6 y 6 z 6 x 7 y 7 z 7 x 8 y 8 z 8 edge e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 e 10 e 11 e 12 vstart v 1 v 2 v 3 v 4 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 vend v 2 v 3 v 4 v 1 v 5 v 6 v 7 v 8 v 6 v 7 v 8 v 5 fcw f 1 f 2 f 3 f 4 f 5 f 2 f 3 f 4 f 5 fccw f 2 f 3 f 4 f 5 f 2 f 3 f 4 f 6 ncw e 2 e 3 e 4 e 1 e 9 e 10 e 11 e 12 e 6 e 7 e 8 e 5 nccw e 5 e 6 e 7 e 8 e 4 e 1 e 2 e 3 e 12 e 9 e 10 e 11 pcw e 4 e 1 e 2 e 3 e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 pccw e 6 e 7 e 8 e 5 e 12 e 9 e 10 e 11 e 10 e 11 e 12 e 9 face f 1 f 2 f 3 f 4 f 5 f 6 first edge e 1 e 9 e 6 e 7 e 12 e 9 Winged edges
Um objeto em vários níveis de detalhe
Multi-resolução num mesmo objeto
Decomposição Exaustiva: Voxels
Decomposição Estruturas espaciais Quadtrees
Decomposição Processo de criação da quadtree
Decomposição Processo de criação da quadtree
Decomposição Exaustiva: Octrees
Decomposição Octrees
Decomposição BSP (binary space partitions) a b cd e f g a b cd e f g a 3 b c 4 d 5 6 e 7 f BSP Tree
Decomposição BSP (binary space partitions) BSP Tree a j b f c d g k h i e g j kout in h i outin out f inout e c d in b a
Decomposição celular
vertex v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 coordinates x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 x 4 y 4 z 4 x 5 y 5 z 5 x 6 y 6 z 6 x 7 y 7 z 7 x 8 y 8 z 8 cel c 1 c 2 c 3 c 4 c 5 c 6 vertices v 1 v 2 v 3 v 4 v 5 v 6 …
Requisitos
ESTRUTURAS ESPACIAIS Indexação para cenas com muitos objetos
BSP trees: Binary Space Partion Trees a 5b a 4 5b atrásfrente a 5b 3 4 5b atrásfrente 2 atrás 5a b 3 2 5a 1 4 5b
Exibição de uma BSP void bspDisplay(bspTree *tree) { if (arvore não é vazia) { if (observador está a frente da raiz) { bspDisplay(tree backChild); DisplayPolygon(tree root); bspDisplay(tree frontChild); } else { bspDisplay(tree frontChild); DisplayPolygon(tree root); bspDisplay(tree backChild); } Mostra a árvore de trás, a raiz e a árvore da frente. Mostra a árvore da frente, a raiz e a árvore de atrás.
BSP trees: Dois exemplos de exibição a 5b 3 2 5a 1 4 5b 5a, 2, 1, 3, 5b, a 5b 3 2 5a 1 4 5b 4, 5b, 3, 5a, 2, 1