Войти
ПрограммированиеFAQГрафикаГрафика

При выводе изображения треугольники/фигуры выводятся в неправильной последовательности и/или выпадают. Что делать?

Пример глюков можно наблюдать здесь: http://www.gamedev.ru/images/?id=17645

Случай с неправильным выставлением лицевых и тыльных сторон описан в http://www.gamedev.ru/faq/?id=6.

Однако такое поведение возможно и при правильном порядке следования вершин. В этом случае следует посмотреть на параметр znear. Он не должен быть выставлен в 0.0f.

Данный параметр задается при формировании матрицы проекции, т.е. при вызове функции D3DXMarixPerspectiveFovLH (или RH):
Ее прототип:
D3DXMATRIX * D3DXMatrixPerspectiveFovLH(
  D3DXMATRIX * pOut,
  FLOAT fovy,
  FLOAT Aspect,
  FLOAT zn,    // это и есть znear  - передний план отсечения сцены
  FLOAT zf      // zfar  - задний план отсечения сцены
);
Таким образом замена его на не нулевое значение, например 1,0f исправляет ошибки и изображение отрисовывается правильно. Однако при значение 1.0f часто заметны отсечения переднего плана, поэтому лучше ставить число поменьше, например 0.1f (но ни в коем случае не 0, как очень хочется ;) ).

29 января 2007

Комментарии [1]

#1
22:53, 17 июля 2012

Хорошая подсказка с задним планом отсечения. После переноса куска кода на новый проект влепил 0, и пару часов парился с проблемой отображения треугольников.

ПрограммированиеFAQГрафикаГрафика

Тема в архиве.