Я реализовал отображение теней для генерации теней на местности.Я визуализирую сцену (или объекты, которые отбрасывают тени) с точки зрения источника света, а затем генерирую карту глубины для выборки во время второго прохода рендеринга (как объясняют все учебные пособия в Интернете).Казалось, что все работает нормально, но потом я заметил, что объекты на холме отбрасывают более одной тени:
![enter image description here](https://i.stack.imgur.com/cdOpD.jpg)
Я думаю, что это правильное поведение, так как я надеваюне визуализируйте ландшафт во время генерации карты глубины (маленький квад в правом верхнем углу показывает буфер глубины во время первого прохода рендеринга), поэтому больше фрагментов ландшафта выглядят так, как будто они находятся позади объекта с точки зрения источника света.Ни один учебник по теневому отображению, похоже, не упоминает эту проблему.Я что-то упустил, или эта техника генерации теней очень проста и проблемы, подобные этой, могут возникнуть?
РЕДАКТИРОВАТЬ
вот мой код рендеринга:
// in my Render() method:
mShadowRenderer.SetLight(*mLights[0]);
mShadowRenderer.Render();
RenderSkyBox();
RenderEntities();
RenderGeometryTerrain(mTerrains[0],
mShadowRenderer.GetLightViewProjectionMatrix());
shadowRenderer - это класс, отвечающий за рендеринг в буфер вне экрана и за возврат карты глубины в виде представления ресурсов шейдера.Карта глубины добавляется к ландшафту, когда я вызываю метод рендеринга, поэтому его можно выбрать в пиксельном шейдере terrai для генерации теней.