1.09k likes | 1.53k Views
Representação Geométrica. Rodrigo de Toledo (CG1, UFRJ). Macro. Cena. Microscale. Meso. Níveis de escala. Objetos do mundo virtual. Textura. Aqui. Representação dos objetos. Nível fotométrico. Representação da geometria. Implícita Equação determina a descrição geométrica
E N D
Representação Geométrica Rodrigo de Toledo (CG1, UFRJ)
Macro Cena Microscale Meso Níveis de escala • Objetos do mundo virtual • Textura Aqui • Representação dos objetos • Nível fotométrico
Representação da geometria • Implícita • Equação determina a descrição geométrica • Ex: quádricas, cúbicas e torus • Paramétrica • Função determina regra de construção • Ex: Bézier, Nurbs • Explícita • A geometria é descrita “ponto-a-ponto” • Ex: malha de triângulo e mapa de alturas
Representação Geométrica Implícita Quádricas, cúbicas, etc... CSG
Exemplo: círculo Representação Implícita: Representação Paramétrica: Representação Explícita:
superfícies implícitas são definidas por uma função f : R3R A função divide o espaço em três: surperfíce: f(x,y,z) 0 interior: f(x,y,z) <0 exterior: f(x,y,z) >0 f 0 Superfícies implícitas f 0 f 0
Classificação das superfícies implícitas • O grau da polinomial da função é que define o grau da superfície. • Grau 2: quádricas • Grau 3: cúbicas • Grau 4: quárticas • A quantidade de parâmetros S para cada grau p pode ser calculada usando:
Quádricas • Quádricas: Esfera: x2 + y2 + z2 = 1
Representação matricial das quádricas • Matriz simétrica Q4x4 contendo os 10 coeficientes:
spheres ellipsoids cones cylinders hyperboloids Classificação das quádricas • Para entender a nomenclatura 3D, primeiro vamos ver a nomenclatura 2D...
Classificação das Quádricas • vide wikepedia Saddle Cela do cavalo
Quárticas • Torus é a quártica mais conhecida:
Qual a complexidade da equação do coração? f(x,y,z) = (2x2 + y2 + z2 – 1)3 – 0.1 x2 z3 – y2 z3
Cálculo da normal à superfície • Gradiente da superfície no ponto x,y,z • Qual é a normal de uma quádrica? • Qual é a normal normalizada do ponto [x,y,z] numa esfera de raio unitário?
A diferença não é comutativa CSG • Operações booleanas Diferença União Interseção
CSG • Objeto é representado por uma árvore • Operadores em nós internos • Primitivas simples nas folhas • Combinação bottom-up • Obs: • Como há operações não comutativas, as arestas são ordenadas • Pode haver nós de transformação: rotação, translação e escala...
Half-spaces • Alguns sistemas CSG, além de primitivas sólidas, também fazem uso de half-spaces, ou seja, planos que dividem o espaço em dois • Como definir um cubo a partir de half-spaces? • 6 half-spaces • Vantagem: • Para se fazer um corte, não precisa usar um objeto com vários lados. • Desvantagem: • Problema de validação: • nem toda combinação pode resultar em um objeto válido • (talvez só faça sentido usar para subtração)
CSG & raytracing Um objeto em CSG é comumente descrito por combinações de objetos implícitos, cujos cálculos de interseção com a reta são conhecidos, tornando o raytracing de objetos CSG uma extensão natural.
CSG & raytracing • Realizar operações booleanas com sólidos nem sempre é uma operação fácil • É mais fácil interpretar o que acontece com um raio atravessando esse sólido. • redução do problema a cálculos em intervalos 1D Goldstein and Nagel, “3-D Visual Simulation”, Simulation, January 1971.
A B: CSG 1D A B A B A: B:
A B: CSG 1D A: B: A B: A – B: B – A: A – B B – A A B
CSG 1D • Classificação in/out por região: Exercício: Preencher a tabela acima!
CSG & Rasterização • Também é possível visualizar sólidos CSG com rasterização • Ordenação a posteriori dos fragmentos (pixels de cada primitiva) • Vide: • Rossignac and Requicha, “Depth-buffering Display Techniques for Constructive Solid Geometry”, CG & A, September 1986.
Algumas questões • A ordem na árvore tem importância? • Sim, verticalmente e horizontalmente (dif.). • Existe uma representação única, dado um objeto final e suas primitivas? • Não • A árvore tem que ser binária? • Os nós de união e interseção poderiam ter mais de um filho, mas diferença é sempre entre dois filhos.
r Possíveis questões de prova Monte a árvore CSG deste sólido, sabendo que as folhas são 2 cilindros e 1 esfera Monte a árvore CSG deste sólido e desenhe o que acontece com o raio r ao longo do seu caminho para cada nó da árvore à raíz. in out
Representação Geométrica Paramétrica Curvas paramétricas cúbicas Introdução Continuidade Algoritmo de De Casteljau Hermite, Bézier e Splines (B-Splines e Nurbs) Superfícies paramétricas bicúbicas Bézier...
Curvas Paramétricas Cúbicas • Por que paramétricas? • são descritas em t • f(t), 0 ≤ t ≤ 1 t = 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Por que cúbicas? • Grau 3: • Por que não <3? • Pouca flexibilidade • Por que não >3? • Computacionalmente caro • “Franjas” indesejáveis (unwanted wiggles) • Por que 3? • Controle suave (derivadas) da curva passando em dois pontos • Menor grau de curva em 3D
Paramétricas • Por que não f(x), ao invés de f(t)? • Mas como representar esses casos? f(x) x
Matricialmente • Derivada em t ?
Algoritmo de De Casteljau Interpolação x Aproximação
12 12
Algoritmo de De Casteljau P1 P12 (u) u = 0.25 P02 (u) P01 (u) P0 P2
Algoritmo de De Casteljau P1 u = 0.5 P02 (u) P12 (u) P01 (u) P0 P2
Algoritmo de De Casteljau P1 P01 (u) u = 0.75 P02 (u) P12 (u) P0 P2
Algoritmo de De Casteljau P1 0 ≥ u ≥ 1 P02(u) P0 P2
13 13
Peso (influência) de cada ponto: ∑bi(u) = 1, 0 ≥ u ≥ 1
Juntando curvas • Como representar uma curva grande? • Poderia se usar uma curva de grau n(n grande para caramba ) • Ou, pode-se fazer emendas de cúbicas • Mas nesse caso, queremos garantir uma boa continuidade no ponto de junção
Continuidade • Geometric Continuity G0 • Duas curvas tem um ponto de junção • G1 • Se no ponto de junção, a direção (não necessariamente a magnitude) do vetor tangente é igual para as duas curvas • C1 • Se, além da direção, a magnitude for igual. • C2 • Se a direção e magnitude da derivada segunda for igual. • Cn • Se a direção e magnitude de for igual. • Para funções de grau alto, pode-se ter continuidade de grau ainda maior: n-polinomial Cn-1 • Existe G2? Existe C0?