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.

4.3 Resultados 81<br />

4.3.1 Elementos <strong>de</strong> primeira or<strong>de</strong>m<br />

Para testar a abordagem proposta <strong>de</strong> estimativa <strong>de</strong> bases tangentes (vetor normal, vetor tangente<br />

e vetor bitangente), implementamos um conjunto <strong>de</strong> três sha<strong>de</strong>rs HLSL compatíveis com o mo<strong>de</strong>lo<br />

<strong>de</strong> sha<strong>de</strong>r 3.0. Cada sha<strong>de</strong>r realiza um passo do algoritmo <strong>de</strong>scrito na seção 4.2.1. A listagem dos<br />

códigos-fonte é mostrada no apêndice A.<br />

De modo a validar nossa técnica, implementamos uma aplicação <strong>de</strong> teste em C++/Direct<strong>3D</strong> que<br />

carrega na GPU uma geometria estática e, para cada quadro <strong>de</strong> exibição, <strong>de</strong>sloca cada vértice ao<br />

longo <strong>de</strong> seu vetor normal. O valor <strong>de</strong> <strong>de</strong>slocamento é <strong>de</strong>finido por uma textura volumétrica <strong>de</strong> ruído<br />

<strong>de</strong> Perlin amostrada no processador <strong>de</strong> vértices. O acesso à textura é feito <strong>de</strong> tal modo que um <strong>de</strong><br />

seus eixos está associado ao tempo da animação. Assim, diferentes <strong>de</strong>slocamentos <strong>de</strong> geometria<br />

são produzidos para cada quadro <strong>de</strong> exibição. A geometria é ren<strong>de</strong>rizada com iluminação <strong>de</strong> Phong<br />

avaliada para cada pixel, e normal mapping com texturas <strong>de</strong>finidas no espaço tangente. Para obter<br />

resultados satisfatórios <strong>de</strong> iluminação, utilizamos nossa técnica para recalcular as bases tangentes em<br />

cada quadro. Os mo<strong>de</strong>los utilizados foram esferas com diferentes níveis <strong>de</strong> refinamento da malha. A<br />

aparência final <strong>de</strong> um <strong>de</strong>sses mo<strong>de</strong>los após a <strong>de</strong>formação e aplicação do normal mapping é mostrada<br />

na figura 4.1.<br />

O <strong>de</strong>sempenho <strong>de</strong> nosso algoritmo foi medido em um computador AMD Athlon 64 3500+ <strong>de</strong><br />

2.2GHz e 2GB RAM, equipado com uma placa gráfica NVIDIA GeForce 8800 GTX com 768MB.<br />

Para medir o tempo <strong>de</strong> processamento, não consi<strong>de</strong>ramos o tempo necessário a ren<strong>de</strong>rização com a<br />

finalida<strong>de</strong> <strong>de</strong> exibição dos objetos, uma vez que isto <strong>de</strong>pen<strong>de</strong> largamente das técnicas <strong>de</strong> iluminação<br />

e mapeamento <strong>de</strong> <strong>de</strong>talhes <strong>3D</strong> utilizadas. Assim, nossas medições mostram apenas a sobrecarga do<br />

cálculo das bases tangentes.<br />

O gráfico da figura 4.3 mostra uma comparação do tempo <strong>de</strong> processamento necessário para calcu-<br />

lar, na GPU, bases tangentes completas (normal, tangente, bitangente) e apenas normais aos vértices,<br />

em um mo<strong>de</strong>lo com um número crescente <strong>de</strong> vértices. Como esperado, o tempo <strong>de</strong> processamento<br />

aumenta linearmente com relação ao número <strong>de</strong> vértices. O cálculo dos vetores tangente e bitangente<br />

adiciona uma sobrecarga <strong>de</strong> aproximadamente 40% ao cálculo isolado dos vetores normais aos vér-<br />

tices. Os tempos convergem para aproximadamente 0.2 milissegundos na geometria mais simples.<br />

Esta sobrecarga constante é associada ao ajuste dos estados <strong>de</strong> ren<strong>de</strong>rização para os três passos <strong>de</strong><br />

ren<strong>de</strong>rização.<br />

A figura 4.4 apresenta os tempos <strong>de</strong> processamento para calcular bases tangentes e vetores nor-<br />

mais em um mo<strong>de</strong>lo <strong>de</strong> chaleira composto <strong>de</strong> 15.578 vértices e 30.800 faces, utilizando diferentes<br />

abordagens. Em (A) o cálculo é realizado inteiramente na CPU e os resultados são gravados na tex-<br />

tura <strong>de</strong> atributos <strong>de</strong> vértices utilizada posteriormente na GPU; em (B) o cálculo é realizado na CPU<br />

mas os resultados não são transferidos para os mapas <strong>de</strong> atributos na memória <strong>de</strong> ví<strong>de</strong>o para serem

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

Saved successfully!

Ooh no, something went wrong!