Prof. Leandro Taddeo
– Constructive Solid Geometry (CSG)
Aula 10
Constructive solid geometry (CSG) é uma técnica utilizada em modelagem de sólidos Geralmente utilizada em computação gráfica
3D CSG permite que o modelador crie objetos
complexos utilizando operadores booleanos para combinar objetos
Facilita a aplicação de operações matemáticas difíceis de serem executadas com malhas poligonais
IntroduçãoCSG
2
Os objetos sólidos mais simples utilizados para representação são chamados de Primitivas Exemplos de primitivas: esfera, caixa,
cilindro, cone Objetos mais complexos podem ser
construídos a partir de primitivas através da aplicação de operadores booleanos Exemplos de operadores: união,
intersecção, diferença
Objetos e OperaçõesCSG
3
A união deve ser utilizada quando se deseja combinar dois objetos em um só
É útil também quando se deseja: Aplicar a mesma textura aos dois objetos Transformar ambos os objetos com um só
comando
Operações – UniãoCSG
4
Operações – UniãoCSG
5
sphere { <0,5,0> 4 texture { T_Glass1 // T_Wood34 } }
cylinder { <0,3,0> <0,0,0> 2 texture { T_Glass1 // T_Wood34 } }
sphere { <0,5,0> 4 texture { T_Glass1 // T_Wood34 } }
cylinder { <0,3,0> <0,0,0> 2 texture { T_Glass1 // T_Wood34 } }
union { sphere { <0,5,0> 4 }
cylinder { <0,3,0> <0,0,0> 2 } texture { T_Glass1 // T_Wood34 }}
union { sphere { <0,5,0> 4 }
cylinder { <0,3,0> <0,0,0> 2 } texture { T_Glass1 // T_Wood34 }}
Operações – UniãoCSG
6
Exemplos sem união
Exemplos com união
A operação de merge deve ser utilizada quando se deseja combinar dois objetos em um só, excluindo as partes dos objetos que ficaram internas
É útil para objetos transparentes Objetos opacos podem ser combinados
com a união, pois é uma operação mais rápida
Operações – MergeCSG
7
Operações – MergeCSG
8
merge { sphere { <0,5,0> 4 }
cylinder { <0,3,0> <0,0,0> 2 } texture { T_Glass1 }}
merge { sphere { <0,5,0> 4 }
cylinder { <0,3,0> <0,0,0> 2 } texture { T_Glass1 }}
union
merge
A operação de diferença deve ser utilizada quando se deseja remover partes de um objeto, cavando formas nele
O primeiro objeto é aquele de onde serão removidas as partes especificadas por outros objetos que vêm a seguir Qualquer parte do objeto original que esteja
dentro dos outros objetos é removida A cor da parte removida fica a mesma do
objeto que a removeu
Operações – DiferençaCSG
9
Operações – DiferençaCSG
10
difference { sphere { <0,5,0> 4 texture { pigment {Red} } } cylinder { <1,6,-4> <-1,4,4> 1.5 texture { pigment {Blue} } } }
difference { sphere { <0,5,0> 4 texture { pigment {Red} } } cylinder { <1,6,-4> <-1,4,4> 1.5 texture { pigment {Blue} } } }
Operações – DiferençaCSG
11
União Diferença
A textura também pode ser aplicada na diferença
Operações – Diferença12
CSG
difference { sphere { <0,5,0> 4 } cylinder { <1,6,-4> <-1,4,4> 1.5 } texture { pigment {Red} }}
difference { sphere { <0,5,0> 4 } cylinder { <1,6,-4> <-1,4,4> 1.5 } texture { pigment {Red} }}
A operação de intersecção captura todos os pontos que estão contidos em todos os objetos especificados
Diferentemente da diferença, a intersecção “joga fora” a partes do objeto que estão fora da intersecção com os objetos seguintes
Operações – Intersecção13
CSG
Operações – Intersecção14
CSG
União
Diferença
Intersecção
Operações – Intersecção15
CSG
intersection { box { <-5,0,0> <0,5,5> texture { pigment {Green} } } sphere { <0,5,0> 3 texture { pigment {Yellow} } } rotate 30*y }
intersection { box { <-5,0,0> <0,5,5> texture { pigment {Green} } } sphere { <0,5,0> 3 texture { pigment {Yellow} } } rotate 30*y }
Pode-se aplicar transformações geométricas diretamente do objeto resultante
ExercícioCSG
16