From 3c4b8cbe42ca6225be216cc3affcb7604ea892e1 Mon Sep 17 00:00:00 2001 From: safarend Date: Mon, 1 Dec 2014 03:40:34 +1300 Subject: [PATCH] Faster calculation Avoid recalculating expensive calls such as cos,sin and divisions. --- examples/gpu/source/math.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/gpu/source/math.c b/examples/gpu/source/math.c index 13ab3dd..5dc9c58 100644 --- a/examples/gpu/source/math.c +++ b/examples/gpu/source/math.c @@ -43,8 +43,8 @@ void rotateMatrixX(float* tm, float x, bool r) rm[0]=1.0f; rm[5]=cos(x); rm[6]=sin(x); - rm[9]=-sin(x); - rm[10]=cos(x); + rm[9]=-rm[6]; + rm[10]=rm[5]; rm[15]=1.0f; if(!r)multMatrix44(tm,rm,m); else multMatrix44(rm,tm,m); @@ -58,8 +58,8 @@ void rotateMatrixY(float* tm, float x, bool r) rm[0]=cos(x); rm[2]=sin(x); rm[5]=1.0f; - rm[8]=-sin(x); - rm[10]=cos(x); + rm[8]=-rm[2]; + rm[10]=rm[0]; rm[15]=1.0f; if(!r)multMatrix44(tm,rm,m); else multMatrix44(rm,tm,m); @@ -72,8 +72,8 @@ void rotateMatrixZ(float* tm, float x, bool r) memset(rm, 0x00, 16*4); rm[0]=cos(x); rm[1]=sin(x); - rm[4]=-sin(x); - rm[5]=cos(x); + rm[4]=-rm[1]; + rm[5]=rm[0]; rm[10]=1.0f; rm[15]=1.0f; if(!r)multMatrix44(tm,rm,m); @@ -108,7 +108,7 @@ void initProjectionMatrix(float* m, float fovy, float aspect, float near, float mp[0x8] = 0.0f; mp[0x9] = 0.0f; mp[0xA] = -(far+near)/(far-near); - mp[0xB] = -2.0f*(far*near)/(far-near); + mp[0xB] = -2.0f*-mp[0xA]; mp[0xC] = 0.0f; mp[0xD] = 0.0f;