Hello.

J'essaye de faire du parallax mapping mais ça ne semble fonctionner que quand la caméra est dans certaine position ! pourquoi ?

Si je définit ma caméra comme ceci :
gluLookAt(eye.x, eye.y, eye.z, dir.x, dir.y, dir.z, top.x, top.y, top.z);
est-ce que le vecteur de vue que je doit envoyer à mon fragment shader est-il égal à normalize(dir-eye) ?

Voici le code du vertex shader:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void main()
{
	gl_TexCoord[0] = gl_MultiTexCoord0;
	gl_Position = ftransform();
}
Et le code du fragment shader :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
uniform sampler2D diffuseTexture;	//diffuse texture
uniform sampler2D heightMap;		//height map
 
uniform vec3 viewVector; //dir-eye
 
void main()
{
	float height = texture2D(heightMap, gl_TexCoord[0].st).r;
	float displacement = (height * 0.04) - 0.02;
	vec2 newTexCoord = vec2((normalize(viewVector) * displacement)) + gl_TexCoord[0].st;
 
	gl_FragColor = texture2D(diffuseTexture, newTexCoord);
}
Edit : Est-ce que le "parallax mapping" et le "parallax occlusion mapping" sont la même chose ?

merci