Xtreme3D Community
Теневые карты - Версия для печати

+- Xtreme3D Community (https://xtreme3d.ru/forums)
+-- Форум Xtreme3D (https://xtreme3d.ru/forums/forumdisplay.php?fid=3)
+--- Форум Вопросы и ответы (https://xtreme3d.ru/forums/forumdisplay.php?fid=6)
+--- Темы: Теневые карты (/showthread.php?tid=71)



Теневые карты - Глеб - 03-19-2022

Все же так и не удалось сделать тени на карте, может быть проблема в том, что freeform не показывает на себе тени? Это работает только на примитивах? Или я что-то не так делаю?


Теневые карты - Gecko - 03-21-2022

Любые объекты должны отбрасывать тени) Скорее всего, неправильно что-то настроено. Или ты не там ищешь тень, где она должна быть (т.е., например, теневая камера неправильно повернута)
Также тень будет отсекаться по размеру проекции (ShadowMapSetProjectionSize). Теневая проекция имеет ограниченный размер в 3D. Все, что за ее пределами, не будет отбрасывать тень. Ее можно увеличить, но тогда пропорционально падает детализация теней - в этих случаях лучше использовать CSM, то есть, каскадные тени (но они не встроены в движок, нужно писать свой шейдер).


Теневые карты - Gecko - 03-21-2022

Вот о чем я говорю (CSM):

[Изображение: csm1.png] [Изображение: csm2.png]

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

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

[Изображение: image.png]