Pregunta

He estado trabajando con el buffer de profundidad en OpenGL (JOGL) para asegurar ciertos elementos se representan frente a los demás mediante la desactivación del buffer de profundidad (detallado en mi pregunta anterior Java OpenGL profundidad ahorro de búfer ).

esto funciona, excepto cuando me puse el color de un elemento que se está elaborando cuando la prueba de la profundidad está desactivada, ninguno de los espectáculos brillo del material hacia arriba. El artículo se representa como una versión más oscura del color original (que parece que no hay un efecto de iluminación realmente aplicada a ella). ¿Hay una razón por la cual esto estaría sucediendo? y cómo podría yo prevenir esto?

gracias, Jeff

¿Fue útil?

Solución

Desde que tienes no hay respuestas hasta el momento, voy a tratar de darle mi tiro, aunque estoy realmente un poco adivinando.

Algunas razones que puedo imaginar, por qué el efecto que se ve que sucedería:

  • En contraste con el ambiente y difuso componente del modelo de iluminación, las necesidades componente especular para tener en cuenta la ubicación ojo con respecto al objeto y fuente de luz. Por lo que este será probablemente más rápido, cuando OpenGL utiliza el búfer de profundidad. Asumo, que de esta manera - para cada píxel que se puede extraer - se podría utilizar el valor de profundidad para completar las coordenadas de los ojos con el componente z

  • .
  • Tal vez está también relacionada con la atenuación de la luz? Cuando se utiliza atenuación de la luz, OpenGL calcula la distancia, que la luz tiene que viajar antes de llegar a su ojo (o lo hace sólo por simplificar el cálculo de la distancia entre la luz y el objeto? No estoy seguro.)

Así que supongo, que no es posible utilizar la iluminación correctamente sin un buffer de profundidad. Creo que usted mencionó en su otro post, que no se puede simplemente borrar el buffer de profundidad, ya que podría interferir con el resto de la aplicación? Creo que debe ser una solución con plantillas, algo similar a "Ejemplo 10-1: Utilizando la prueba de la plantilla" en http://www.glprogramming.com/red/chapter10.html (que está escrito en C, pero espero que sea similar en JOGL). La plantilla se limitaría a impedir la aplicación de dibujo que queda sobre sus preciosos píxeles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top