You are here: Home - Studies∞ - 3DGED(David H. Eberly) Errata

0905112225

+–+

 

3DGED(David H. Eberly) Errata

3D Game Engine Design 에 있는, 쿼터니언->행렬 변환 공식은 아래와 같다.

1-2(y^2+z^2)
2(xy+wz)
2(xz-wy)

2(xy-wz)
1-2(x^2+z^2)
2(yz+wx)

2(xz+wy)
2(yz-wx)
1-2(x^2+y^2)

Gamasutra 와 같은 사이트에도 동일한 내용의 글을 발견할 수 있었다. 하지만, 실제로 계산해 보면 아래의 결과를 얻을 수 있다.

1-2(y^2+z^2)
2(xy-wz)
2(xz+wy)

2(xy+wz)
1-2(x^2+z^2)
2(yz-wx)

2(xz-wy)
2(yz+wx)
1-2(x^2+y^2)

이것은 LHS 와 RHS 의 문제로 볼 수 있는데, 3D Game Engine Design 이 RHS 를 가정하고 있다면, 서적의 오류로 생각할 수 있다. 엔진에서 사용되고 있는 방식은 위쪽으로, 엔진이 RHS 를 가정하고 있는 상황에서 보면, 잘못된 것임을 알 수 있다.

* 주의 사항
불행히도 3DS Max는 LHS 시스템임에도, 아래쪽의 공식을 따르는 관계로 export 시에 w에 -1을 곱해줘야 한다. DX 는 제대로 LHS Matrix를 계산해 준다.

Leave a Reply

Back to top