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.

50 Atributos elementares para manipulação direta<br />

Fig. 3.2: Seleção usando o modo <strong>de</strong> seleção do OpenGL.<br />

dados associados ao evento <strong>de</strong> interseção entre a geometria e o volume <strong>de</strong> recorte, tais como um<br />

i<strong>de</strong>ntificador numérico <strong>de</strong>finido pela aplicação e utilizado para i<strong>de</strong>ntificar a geometria intersectada, e<br />

valores mínimos e máximos <strong>de</strong> profundida<strong>de</strong> da geometria <strong>de</strong>ntro <strong>de</strong>sse volume <strong>de</strong> recorte. Tais dados<br />

são suficientes para que a aplicação <strong>de</strong>termine o objeto selecionado e a posição <strong>3D</strong> correspon<strong>de</strong>nte ao<br />

ponto <strong>de</strong> seleção. Esse procedimento é realizado sem requerer processamento em um banco <strong>de</strong> dados<br />

da cena na CPU. Para <strong>de</strong>terminar tais dados, o OpenGL utiliza as próprias primitivas enviadas pela<br />

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

Explorando as características do OpenGL, mostramos em [Wu et al., 2003] a possibilida<strong>de</strong> <strong>de</strong><br />

realizar seleção <strong>3D</strong> com o uso do modo <strong>de</strong> seleção (para selecionar objetos convexos) e o buffer<br />

estêncil (para selecionar objetos não convexos), tornando <strong>de</strong>snecessário o uso do algoritmo <strong>de</strong> ray<br />

picking com a existência do mo<strong>de</strong>lo geométrico na CPU. Nesta ocasião, exploramos a idéia utilizar<br />

um conjunto mínimo e suficiente <strong>de</strong> proprieda<strong>de</strong>s geométricas (posição <strong>3D</strong> e vetor normal) do mo<strong>de</strong>lo<br />

para realizar a tarefa <strong>de</strong> seleção e posicionamento restrito.<br />

<strong>Uma</strong> vez que os selection hits são calculados após o processamento <strong>de</strong> vértices, o modo <strong>de</strong> se-<br />

leção leva em consi<strong>de</strong>ração a geometria modificada no estágio <strong>de</strong> processamento <strong>de</strong> vértices da GPU.<br />

Entretanto, a modificação <strong>de</strong> fragmentos no processador <strong>de</strong> fragmentos não é consi<strong>de</strong>rada, já que a<br />

seleção é avaliada antes da rasterização. Além disso, não é possível obter dados geométricos adi-<br />

cionais sobre os pontos <strong>de</strong> interseção, como o vetor normal à superfície nesses pontos. Em [Wu et al.,<br />

2003], o vetor normal ainda é calculado pela aplicação.<br />

Atualmente, as GPUs contam com uma funcionalida<strong>de</strong> <strong>de</strong> consulta <strong>de</strong> visibilida<strong>de</strong> <strong>de</strong> fragmentos,<br />

conhecida como hardware occlusion queries [Microsoft, 2006]. Ao habilitar essa consulta, a GPU<br />

calcula, para todas as primitivas enviadas ao fluxo <strong>de</strong> visualização, a quantida<strong>de</strong> <strong>de</strong> fragmentos que<br />

passam pelo teste <strong>de</strong> profundida<strong>de</strong> e estão <strong>de</strong> fato visíveis na tela. Esse processamento é realizado <strong>de</strong>

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

Saved successfully!

Ooh no, something went wrong!