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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

<strong>de</strong> Computação Gráfica que utilizam mo<strong>de</strong>los digitalizados ou mo<strong>de</strong>los criados por artistas gráficos.<br />

Assim, para um caso geral, os vetores normais <strong>de</strong>vem ser calculados apenas a partir das informações<br />

da malha geométrica. Gouraud [1971] foi o primeiro a tratar <strong>de</strong> tal problema com o objetivo <strong>de</strong><br />

simular a iluminação <strong>de</strong> superfícies suaves a partir <strong>de</strong> malhas poligonais. O vetor normal a um vértice<br />

é aproximado através da normalização da soma <strong>de</strong> todos os vetores normais às faces adjacentes ao<br />

vértice. Assim, o vetor normal <strong>de</strong> cada face contribui igualmente para o cálculo da normal ao vértice,<br />

que é uma média dos vetores normais <strong>de</strong>ssas faces.<br />

Thürmer and Wüthrich [1998] propuseram um algoritmo semelhante ao <strong>de</strong> Gouraud [1971], mas<br />

no qual a soma dos vetores normais às faces é pon<strong>de</strong>rada <strong>de</strong> acordo com o ângulo compreendido<br />

entre as duas arestas <strong>de</strong> cada face, adjacentes ao vértice. Assim, faces com maiores ângulos <strong>de</strong><br />

incidência terão um peso maior no cálculo da média no vértice. Chen and Schmitt [1992] e Taubin<br />

[1995] propuseram métodos parecidos, mas com pesos <strong>de</strong>terminados pela área das faces em vez dos<br />

ângulos <strong>de</strong> incidência. Max [1999] também propôs métodos com pon<strong>de</strong>ração baseada na área das<br />

faces, e comparou seus resultados com diferentes tipos <strong>de</strong> superfícies analíticas <strong>de</strong> modo a validá-<br />

las. Em especial, uma <strong>de</strong> suas técnicas consiste em pon<strong>de</strong>rar o vetor normal <strong>de</strong> cada face pelo valor<br />

recíproco do produto entre os comprimentos das arestas adjacentes. Os resultados mostram que esta<br />

estratégia aproxima localmente a superfície <strong>de</strong> uma esfera. De fato, em uma esfera discretizada, o<br />

algoritmo <strong>de</strong> Max [1999] produz normais exatas em cada vértice, in<strong>de</strong>pen<strong>de</strong>ntemente do refinamento<br />

da geometria.<br />

Praticamente todas as <strong>de</strong>mais técnicas <strong>de</strong> estimativa do vetor normal em malhas poligonais são<br />

baseadas no cálculo da média dos vetores normais das faces inci<strong>de</strong>ntes em cada vértice. Apesar <strong>de</strong>ssa<br />

varieda<strong>de</strong> <strong>de</strong> técnicas, não há consenso a respeito <strong>de</strong> qual <strong>de</strong>las é a mais efetiva, uma vez que isso<br />

<strong>de</strong>pen<strong>de</strong> essencialmente da configuração dos mo<strong>de</strong>los utilizados. Na prática, a técnica <strong>de</strong> Gouraud<br />

[1971] ainda é a mais utilizada em razão <strong>de</strong> sua simplicida<strong>de</strong>.<br />

Nas atuais GPUs, o processador <strong>de</strong> vértices não é capaz <strong>de</strong> acessar as informações <strong>de</strong> adjacência<br />

<strong>de</strong> cada vértice processado, nem os atributos dos vértices que participam <strong>de</strong>ssas relações <strong>de</strong> adjacên-<br />

cia. Por outro lado, a estimativa <strong>de</strong> elementos <strong>de</strong> geometria diferencial <strong>de</strong> primeira or<strong>de</strong>m <strong>de</strong>pen<strong>de</strong><br />

fundamentalmente <strong>de</strong>ssas informações. O cálculo <strong>de</strong> vetores normais aos vértices requer informações<br />

tais como o número <strong>de</strong> faces compartilhadas por um vértice ou a posição dos três vértices que com-<br />

põem um triângulo. Para o cálculo <strong>de</strong> vetores tangentes e bitangentes utilizados em mapeamento <strong>de</strong><br />

<strong>de</strong>talhes <strong>3D</strong>, também é necessário o acesso às coor<strong>de</strong>nadas <strong>de</strong> textura <strong>de</strong> cada vértice da relação <strong>de</strong><br />

adjacência.<br />

Explorando a funcionalida<strong>de</strong> <strong>de</strong> amostrar texturas diretamente no processador <strong>de</strong> vértices <strong>de</strong> pla-<br />

cas gráficas compatíveis com o mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r 3.0 [Microsoft, 2006], Calver [2004] propôs a<br />

codificação <strong>de</strong> dados <strong>de</strong> adjacência e atributos <strong>de</strong> vértices como cores <strong>de</strong> elementos <strong>de</strong> texturas (tex-

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

Saved successfully!

Ooh no, something went wrong!