static function 실수

반응형

물체를 열심히 찍는데 물체가 안보인다....

머지??


상단에서는 graphic api 독립적이고 camera도 상단에 붙어있어서

dx 라이브러리는 안쓴다.

하단에서 dx9을 쓴다면 자체 api를 dx9로 바꿔주는 함수들을 제공한다.

그런데 행렬의 곱셈에서 삽질을 했다.


// 행렬 곱

static MgMatrix4x4 Mul(const MgMatrix4x4 &m1, const MgMatrix4x4 &m2) 

{

MgMatrix4x4 r;

for (int i = 0; i < 4; ++i)

{

for (int j = 0; j < 4; ++j)

{

r.m[i][j] = m1.m[i][0] * m2.m[0][j] +

m1.m[i][1] * m2.m[1][j] +

m1.m[i][2] * m2.m[2][j] +

m1.m[i][3] * m2.m[3][j];

}

}

return r;

}


이렇게 내부 라이브러리에 행렬 곱셈을 지원한다.


그리고 사용할때 이렇게사용했다.

viewProj_.Mul(view_, proj_);


사실 행렬이 문제라는건 나중에 디버깅 하면서 알게되었다.

처음에는 셰이더쪽을 의심했고 셰이더 파싱하는걸 다시 처음부터 다 봤다..

무튼 결론은 이렇게 사용해야 함. 

viewProj_= MgMatrix4x4::Mul(view_, proj_);


그냥 viewProj_ = view_ * proj_ 로 사용하게 곱셈 연산자 오버로딩을 만들었어야 했는데

그랬다면 이런 오해성 버그는 없었을 텐데...그냥 머 이렇게 또 꼼꼼함에서 내가 

모자랐다는걸 깨달은 거에의의를 두자.

'작업장 > Mgin 제작' 카테고리의 다른 글

12. point, vector, ray, box, matrix, transform  (0) 2017.10.15
shader 구조를 대략 만들고 결과물을 띄웠다.  (0) 2016.06.17
하루동안 삽질한 버그.  (0) 2016.04.09
10. shader compile (fxo)  (0) 2016.02.14
9. 유니코드  (0) 2016.02.06
TAGS.

Comments