Does anyone knows why happen this?
Shader:
[java]MaterialDef Cube Texture {
MaterialParameters {
TextureCubeMap Texture
Vector3 CameraPosition
Boolean SphereMap
}
Technique {
VertexShader GLSL100 : Shaders/Reflection/Reflection.vert
FragmentShader GLSL100 : Shaders/Reflection/Reflection.frag
WorldParameters {
WorldViewProjectionMatrix
WorldMatrix
NormalMatrix
CameraPosition
}
Defines {
SPHERE_MAP : SphereMap
}
}
}
[/java]
reflection.vert
[java]uniform mat4 g_WorldViewProjectionMatrix;
uniform mat4 g_WorldMatrix;
uniform mat3 g_NormalMatrix;
uniform vec3 m_CameraPosition;
attribute vec3 inPosition;
attribute vec3 inNormal;
varying vec3 m_Reflection;
void main()
{
vec3 Normal = g_NormalMatrix * inNormal;
vec4 Position = g_WorldMatrix * vec4(inPosition,1.0);
m_Reflection = reflect(Position.xyz - m_CameraPosition, normalize(Normal));
m_Reflection = vec3(m_Reflection.x, -m_Reflection.yz);
gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1.0);
}[/java]
Relfection.frag
[java]uniform samplerCube m_Texture;
varying vec3 m_Reflection;
void main()
{
gl_FragColor = textureCube(m_Texture, m_Reflection);
}[/java]