mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 04:24:07 +02:00
Fixing the remaining issue with the avatar rendering path
This commit is contained in:
parent
4e2d2bc188
commit
987562976a
1 changed files with 27 additions and 12 deletions
|
@ -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@>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue