Fix shader transform errors

This commit is contained in:
Atlante45 2015-11-23 15:19:41 -08:00
parent 9adc437553
commit 28c8cf26f5
2 changed files with 7 additions and 8 deletions

View file

@ -128,7 +128,7 @@ void main(void) {
vec4 clipPos; vec4 clipPos;
vec4 eyePos = vec4(anchorPoint.xyz + quadPos.xyz, 1.0); vec4 eyePos = vec4(anchorPoint.xyz + quadPos.xyz, 1.0);
<$transformEyeToClip(cam, eyePos, clipPos)$> <$transformEyeToClipPos(cam, eyePos, clipPos)$>
gl_Position = clipPos; gl_Position = clipPos;

View file

@ -76,11 +76,10 @@ TransformCamera getTransformCamera() {
<@func $transformModelToEyePos(cameraTransform, objectTransform, modelPos, eyePos)@> <@func $transformModelToEyePos(cameraTransform, objectTransform, modelPos, eyePos)@>
<!// Equivalent to the following but hoppefully a tad more accurate <!// Equivalent to the following but hoppefully a tad more accurate
//return camera._projection * camera._view * object._model * pos; !> //return camera._view * object._model * pos; !>
{ // transformModelToEyePos { // transformModelToEyePos
vec4 _worldpos = (<$objectTransform$>._model * <$modelPos$>); vec4 _worldpos = (<$objectTransform$>._model * vec4(<$modelPos$>.xyz, 1.0));
<$eyePos$> = (<$cameraTransform$>._view * _worldpos); <$eyePos$> = (<$cameraTransform$>._view * _worldpos);
// <$eyePos$> = (<$cameraTransform$>._projectionInverse * <$clipPos$>);
} }
<@endfunc@> <@endfunc@>
@ -145,13 +144,13 @@ TransformCamera getTransformCamera() {
<@func transformClipToEyeDir(cameraTransform, clipPos, eyeDir)@> <@func transformClipToEyeDir(cameraTransform, clipPos, eyeDir)@>
{ // transformClipToEyeDir { // transformClipToEyeDir
<$eyeDir$> = vec3(<$cameraTransform$>._projectionInverse * vec4(<$clipPos$>.xyz, 1.0)); <$eyeDir$> = vec3(<$cameraTransform$>._projectionInverse * vec4(<$clipPos$>.xyz, 0.0));
} }
<@endfunc@> <@endfunc@>
<@func transformEyeToClip(cameraTransform, eyePos, clipPos)@> <@func transformEyeToClipPos(cameraTransform, eyePos, clipPos)@>
{ // transformEyeToClip { // transformEyeToClipPos
<$clipPos$> = <$cameraTransform$>._projection * <$eyePos$>; <$clipPos$> = <$cameraTransform$>._projection * vec4(<$eyePos$>.xyz, 1.0);
} }
<@endfunc@> <@endfunc@>