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.

104 <strong>Arquitetura</strong> <strong>de</strong> interação<br />

Fig. 5.1: Esquerda: objeto visualizado com mo<strong>de</strong>lo <strong>de</strong> iluminação <strong>de</strong> Blinn. Direita: visualização do<br />

valor <strong>de</strong> profundida<strong>de</strong> <strong>de</strong> cada pixel, mapeado em tons <strong>de</strong> cinza.<br />

do OpenGL. Na API Direct<strong>3D</strong>, é utilizado o comando D<strong>3D</strong>XVec3Unproject(), da biblio-<br />

teca D<strong>3D</strong>X. Neste caso, o valor wwindow correspon<strong>de</strong> a zeye. Para transformações ortográficas,<br />

wwindow = 1.<br />

<strong>Uma</strong> visualização do atributo <strong>de</strong> profundida<strong>de</strong> calculado para cada pixel no buffer <strong>de</strong> ren<strong>de</strong>ri-<br />

zação não visível, e codificado em tons <strong>de</strong> cinza, é mostrado na figura 5.1. A intensida<strong>de</strong> do<br />

tom <strong>de</strong> cinza é proporcional à profundida<strong>de</strong> dos pontos da superfície: quanto mais claro, maior<br />

a profundida<strong>de</strong>. Como referência, o mo<strong>de</strong>lo ren<strong>de</strong>rizado com iluminação <strong>de</strong> Blinn [1977] tam-<br />

bém é mostrado.<br />

• Vetor normal. O vetor normal po<strong>de</strong> ser fornecido pela aplicação em conjunto com os atribu-<br />

tos do mo<strong>de</strong>lo original, ou po<strong>de</strong> ser calculado na GPU segundo uma adaptação do algoritmo<br />

tradicional <strong>de</strong> Gouraud [1971] para a arquitetura <strong>de</strong> processamento <strong>de</strong> fluxo.<br />

Cada coor<strong>de</strong>nada é armazenada em uma componente <strong>de</strong> cor do pixel (e.g., 〈r, g, b〉 = 〈x, y, z〉<br />

para um buffer <strong>de</strong> ren<strong>de</strong>rização com formato RGB). O vetor normal armazenado é sempre<br />

normalizado.<br />

<strong>Uma</strong> visualização <strong>de</strong>sse atributo é mostrada na figura 5.2 em cores falsas. Nesta figura, as<br />

componentes do vetor são normalizadas e mapeadas para valores RGB através da equação<br />

〈r, g, b〉 = (〈x, y, z〉 + 〈1, 1, 1〉)/2.<br />

• Vetores tangentes para mapeamento <strong>de</strong> <strong>de</strong>talhes <strong>3D</strong>. Tais vetores (vetor tangente e vetor<br />

bitangente) são perpendiculares entre si e alinhados segundo o mapeamento das coor<strong>de</strong>nadas<br />

<strong>de</strong> textura no mo<strong>de</strong>lo. Juntamente com o vetor normal, formam uma base <strong>de</strong> coor<strong>de</strong>nadas<br />

utilizada para mapear as coor<strong>de</strong>nadas do espaço do objeto para as coor<strong>de</strong>nadas do espaço <strong>de</strong>

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

Saved successfully!

Ooh no, something went wrong!