Model almost working with Transform

This commit is contained in:
Sam Gateau 2015-02-19 09:52:58 -08:00
parent b78106400e
commit 7e04f8a491
2 changed files with 13 additions and 10 deletions

View file

@ -12,7 +12,7 @@
struct TransformObject {
mat4 _model;
mat4 _modelInverseTranspose;
mat4 _modelInverse;
mat4 _modelView;
mat4 _modelViewInverseTranspose;
};
@ -24,10 +24,13 @@ struct TransformCamera {
};
vec4 transform(TransformCamera camera, TransformObject object, vec4 pos) {
return camera._projection * (object._modelView * pos);
}
vec3 transformDir(TransformCamera camera, TransformObject object, vec3 dir) {
return (object._modelViewInverseTranspose * vec4(dir, 0.0)).xyz;
}
<@if GLPROFILE == PC_GL@>
uniform transformObjectBuffer {

View file

@ -36,8 +36,6 @@ void main(void) {
void main(void) {
// transform and store the normal for interpolation
normal = normalize(gl_ModelViewMatrix * vec4(gl_Normal, 0.0));
// pass along the diffuse color
gl_FrontColor = gl_Color;
@ -49,10 +47,12 @@ void main(void) {
//gl_Position = ftransform();
//gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
//gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;
//TransformCamera cam = getTransformCamera();
/* TransformObject obj = getTransformObject();
// gl_Position = transform(cam, obj, gl_Vertex);
*/
vec4 vPos = gl_ModelViewMatrix * gl_Vertex;
gl_Position = camera._projection * vPos;
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
gl_Position = transform(cam, obj, gl_Vertex);
// transform and store the normal for interpolation
normal = vec4(normalize(transformDir(cam, obj, gl_Normal)), 0.0);
}