Проблема с отображением теней - PullRequest
0 голосов
/ 17 мая 2018

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

enter image description here

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

РЕДАКТИРОВАТЬ

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

// in my Render() method:

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

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

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

...