Aula 10
–
Constructive Solid Geometry (CSG)
Prof. Leandro Taddeo
CSG
Introdução
2

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
CSG
Objetos e Operações
3

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
CSG
Operações – União
4


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
CSG
Operações – União
5
sphere {
<0,5,0> 4
texture {
T_Glass1 // T_Wood34
}
union {
sphere {
<0,5,0> 4
}
}
cylinder {
<0,3,0>
<0,0,0> 2
}
cylinder {
<0,3,0>
<0,0,0> 2
texture {
T_Glass1 // T_Wood34
}
}
texture {
T_Glass1 // T_Wood34
}
}
CSG
Operações – União
6
Exemplos sem união
Exemplos com união
CSG
Operações – Merge
7


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
CSG
Operações – Merge
8
merge {
sphere {
<0,5,0> 4
union
}
cylinder {
<0,3,0>
<0,0,0> 2
}
texture {
T_Glass1
}
}
merge
CSG
Operações – Diferença
9


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
CSG
Operações – Diferença
10
difference {
sphere {
<0,5,0> 4
texture {
pigment {Red}
}
}
cylinder {
<1,6,-4>
<-1,4,4> 1.5
texture {
pigment {Blue}
}
}
}
CSG
Operações – Diferença
11
União
Diferença
CSG
Operações – Diferença
12

A textura também pode ser aplicada na diferença
difference {
sphere {
<0,5,0> 4
}
cylinder {
<1,6,-4>
<-1,4,4> 1.5
}
texture {
pigment {Red}
}
}
CSG
Operações – Intersecção
13


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
CSG
Operações – Intersecção
14
União
Diferença
Intersecção
CSG
Operações – Intersecção
15
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
CSG
Exercício
16
Download

CSG