mirror of
https://github.com/aap/librw.git
synced 2025-12-19 17:09:51 +00:00
implemented matrix flags
This commit is contained in:
@@ -50,10 +50,10 @@ struct UniformLight
|
||||
|
||||
struct UniformObject
|
||||
{
|
||||
Matrix world;
|
||||
RGBAf ambLight;
|
||||
int32 numLights;
|
||||
int32 pad[3];
|
||||
RawMatrix world;
|
||||
RGBAf ambLight;
|
||||
int32 numLights;
|
||||
int32 pad[3];
|
||||
UniformLight lights[MAX_LIGHTS];
|
||||
};
|
||||
|
||||
@@ -221,7 +221,7 @@ resetRenderState(void)
|
||||
void
|
||||
setWorldMatrix(Matrix *mat)
|
||||
{
|
||||
uniformObject.world = *mat;
|
||||
convMatrix(&uniformObject.world, mat);
|
||||
objectDirty = 1;
|
||||
}
|
||||
|
||||
@@ -345,8 +345,7 @@ beginUpdate(Camera *cam)
|
||||
float view[16], proj[16];
|
||||
// View Matrix
|
||||
Matrix inv;
|
||||
// TODO: maybe use matrix flags....
|
||||
Matrix::invertOrthonormal(&inv, cam->getFrame()->getLTM());
|
||||
Matrix::invert(&inv, cam->getFrame()->getLTM());
|
||||
// Since we're looking into positive Z,
|
||||
// flip X to ge a left handed view space.
|
||||
view[0] = -inv.right.x;
|
||||
|
||||
@@ -112,7 +112,7 @@ calcEnvTexMatrix(Frame *f, float32 *mat)
|
||||
inv.pos.z *= -0.5f;
|
||||
|
||||
Matrix m;
|
||||
Matrix::mult(&m, &inv, &cam);
|
||||
Matrix::mult(&m, &cam, &inv);
|
||||
|
||||
memcpy(mat, &m, 64);
|
||||
mat[3] = mat[7] = mat[11] = 0.0f;
|
||||
@@ -429,11 +429,8 @@ updateSkinMatrices(Atomic *a)
|
||||
float *m;
|
||||
m = (float*)skinMatrices;
|
||||
for(int i = 0; i < hier->numNodes; i++){
|
||||
invMats[i].rightw = 0.0f;
|
||||
invMats[i].upw = 0.0f;
|
||||
invMats[i].atw = 0.0f;
|
||||
invMats[i].posw = 1.0f;
|
||||
Matrix::mult((Matrix*)m, &hier->matrices[i], &invMats[i]);
|
||||
invMats[i].flags = 0;
|
||||
Matrix::mult((Matrix*)m, &invMats[i], &hier->matrices[i]);
|
||||
m[3] = 0.0f;
|
||||
m[7] = 0.0f;
|
||||
m[11] = 0.0f;
|
||||
|
||||
Reference in New Issue
Block a user