Я пишу небольшой двухмерный изометрический движок на C ++ и пытаюсь реализовать отбрасывание теней в реальном времени. Я следовал простому подходу, описанному на этой странице, и вот результат (свет расположен в том же положении, что и желтый куб):
Результат очень хороший, но на стенах и кубиках отсутствуют тени. Вот пример того, как это должно выглядеть (я нарисовал ожидаемые тени зеленым цветом):
Все нарисованные кубы просто состоят из 3-х четырехугольников, расположенных в позиции XY и с глубиной Z (z = x + y). Я использую OpenGL с орфографической матрицей (glOrtho). Тени рисуются с помощью буфера трафарета.
Я ищу ресурсы или решения, которые помогли бы мне завершить эту реализацию отбрасывания теней.
Большое спасибо!