fixing the wrong matrix used

This commit is contained in:
Sam Gateau 2015-06-08 03:07:17 -07:00
parent de61f4ea0b
commit 5e04b399d8
2 changed files with 6 additions and 4 deletions

View file

@ -86,6 +86,8 @@ TransformCamera getTransformCamera() {
return camera; return camera;
} }
uniform mat4 cameraTransform_viewInverse;
<@endif@> <@endif@>
<@endfunc@> <@endfunc@>
@ -109,10 +111,10 @@ TransformCamera getTransformCamera() {
//return camera._projection * camera._view * object._model * pos; !> //return camera._projection * camera._view * object._model * pos; !>
{ // transformModelToClipPos { // transformModelToClipPos
vec4 _worldpos = (<$objectTransform$>._model * <$modelPos$>); vec4 _worldpos = (<$objectTransform$>._model * <$modelPos$>);
// <$eyePos$> = (<$cameraTransform$>._viewInverse * _worldpos); <$eyePos$> = (<$cameraTransform$>._view * _worldpos);
vec4 _eyepos =(<$objectTransform$>._model * <$modelPos$>) + vec4(-<$modelPos$>.w * <$cameraTransform$>._viewInverse[3].xyz, 0.0); vec4 _eyepos =(<$objectTransform$>._model * <$modelPos$>) + vec4(-<$modelPos$>.w * <$cameraTransform$>._viewInverse[3].xyz, 0.0);
<$clipPos$> = <$cameraTransform$>._projectionViewUntranslated * _eyepos; <$clipPos$> = <$cameraTransform$>._projectionViewUntranslated * _eyepos;
<$eyePos$> = (<$cameraTransform$>._projectionInverse * <$clipPos$>); // <$eyePos$> = (<$cameraTransform$>._projectionInverse * <$clipPos$>);
} }
<@else@> <@else@>
<$eyePos$> = gl_ModelViewMatrix * <$modelPos$>; <$eyePos$> = gl_ModelViewMatrix * <$modelPos$>;
@ -144,7 +146,7 @@ TransformCamera getTransformCamera() {
<$worldDir$> = vec3(<$cameraTransform$>._viewInverse * vec4(<$eyeDir$>.xyz, 0.0)); <$worldDir$> = vec3(<$cameraTransform$>._viewInverse * vec4(<$eyeDir$>.xyz, 0.0));
} }
<@else@> <@else@>
<$worldDir$> = vec3(gl_ModelViewMatrixInverse * vec4(<$eyeDir$>.xyz, 0.0)); <$worldDir$> = vec3(cameraTransform_viewInverse * vec4(<$eyeDir$>.xyz, 0.0));
<@endif@> <@endif@>
<@endfunc@> <@endfunc@>

View file

@ -40,6 +40,6 @@ void main(void) {
TransformObject obj = getTransformObject(); TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, gl_Vertex, interpolatedPosition, gl_Position)$> <$transformModelToEyeAndClipPos(cam, obj, gl_Vertex, interpolatedPosition, gl_Position)$>
<$transformModelToEyeDir(cam, obj, gl_Normal, interpolatedNormal.xyz)$> <$transformModelToEyeDir(cam, obj, gl_Normal, interpolatedNormal.xyz)$>
// interpolatedPosition = (gl_Vertex);
interpolatedNormal = vec4(normalize(interpolatedNormal.xyz), 0.0); interpolatedNormal = vec4(normalize(interpolatedNormal.xyz), 0.0);
} }