Desenho de objetos em OpenGL -- Computação Gráfica |
jSSeção 4.7 |
4.7. Remoção de Superfícies Escondidas |
Existe um problema na visualização de imagens conhecido como problema das superfícies escondidas. Estes podem ser resolvidos através de algoritmos que desenham superfícies visíveis ou que removem superfícies escondidas. Podemos citar como um desses algoritmos o z-buffer ou depth-buffer, sendo este descrito no OpenGL. Para habilitar a remoção de superfícies escondidas é necessário o seguinte comando: >> glEnable( GL_DEPTH_TEST) ; O programador pode "resetar" o buffer quando for necessário um novo desenho através do comando: >> glClear (GL_DEPTH_BUFFER_BIT ); Abaixo é ilustrado o efeito da remoção de superfícies removidas:
|
||||
Remoção de Superfícies Escondidas Desabilitada |
d | Remoção de Superfícies Escondidas Habilitada | ||
|
|
|||
É importante observar que quando a
remoção de superfícies escondidas está desabilitada a pirâmide de
base azul e faces laranjas mesmo estando atrás da pirâmide de base
laranja fica por cima dela, isso se deve ao fato dela ser desenhada por
último. Já no outro desenho, onde a remoção de superfícies escondidas
está habilitada, observamos claramente que a pirâmide de faces laranjas
e base azul tem parte de sua superfície escondida e devido a isso a mesma
não é desenhada.
Caso queira verificar o código do exemplo clique aqui. Além da remoção de superfícies escondidas o exemplo trata de rotação, translação e escala. |
||||
[anterior] |
[próxima] |