2010-06-21 7 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

Ну, я бы ожидать, оба этих матриц в терпит неудачу на том основании, что вы установили ближнюю плоскость равным 0. Это действительно должно быть небольшим эпсилон, как 0,0001f.

Другая вещь, которую следует учитывать, заключается в том, что, заменяя рутину системы, вы, скорее всего, инвертируете порядок намотки трис.

Вам необходимо установить состояние визуализации отбраковки по часовой стрелке, а не против/против часовой стрелки.

т.е.

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

Спасибо, что решает проблему ... – user326075

 Смежные вопросы

  • Нет связанных вопросов^_^