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.

4.1 Estimativas em superfícies discretas 69<br />

<strong>de</strong>talhes <strong>3D</strong>, essa base é utilizada para transformar o vetor <strong>de</strong> direção da fonte <strong>de</strong> luz Los do espaço<br />

do objeto ao vetor Lts no espaço tangente, usando a seguinte matriz:<br />

Lts =<br />

⎡<br />

⎢<br />

⎣<br />

Tx Ty Tz<br />

Bx By Bz<br />

Nx Ny Nz<br />

⎤<br />

⎥<br />

⎦ Los. (4.4)<br />

A operação <strong>de</strong> ortogonalização é feita usando Gram-Schmidt em T com relação a N:<br />

T ′ = T − (N · T )N. (4.5)<br />

O vetor bitangente B é então obtido do produto vetorial entre T ′ e N. Entretanto, precisamos<br />

consi<strong>de</strong>rar que a regra <strong>de</strong> mão utilizada em cada face (N × T ou T × N) não é conhecida e po<strong>de</strong><br />

variar entre as faces. Isso ocorre, por exemplo, quando uma textura é mapeada <strong>de</strong> forma espelhada<br />

sobre a superfície. Este é um procedimento comum em aplicativos <strong>de</strong> jogos, para diminuir o consumo<br />

<strong>de</strong> memória <strong>de</strong> ví<strong>de</strong>o. Para manter a consistência <strong>de</strong> que o vetor normal da superfície <strong>de</strong>ve apontar<br />

na mesma direção do vetor normal no espaço tangente (e.g., para fora do mo<strong>de</strong>lo), a regra <strong>de</strong> mão<br />

<strong>de</strong>verá ser invertida nas faces com mapeamento espelhado. Para isso, o vetor B <strong>de</strong>verá ser calculado<br />

da forma indicada na equação 4.3, e não simplesmente através do produto vetorial entre N e T .<br />

Assim como as normais aos vértices são calculadas a partir da suposição <strong>de</strong> que a malha triangular<br />

aproxima uma superfície suave, assim também as bases tangentes são calculadas: inicialmente nas<br />

faces e <strong>de</strong>pois pon<strong>de</strong>radas e convertidas em bases ortonormais nos vértices.<br />

4.1.2 Elementos <strong>de</strong> segunda or<strong>de</strong>m<br />

A estimativa <strong>de</strong> elementos <strong>de</strong> geometria diferencial <strong>de</strong> segunda or<strong>de</strong>m em superfícies discretas<br />

tem sido estudada extensivamente nos últimos anos em razão do surgimento <strong>de</strong> um gran<strong>de</strong> número<br />

<strong>de</strong> aplicações que fazem uso <strong>de</strong>stes elementos (e.g., reamostragem, filtragem, ren<strong>de</strong>rização não fo-<br />

torealista, interação). Diversas abordagens para solução <strong>de</strong>ste problema foram apresentadas e se<br />

distinguem entre si especialmente com relação à robustez da estimativa ante diferentes configurações<br />

da malha da geometria, mas também pela simplicida<strong>de</strong> <strong>de</strong> implementação e <strong>de</strong>sempenho. Vamos nos<br />

concentrar aqui nas propostas utilizadas para estimar o tensor <strong>de</strong> curvatura IIs e assim <strong>de</strong>terminar as<br />

curvaturas e direções principais.<br />

Todas as técnicas <strong>de</strong> estimativa do tensor <strong>de</strong> curvatura que analisamos consi<strong>de</strong>ram que as curvas<br />

coor<strong>de</strong>nadas <strong>de</strong> S são ortogonais, <strong>de</strong> modo que IIs é a própria matriz <strong>de</strong> Weingarten. Através do<br />

acesso a uma região <strong>de</strong> vértices, arestas ou faces adjacentes a cada vértice da geometria, obtém-se<br />

uma estimativa <strong>de</strong> IIs para cada vértice. A estimativa correspon<strong>de</strong>nte para cada ponto da superfície é

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

Saved successfully!

Ooh no, something went wrong!