From 987562976a5c09c703211440e70b57caebb61434 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Fri, 20 Feb 2015 14:46:36 -0800 Subject: [PATCH] Fixing the remaining issue with the avatar rendering path --- libraries/gpu/src/gpu/Transform.slh | 39 ++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/libraries/gpu/src/gpu/Transform.slh b/libraries/gpu/src/gpu/Transform.slh index b433f8282d..6f0154a07d 100644 --- a/libraries/gpu/src/gpu/Transform.slh +++ b/libraries/gpu/src/gpu/Transform.slh @@ -24,13 +24,21 @@ struct TransformCamera { }; vec4 transformModelToClipPos(TransformCamera camera, TransformObject object, vec4 pos) { +<@if GLPROFILE == MAC_GL@> + return gl_ModelViewProjectionMatrix * pos; +<@elif GLPROFILE == PC_GL@> vec4 epos = (object._model * pos) + vec4(-pos.w * camera._viewInverse[3].xyz, 0.0); return camera._projectionViewUntranslated * epos; // Equivalent to the following but hoppefully a bit more accurate // return camera._projection * camera._view * object._model * pos; + +<@endif@> } vec3 transformModelToEyeDir(TransformCamera camera, TransformObject object, vec3 dir) { +<@if GLPROFILE == MAC_GL@> + return (gl_NormalMatrix * vec4(dir, 0.0)).xyz; +<@elif GLPROFILE == PC_GL@> vec3 mIr0 = vec3(object._modelInverse[0].x, object._modelInverse[1].x, object._modelInverse[2].x); vec3 mIr1 = vec3(object._modelInverse[0].y, object._modelInverse[1].y, object._modelInverse[2].y); vec3 mIr2 = vec3(object._modelInverse[0].z, object._modelInverse[1].z, object._modelInverse[2].z); @@ -44,6 +52,7 @@ vec3 transformModelToEyeDir(TransformCamera camera, TransformObject object, vec3 dot(mvIc2, dir)); return result; +<@endif@> } <@if GLPROFILE == PC_GL@> @@ -61,21 +70,27 @@ TransformCamera getTransformCamera() { return camera; } <@elif GLPROFILE == MAC_GL@> -uniform vec4 transformStateBuffer[2]; -TransformState getTransformState() { - TransformState xform; - xform._diffuse = transformStateBuffer[0]; - xform._specular = transformStateBuffer[1]; - return xform; +TransformObject getTransformObject() { + TransformObject object; + return object; +} + +TransformCamera getTransformCamera() { + TransformCamera camera; + return camera; } <@else@> -uniform vec4 transformStateBuffer[2]; -TransformState getMaterial() { - TransformState xform; - xform._diffuse = transformStateBuffer[0]; - xform._specular = transformStateBuffer[1]; - return xform; + +TransformObject getTransformObject() { + TransformObject object; + return object; } + +TransformCamera getTransformCamera() { + TransformCamera camera; + return camera; +} + <@endif@>