Проблема с отображением теней

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

введите здесь описание изображения

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

ИЗМЕНИТЬ

вот мой код рендеринга:

// in my Render() method:

    mShadowRenderer.SetLight(*mLights[0]);
    mShadowRenderer.Render();

    RenderSkyBox();
    RenderEntities();
    RenderGeometryTerrain(mTerrains[0], 
    mShadowRenderer.GetLightViewProjectionMatrix());

shadowRenderer — это класс, отвечающий за отрисовку в буфер за пределами экрана и за возврат карты глубины в виде представления ресурсов шейдера. Карта глубины добавляется к ландшафту, когда я вызываю метод рендеринга, чтобы ее можно было использовать в пиксельном шейдере Terrai для создания теней.


person Luca    schedule 17.05.2018    source источник
comment
Некоторый код был бы очень полезен. Неясно, какой именно метод вы использовали для реализации отображения теней - правильный метод никогда не дал бы такого поведения.   -  person meowgoesthedog    schedule 17.05.2018
comment
Если вы не отрисовываете местность на карту глубины, то вполне естественно получите неверный результат. По сути, области, где вы наблюдаете неправильные тени, в любом случае будут затенены местностью.   -  person Nico Schertler    schedule 18.05.2018
comment
@NicoSchertler Хорошо, это ответ (или подтверждение), который я искал, пожалуйста, напишите ответ, чтобы я мог принять его как решение.   -  person Luca    schedule 31.05.2018


Ответы (1)


Кроме того, ландшафт должен быть отрендерен на карту теней/деп-карту.

person Vertexwahn    schedule 19.12.2019