У меня просто есть вопросы по отложенному затенению. Я дошел до того, что у меня есть Color, Position, Normal и текстуры из Multiple Render Targets. Мои вопросы относятся к тому, что я делаю дальше. Чтобы убедиться, что я получил правильные данные от текстур, я поместил плоскость на экран и отобразил текстуры на эту плоскость. Чего я не понимаю, так это как манипулировать этими текстурами, чтобы окончательный результат был затенен освещением. Нужно ли визуализировать плоскость или квад, который занимает экран и применить все вычисления к этой плоскости? Если я сделаю это, я немного растерялся, когда смог бы заставить работать несколько источников света, поскольку «плоскость» была бы визуализируемым объектом, поэтому для каждого источника света мне нужно было бы повторно визуализировать плоскость. Я думаю об этом неправильно?
Вы должны визуализировать некоторую геометрию, чтобы представить область, покрытую светом (ами). Термин освещения для каждого пикселя света накапливается в целевом объекте рендеринга. Это дает вам ваш освещенный результат.
Есть разные способы сделать это. Чтобы начать работу, простой / легкий (и чертовски медленный) метод состоит в том, чтобы визуализировать полноэкранный квад для каждого источника света.
В принципе:
После того, как вы это заработаете, есть множество способов ускорить его (ножничный прямоугольник, сетки, которые тесно связывают свет, трафаретные тесты, чтобы избежать затенения «плавающих» областей, одновременное рисование нескольких источников света и техники более высокого уровня, такие как мозаика). ).
В наши дни на Отложенном Затенении есть много разных наклонов, но оригинальная техника подробно описана здесь: http://http.download.nvidia.com/developer/presentations/2004/6800_Leagues/6800_Leagues_Deferred_Shading.pdf