Як навчальну вправу я написав механізм відкладеного візуалізації. Тепер я хотів би додати графік сцени до цього двигуна, але мені трохи спантеличено, як це зробити.
У звичайному (двигуні рендерінга) я просто додав би всі елементи (Усі реалізуючі IDravable та IUpdateAble) до свого графіку сцени, ніж спочатку проїжджав би поперек ширини сцени і зателефонував Draw () скрізь.
Однак у двигуні відкладеної візуалізації я повинен розділяти дзвінки дзвінка. Спочатку я повинен намалювати геометрію, потім ролики тіней, а потім світильники (усі для різних цілей), перш ніж об'єднати їх. Тож у цьому випадку я не можу просто подорожувати графік сцени, а просто розіграти дзвінки. То, як я це бачу, мені або доведеться подорожувати по всій графіці сцени 3 рази, перевіряючи, який саме об'єкт потрібно намалювати, або я повинен створити 3 окремі графіки сцен, які якимось чином пов'язані між собою. Обидва ці рішення здаються поганими, я б хотів обробляти предмети сцени більш прозорими.
Ще одне інше рішення, про яке я думав, - це подорож через графік сцени як звичайний і додавання предметів до 3-х окремих списків, розділення геометрії, заклинань тіней та світла, а потім повторення цих списків для складання правильних речей, чи це краще, і чи це? розумно перенаселити 3 списки кожного кадру?