2010-06-21 5 views
1

내 프로그램에서 메쉬가 제대로 표시되지만 왼쪽에서 왼쪽으로 device.transform.view 및 device.transform.projection 행렬을 변경하면 오른손 잡이 시스템에서는 메시가 더 이상 제대로 표시되지 않습니다. 즉, 뒷면이 조명되고 전면이 투명합니다!보기 및 투영 행렬을 전환 한 후 DirectX 메시가 제대로 표시되지 않습니다.

device.Transform.View = Matrix.LookAtLH(vFrom, vAt, vUp); 
device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI/4, fAspect, 0f, 100f); 

수정 :

device.Transform.View = Matrix.LookAtRH(vFrom, vAt, vUp); 
device.Transform.Projection = Matrix.PerspectiveFovRH((float)Math.PI/4, fAspect, 0f, 100f); 
+0

. 당신이 유용하다고 생각한다면 upvote (당신이 이미 그렇게하지 않았다고 가정)도 좋을 것입니다 : D – Goz

답변

1

그럼 난에 그 행렬의 양쪽을 기대 는 사람이 더 필요 적절한 표시를

원래 행렬을 변경하는 어떤 생각을 가지고 있는가 near plane을 0으로 설정한다는 근거로 끔찍하게 실패합니다. 이것은 정말로 0.0001f와 같은 작은 엡실론이어야합니다.

염두에 두어야 할 다른 사항은 시스템의 수작업을 바꾸면 트리스의 와인딩 순서를 뒤집을 가능성이 가장 높습니다.

컬링 렌더링 상태를 반 시계 방향이 아닌 시계 방향으로 설정해야합니다. 당신은 당신이 내 게시물을 받아 내 게시물의 왼쪽에있는 진드기를 클릭하면 잘

dxDevice.SetRenderState(RenderState.CullMode, Cull.Clockwise); 
+0

고마워요, 그게 문제를 해결합니다 ... – user326075