Fixing the remaining issue with the avatar rendering path

This commit is contained in:
Sam Gateau 2015-02-20 14:46:36 -08:00
parent 4e2d2bc188
commit 987562976a

View file

@ -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@>