2016-01-22 2 views
0

J'ai un géotiff de SRTM. Je l'envoie sur GPU, dans un vertex shader en tant que sampler2D. Ainsi je l'ai comme un uniforme de sampler2D. Tout ce que je veux, c'est lire les données de hauteur de que sampler2D (dans vertex shader). Je ne veux pas utiliser gl_Vertex.Lecture des valeurs de hauteur à partir de la texture dans le vertex shader

+0

la hauteur de passe comme uniforme. Parce que la hauteur d'une texture reste la même tout au long de sa durée de vie, il est hautement improbable qu'elle soit manipulée au moment de l'exécution (dans ce cas, cela serait coûteux et inefficace). – Poriferous

+0

la technique est appelée 'vertex displacement', cherchez-la ... –

+0

@Poriferous: Les données de la texture * est la hauteur *. Le point entier de ce qu'il demande est la capacité pour la taille d'être définie par des endroits stockés dans une texture. Ce n'est pas une valeur "uniforme" car elle passe du sommet au sommet. –

Répondre

1

La fonctionnalité que vous cherchez s'appelle Vertex Texture Fetch. Il ya un article on the OpenGL wiki plus ancien, mais essentiellement vous liez la texture à une unité de texture, assurez-vous que l'échantillonneur 2D uniforme est défini sur la même unité de texture, puis appelez texture2D(myTex, coords) dans votre shader. Vos coordonnées peuvent être configurées de plusieurs façons, mais l'objectif est de simplifier la transformation d'une coordonnée de sommet en coordonnées de texture dans la plage [0, 1].