03.04.2013 Views

Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp

Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp

Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

84 Cálculo <strong>de</strong> elementos <strong>de</strong> geometria diferencial discreta na GPU<br />

As figuras 4.5 e 4.6 exibem algumas imagens geradas por um aplicativo <strong>de</strong> visualização das pro-<br />

prieda<strong>de</strong>s <strong>de</strong> geometria diferencial <strong>de</strong> segunda e terceira or<strong>de</strong>m estimadas com o nosso algoritmo na<br />

GPU. Na figura 4.5, em (a) é mostrado o mo<strong>de</strong>lo <strong>de</strong> um nó com curvaturas principais visualizadas<br />

como cores. Em (b) é mostrada a curvatura Gaussiana K = κminκmax em tons <strong>de</strong> cinza sobre o<br />

mo<strong>de</strong>lo <strong>de</strong> uma chaleira. Nessa visualização, tons mais escuros e mais claros correspon<strong>de</strong>m, respec-<br />

tivamente, a curvaturas negativas e positivas. O tom <strong>de</strong> cinza médio correspon<strong>de</strong> a curvatura zero. É<br />

possível observar que a superfície é localmente hiperbólica quando K < 0 (tons escuros), parabólica<br />

ou planar quando K = 0 (cinza médio), e elíptica quando K > 0 (tons claros). As direções princi-<br />

pais dos mo<strong>de</strong>los da chaleira e nó são mostradas em (c) e (d), respectivamente. As setas vermelhas<br />

apontam para as direções tangentes das curvaturas mínimas, enquanto que as setas ver<strong>de</strong>s apontam<br />

para as direções tangentes das curvaturas máximas. Na figura 4.6, em (a) é visualizada a curvatura<br />

média H = 1<br />

2 (κmin + κmax), em tons <strong>de</strong> cinza, sobre o mo<strong>de</strong>lo <strong>de</strong> um coelho. Em (b) é visualizada<br />

uma codificação em cores da magnitu<strong>de</strong> do tensor <strong>de</strong> <strong>de</strong>rivada <strong>de</strong> curvatura (|Cs| = c 2 1 + c 2 2 + c 2 3 + c 2 4,<br />

on<strong>de</strong> c1, c2, c3 e c4 são os componentes não simétricos do tensor) para o mo<strong>de</strong>lo do coelho.<br />

A figura 4.7 mostra o erro RMS da estimativa da curvatura Gaussiana em um toro, em termos<br />

do grau <strong>de</strong> irregularida<strong>de</strong> na amostragem. O toro, <strong>de</strong> raio interno 1 e raio externo 2, é discretizado a<br />

partir da superfície paramétrica:<br />

⎧<br />

⎪⎨ x = (2 + cos v) cos u<br />

S(u, v) = y = (2 + cos v) sin u<br />

⎪⎩<br />

z = sin v<br />

(4.25)<br />

A discretização utilizada é composta <strong>de</strong> 30 lados na circunferência interna e 60 na circunferência<br />

externa, e utiliza normais aos vértices calculadas segundo o algoritmo <strong>de</strong> Gouraud [1971], que é o<br />

mesmo algoritmo utilizado em nossa estimativa <strong>de</strong> elementos <strong>de</strong> primeira or<strong>de</strong>m.<br />

Para o cálculo do erro, utilizamos como parâmetro <strong>de</strong> comparação aquele obtido pela avaliação<br />

da equação analítica da curvatura Gaussiana nesse mo<strong>de</strong>lo:<br />

K =<br />

cos v<br />

2 + cos v<br />

(4.26)<br />

A figura 4.8 mostra duas ren<strong>de</strong>rizações do toro em wireframe para ilustrar a irregularida<strong>de</strong> <strong>de</strong>ssa<br />

distribuição para os graus respectivos <strong>de</strong> 0% e 100%. O valor <strong>de</strong> 100% correspon<strong>de</strong> ao maior grau<br />

<strong>de</strong> aleatorieda<strong>de</strong> possível antes da introdução <strong>de</strong> triângulos <strong>de</strong>generados. Todos os resultados foram<br />

obtidos com números em formato <strong>de</strong> ponto flutuante <strong>de</strong> precisão simples. Esse gráfico mostra que

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!