Closed CodeEx222 closed 9 years ago
using namespace std;
int main() {
float m1[16] = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,35, 0, 0, 0, 1};
float m2[16] = { 0.974278, 0, 0, 0, 0, 1.732050, 0, 0, 0, 0, 1.000101, -0.100100, 0, 0, 1, 0};
bx::float4x4_t bx_m1; bx::float4x4_t bx_m2; glm::mat4 glm_m1; glm::mat4 glm_m2; memcpy(&bx_m1, m1, sizeof(float)_16); memcpy(&bx_m2, m2, sizeof(float)_16); memcpy(&glm_m1[0][0], m1, sizeof(float)_16); memcpy(&glm_m2[0][0], m2, sizeof(float)_16);
glm::mat4 glm_result; bx::float4x4_t bx_result;
bx::float4x4_mul(&bx_result,&bx_m1,&bx_m2 ); glm_result = glm_m1 * glm_m2;
cout << bx_result.col[0][0] <<" , "<< bx_result.col[1][0] <<" , "<< bx_result.col[2][0] <<" , "<< bx_result.col[3][0] <<endl; cout << bx_result.col[0][1] <<" , "<< bx_result.col[1][1] <<" , "<< bx_result.col[2][1] <<" , "<< bx_result.col[3][1] <<endl; cout << bx_result.col[0][2] <<" , "<< bx_result.col[1][2] <<" , "<< bx_result.col[2][2] <<" , "<< bx_result.col[3][2] <<endl; cout << bx_result.col[0][3] <<" , "<< bx_result.col[1][3] <<" , "<< bx_result.col[2][3] <<" , "<< bx_result.col[3][3] <<endl;
cout << glm_result[0][0] <<" , "<< glm_result[1][0] <<" , "<< glm_result[2][0] <<" , "<< glm_result[3][0] <<endl; cout << glm_result[0][1] <<" , "<< glm_result[1][1] <<" , "<< glm_result[2][1] <<" , "<< glm_result[3][1] <<endl; cout << glm_result[0][2] <<" , "<< glm_result[1][2] <<" , "<< glm_result[2][2] <<" , "<< glm_result[3][2] <<endl; cout << glm_result[0][3] <<" , "<< glm_result[1][3] <<" , "<< glm_result[2][3] <<" , "<< glm_result[3][3] <<endl;
return 0; }
sorry, m2 * m1 is the Correct Matrix multiplication..
{ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,35, 0, 0, 0, 1};
{ 0.974278, 0, 0, 0, 0, 1.732050, 0, 0, 0, 0, 1.000101, -0.100100, 0, 0, 1, 0};
float4x4_mul result: 0.974278 , 0 , 0 , 0 0 , 1.73205 , 0 , 0 0 , 0 , 36.0001 , 1 0 , 0 , -0.1001 , 0
OpenGL Mathematics (GLM) result: 0.974278 , 0 , 0 , 0 0 , 1.73205 , 0 , 0 0 , 0 , 1.0001 , 1 0 , 0 , 34.9034 , 35