Piszę mały izometryczny silnik 2d w C ++ i próbuję zaimplementować rzucanie cieni w czasie rzeczywistym. Postępowałem zgodnie z prostym podejściem opisanym na tej stronie i oto wynik (światło znajduje się w tym samym miejscu co żółty sześcian):
Rezultat jest bardzo ładny, ale na ścianach i na kostkach brakuje cieni. Oto przykład, jak powinien on wyglądać (narysowałem oczekiwane cienie na zielono):
Wszystkie narysowane kostki są po prostu wykonane z 3 kwadratów 2D umieszczonych w pozycji XY i o głębokości Z (z = x + y). Używam OpenGL z matrycą ortograficzną (glOrtho). Cienie są rysowane za pomocą bufora szablonów.
Szukam zasobów lub rozwiązań, które pomogłyby mi ukończyć tę implementację rzutowania w tle.
Wielkie dzięki!