Constructive Solid Geometry
Origem: Wikipédia, a enciclopédia livre.
Constructive Solid Geometry (CSG, ou Geometria de Construção de Sólidos) é uma das técnica para modelagem de sólidos por meio de operações boolenanas. O princípio básico implica na construção de um modelo complexo a partir de um conjunto de primitivas recorrendo-se de uma série de operações booleanas sequenciais alternadas ou não, tipicamente a União, Interesecção e a Diferença. A modelagem através do uso de CSG possui inúmeras aplicações, entre elas é claro jogos, estando presente tanto na engine do jogo Unreal, assim como o Editor do Quake.
Índice |
[editar] Técnicas de construção
Existem várias maneiras para modelarmos uma primitivas usando CSG:
[editar] SMC
SMC, ou Set Membership Classification, consiste em traçarmos uma série de segmentos paralelos através figura, identificando 3 regiões importantes pertinentes a cada segmento: o conjunto de pontos na fronteira, o conjuntos de pontos dentro da figura e o conjunto de pontos fora da figura. Uma outra alternativa é verificarmos exaustivamente ponto a ponto, os mesmos três conjuntos, também chamado de PMC ou Point Membership Classification, contudo esta técnica embora mais precisa é mais onerosa que a anterior.
[editar] Implementação
Exemplo de algoritmo de CSG com SMC em C:
typedef struct arvoreCSG{ char operacao; void *desenho; struct arvoreCSG *direita; struct arvoreCSG *esquerda; } TarvoreCSG; TpilhaSegmentos* combine(TpilhaSegmentos* A, TpilhaSegmentos* B, char op) {} TpilhaSegmentos* constroiCSG(TarvoreCSG *C, Tponto *P){ switch((*C).operacao){ case 'E': return smc_Esfera(NULL, (Tesfera*)((*C).desenho), P); case 'C': return smc_Hexaedro(NULL, (Thexaedro*)((*C).desenho), P); default: return combine( constroiCSG((*C).esquerda, P), constroiCSG((*C).direita, P), (*C).operacao ); } }
[editar] Ligações externas
A Study of Geometric Set-Membership Classification Tilove, Robert B.
OpenCSG : The CSG rendering library