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.

[principal]

[anterior]

[próxima]