Prenons ligne par ligne..
vec3 heightTex = texture2D(parallaxMap, texCoord).xyz;
Il semblerait que l'on veuille recupérer les coordonnées de hauteurs définie dans une texture "parallaxMap". On ne récupère que les 3 première coordonnées ( .xyz )
float height = scale * heightTex - bias;
Ici, on veut récupérer la hauteur thèorique de ton fragment avec une mise à l'echelle et camplée. Si ta texture est en niveau de gris, tes trois composantes (r, g et b ) sont toujours identique donc il te suffit de remplacer heightTex par heightTex.r, heightTex.g ou heightTex.b.
vec2 newTexCoord = height * viewDir + texCoord;
Ici, on calcule de nouvelles coordonnées de texture (diffuse certainement). viewDir etant un vec3, je suppose qu'il veut récupérer les deux premières, ou les deux dernière ... a voir ... mais tu peux faire un truc du genre : viewDir.xy ou viewDir.xz ...
Partager