Question

Je travaille avec le tampon de profondeur OpenGL (JOGL) pour assurer certains éléments sont rendus devant les autres en désactivant la mémoire tampon de profondeur (détaillée dans ma question précédente Java sauver OpenGL tampon de profondeur).

Cela fonctionne, sauf quand je mets la couleur d'un élément qui est en cours d'élaboration lorsque le test de profondeur est désactivée, aucun des matériaux shininess apparaît. L'article est rendu sous la forme d'une version plus sombre de la couleur d'origine (il semble qu'il n'y ait pas d'effet à elle d'éclairage vraiment appliqué). Y at-il une raison pour laquelle cela se passe? et comment pourrais-je empêcher cela?

merci, Jeff

Était-ce utile?

La solution

Depuis que vous avez obtenu aucune réponse à ce jour, je vais essayer de donner mon coup, même si je suis vraiment un peu deviner ici.

Quelques raisons que je peux imaginer, pourquoi l'effet que vous voyez se passerait-il:

  • Contrairement à la température ambiante et composante diffuse du modèle d'éclairage, la composante spéculaire doit tenir compte de l'emplacement des yeux par rapport à l'objet et la source lumineuse. Donc, ce sera probablement plus rapide, lorsque OpenGL utilise la mémoire tampon de profondeur. Je suppose, que cette façon - pour chaque pixel à tirer - il pourrait utiliser la valeur de profondeur pour compléter l'œil les coordonnées avec le composant z

  • .
  • Peut-être est lié aussi à atténuation de la lumière? Lorsque atténuation de la lumière est utilisée, OpenGL calcule la distance, que la lumière doit parcourir avant d'atteindre votre oeil (ou est-ce que par simplifier le calcul de la distance entre la lumière et l'objet? Je ne sais pas.)

Je suppose, qu'il est impossible d'utiliser l'éclairage correctement sans un tampon de profondeur. Je pense que vous avez mentionné dans votre autre poste, que vous ne pouvez pas effacer la mémoire tampon de profondeur, car il interférerait avec le reste de l'application? Je pense qu'il devrait y avoir une solution avec des pochoirs, quelque chose de similaire à « Exemple 10-1: Utilisation du test Pochoir » dans http://www.glprogramming.com/red/chapter10.html (il est écrit en C, mais je l'espère, il est similaire à JOGL). Le pochoir serait tout simplement interdire l'application restante du dessin sur vos pixels précieux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top