2014-02-14 3 views
2

Я пишу 3d-игру с libgdx и хочу добавить поддельные тени 2d внизу моделей. Теперь я использую 2 плоскости с теневой текстурой и нарисую их немного выше, чем на плоскостях пола. Все идет хорошо, но когда 2 плоскости теней перекрываются, есть странный графический артефакт, потому что теневые плоскости имеют ту же Y (вертикальную) координату. Что мне нужно сделать, чтобы этого избежать? Может быть, какая-то текстура на проекции плоскости пола? Если так - как?libgdx fake 3d shadows

Пример изображения http://itmages.ru/image/view/1497735/17ea1cdd

ОБНОВЛЕНО: Так я нашел другое решение. Вы можете использовать круглую сетку для теней вместо квадранта и не позволять им перекрываться.

enter image description here

+0

nb это называется «z-fighting» http://en.wikipedia.org/wiki/Z-fighting – vaxquis

ответ

4

Грязный, но рабочий раствор просто дает им другую позицию Y каждый. Очень очень мало различий, достаточно, чтобы исправить вашу проблему, но быть незаметным.

+1

Просто маленький вопрос к этому, так как я также собираюсь создать 3D-игру: лучше ли установить это значение y уникальным для каждого объекта с тенью или изменить его только в том случае, если оно близко к любому другому теневому объекту? – Springrbua

+1

Если первый из них легко достижимо (не много объектов), дайте это. Если нет, то просто измените его, когда они перекрываются. Всегда выбирайте более легкое решение. – Lestat

+0

Хорошо. Большое спасибо за этот быстрый ответ – Springrbua

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