Je travaille sur un algorithme de mappage d'ombre, et je voudrais déboguer la carte de profondeur qu'il génère lors de sa première passe. Cependant, les textures de profondeur ne semblent pas s'afficher correctement dans la fenêtre. Existe-t-il un moyen simple d'afficher une texture en profondeur en tant qu'image en niveaux de gris, de préférence sans utiliser de shader?Comment visualiser une texture de profondeur dans OpenGL?
Répondre
Les textures de profondeur (2D) peuvent être utilisées comme n'importe quelle texture en niveaux de gris. Le seul problème pourrait être que les valeurs à l'intérieur sont trop élevées et vous ne voyez qu'une texture blanche. Si c'est le cas, jouez avec les plans z-near et -far qui sont utilisés lors de la création de la texture de profondeur (ou mettez à l'échelle les valeurs avec un shader ou peut-être glTexEnv).
Bien sûr, il suffit de lier votre texture de profondeur à votre texture préférée, d'activer la texturation et de dessiner un quad 2D! Vous pouvez également dimensionner le quadrilatère pour ne remplir qu'une partie de l'écran afin de pouvoir visualiser l'image en temps réel. OpenGL a aussi des fonctions qui peuvent copier la texture dans un tableau pour vous. Vous pouvez enregistrer cela en tant qu'image et utiliser une visionneuse d'image pour l'afficher.
Vous devrez peut-être modifier les paramètres de texture de profondeur pour l'afficher en tant que niveaux Niveaux de gris:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE)
glTexParameteri(GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE)
Vous pouvez alors utiliser normalement la texture comme échelle de gris « normale » texture 2d, soit par fonction fixe, ou 'sampler2d' uniforme de shader.
Aha, je n'ai pas vu que la question originale est si ancienne. En tous cas... – rotoglup
- 1. OpenGL et texture monochrome
- 2. Couleur mappant une texture dans opengl
- 3. Comment gérer une texture de cache dans OpenGL?
- 4. OpenGL ES profondeur tampon
- 5. Changer l'opacité de la texture dans OpenGL
- 6. Suppression d'artefacts de texture OpenGL
- 7. Comment les valeurs de profondeur sont-elles résolues dans les textures OpenGL lors du multi-échantillonnage?
- 8. Texture OpenGL combinant pas (toujours) de travail
- 9. Problème de lumière et de profondeur dans OpenGL
- 10. Comment puis-je appliquer une matrice de transformation de couleur à une texture dans OpenGL
- 11. iPhone OpenGL ES 2d texture d'arrière-plan
- 12. Comment retourner une image/texture dans OpenGLES?
- 13. Mettre en mosaïque le fichier bmp texture comme texture sur un rectangle dans OpenGL?
- 14. Comment lier un PImage à une texture dans Traitement à l'aide de jogl (OpenGL droit)
- 15. Conversion d'un échantillon de texture de la profondeur à une distance
- 16. Notions élémentaires de la texture 2D pour iPhone OpenGL ES
- 17. Dans OpenGL ES, comment charger une texture avec des pixels transparents?
- 18. Récupération de pixels à partir d'une texture préalablement liée - OpenGL
- 19. OpenGL ES - Changer la teinte des couleurs en texture
- 20. Comment configurer correctement la scène OpenGL pour visualiser des objets uniques
- 21. Visualiser le code impliqué dans une action?
- 22. Draw Commande dans OpenGL
- 23. Copiez un bloc de pixels de taille arbitraire dans la texture OpenGL ES ... en quelque sorte?
- 24. Auto-Référencement Renderbuffers dans OpenGL
- 25. Problème de mappage de texture dans OpenGLES
- 26. Comment visualiser des données audio?
- 27. Comment représenter une profondeur de couleur de 16 bits à une profondeur de couleur de 18 bits?
- 28. Obtenir le tampon de profondeur de QGLPixelBuffer
- 29. Visualiser B-Spline dans .NET
- 30. Chargement d'une nouvelle texture dans un nom de texture déjà défini
Pouvez-vous nous montrer comment vous le configurez, de sorte qu'il ne fonctionne pas correctement? Il y a plusieurs façons de le faire, donc si nous pouvons réparer le vôtre, ce sera plus facile que de devoir mettre un paquet de code étranger. –