OpenGL - освещение вершин вне диапазона клипа - PullRequest
1 голос
/ 19 мая 2010

У меня проблема с освещением в приложении OpenGL. Когда одна из вершин нарисованного многоугольника выходит за пределы передней плоскости отсечения (или имеет z <0, я не уверен, какая именно), многоугольник перестает быть правильно освещенным. </p>

Однако это происходит только на одной машине, которую я тестировал, с картой Intel GMA950. На картах nVidia и ATI все выглядит нормально.

Я предполагаю, что нарушаю какое-то правило OpenGL? Как мне с этим бороться?

Я бы попробовал разделить сцену на более мелкие полигоны, но я не уверен, гарантирует ли это, что случай исключен (все полигоны, выходящие за пределы диапазона отсечения, находятся за пределами экрана).

Ответы [ 2 ]

0 голосов
/ 26 июня 2010

Оказывается, проблема отображается только тогда, когда я использую отбраковку задней поверхности. (Уродливый) обходной путь состоял в том, чтобы отключить его и отобразить обе стороны многоугольников.

0 голосов
/ 21 мая 2010

Хорошо, не уверен, что вам понравится этот ответ, но мои варианты будут:

  • Прекратите использовать OpenGL на плате Intel под Windows, вместо этого используйте Direct3D
  • Попробуйте Драйвер Google OpenGL ES для Direct3D
  • Используйте вершинный шейдер для освещения, вы можете понять, в чем проблема.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...