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