2009-03-25 5 views
3

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?

+0

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. –

Répondre

2

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).

0

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.

8

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.

+0

Aha, je n'ai pas vu que la question originale est si ancienne. En tous cas... – rotoglup

Questions connexes