Bonjour,
Comment on peut enregistrer des donner (float) sur une texture et les récupérer dans le fragment shader?
Merci d'avance
Bonjour,
Comment on peut enregistrer des donner (float) sur une texture et les récupérer dans le fragment shader?
Merci d'avance
passe 1 :
Tu utilise un FBO et tu écris des données dans ta texture.
passe 2 :
tu utilises cette texture avec un fragment shader.
Il faut :
- déclarer une variable sampler dans le shader
- binder la texture sur l'unité de texture i
- envoyer i comme valeur du sampler
- appeler une fonction de texturing dans le shader avec ce sampler
Le nombre réel serait alors stocké en 4 octets (en occupant la place d'un pixel RGBA). Le problème est de relire ces 4 octets sous la forme d'un réel (float) à partir d'un vec4 qui est le retur de la fonction de texture2D.
Merci d'avance
ta texture attaché au pipeline n'est pas forcément du R8G8B8A8, tu peux très bien avoir une texture en R32 et ne lire que la composante x avec ton texture2D.
Partager