2011-04-01 10 views
6

내 코드의 어딘가에 버그가 있는데, 이것이 잘못된지 궁금합니다.2D 아핀 변환 행렬을 3D 아핀 변환 행렬로 변환

필자는 코드에서 2D 뷰 행렬을 가지고 있지만 화면을 내 세계에 표시하려면 2D 뷰 행렬을 3D로 변환해야합니다. 이것은 내가 사용하고있는 과정이다 : 나는 2D 매트릭스에 대한 행렬을 사용할 때 작동

| a b c |  | a b c 0 | 
| d e f | => | d e f 0 | 
| g h i |  | g h i 0 | 
       | 0 0 0 1 | 

하지만 최대한 빨리 그리는 내 모든 객체가 사라 2D 매트릭스에 어떤 변환을 적용한다.

_basicEffect.Projection = Matrix.CreateOrthographicOffCenter(0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height, 0, 0, 1); 

3D에 2D 매트릭스를 변환하는 올바른 방법은 무엇입니까 : 3D를 사용하여 2D로 그리기를 들어

, 나는이 투영 행렬을 사용합니까?

답변

14

아핀 변환은 변환 행렬의 여분의 행/열을 변환에 사용합니다. 그래서 여러분이하고 싶은 것은 마지막 행/열을 아래/오른쪽으로 이동 한 다음 새로운 축에 대해 ID 변환을 삽입하는 것입니다.

| a b c |  | a b 0 c | 
| d e f | => | d e 0 f | 
| g h i |  | 0 0 1 0 | 
       | g h 0 i | 

잘 모르겠지만 시도해보십시오.

+0

+1 정확합니다. –

관련 문제