Jako ćwiczenie edukacyjne napisałem odroczony silnik renderowania. Teraz chciałbym dodać wykres sceny do tego silnika, ale jestem trochę zaskoczony, jak to zrobić.
W normalnym (silniku renderującym do przodu) po prostu dodawałbym wszystkie elementy (wszystkie implementujące IDrawable i IUpdateAble) do mojego wykresu scen, niż najpierw podróżowałem po wykresie scen i wywoływałem Draw () wszędzie.
Jednak w odroczonym silniku renderowania muszę rozdzielić wywołania. Najpierw muszę narysować geometrię, następnie kółka cienia, a następnie światła (wszystkie do różnych celów renderowania), zanim połączę je wszystkie. Więc w tym przypadku nie mogę po prostu przejechać przez wykres sceny i po prostu wywołać remis. Z tego, co widzę, albo muszę trzykrotnie przemierzyć cały wykres sceny, sprawdzając, jaki to obiekt należy narysować, albo muszę utworzyć 3 osobne wykresy sceny, które są w jakiś sposób ze sobą połączone. Oba wydają się kiepskie rozwiązania, chciałbym obsłużyć obiekty sceny bardziej przejrzyste.
Innym rozwiązaniem, o którym myślałem, było przechodzenie przez wykres sceny jako normalne i dodawanie elementów do 3 oddzielnych list, oddzielanie geometrii, kółek i świateł, a następnie iterowanie tych list w celu narysowania poprawnych elementów, jest to lepsze i czy jest mądre jest ponowne wypełnienie 3 list w każdej ramce?