Ответ 1
Aagh! Эти ответы очень неинформированы!
Конечно, это не помогает, что вопрос нечетный.
ОК, "рендеринг" - очень широкая тема. Одной из проблем рендеринга является видимость камеры или "алгоритмы скрытой поверхности" - выяснение того, какие объекты видны в каждом пикселе. Существуют различные классификации алгоритмов видимости. Это вероятно, о чем спрашивал плакат (учитывая, что они думали об этом как о дихотомии между "растеризацией" и "трассировкой лучей" ).
Классическая (хотя и несколько устаревшая) ссылка на категоризацию - Sutherland et al. "Характеристика десяти скрытых поверхностных алгоритмов", ACM Computer Surveys 1974. Она очень устарела, но она по-прежнему отлично подходит для создания основы для размышлений о том, как классифицировать такие алгоритмы.
Один класс алгоритмов скрытой поверхности включает в себя "лучевое кастинг", который вычисляет пересечение линии от камеры через каждый пиксель с объектами (которые могут иметь различные представления, включая треугольники, алгебраические поверхности, NURBS и т.д.).
Другие классы алгоритмов скрытой поверхности включают в себя "z-buffer", "методы сканирования", "алгоритмы списка приоритетов" и т.д. Они были довольно прокляты творческими с алгоритмами в те времена, когда было не так много циклов вычисления и недостаточно памяти для хранения z-буфера.
В наши дни как вычисление, так и память дешевы, и поэтому три метода в значительной степени выиграли: (1) порезать все в треугольники и использовать z-буфер; (2) лучевое литье; (3) Reyes-подобные алгоритмы, которые используют расширенный z-буфер для обработки прозрачности и т.п. Современные графические карты делают # 1; рендеринг программного обеспечения высокого класса обычно делает # 2 или # 3 или комбинацию. Несмотря на то, что было предложено несколько аппаратов для трассировки лучей, а иногда и построено, но их никогда не хватало, а современные графические процессоры теперь достаточно программируемы, чтобы на самом деле трассировать лучи, хотя и с невысокой скоростью, чем их жестко закодированные методы растеризации. Другие более экзотические алгоритмы в большинстве случаев падали на обочину с годами. (Хотя различные алгоритмы сортировки/расщепления могут использоваться для рендеринга тома или для других специальных целей.)
"Растрирование" на самом деле просто означает "выяснить, на какие пиксели находится объект". Конвенция диктует, что она исключает трассировку лучей, но это шаткое. Я полагаю, вы могли бы оправдать ответ на растеризацию: "какие пиксели перекрывают эту фигуру", тогда как трассировка лучей отвечает "какой объект стоит за этим пикселем", если вы видите разницу.
Теперь удаление скрытой поверхности - это не единственная проблема, которую нужно решить в области "рендеринга". Знание того, что объект видимо в каждом пикселе, - это только начало; вам также нужно знать, какой именно цвет, что означает наличие некоторого метода вычисления того, как свет распространяется вокруг сцены. Существует целая куча методов, обычно разбитых на тень, отражения и "глобальное освещение" (то, что отскакивает между объектами, в отличие от прямого перехода от света).
"Трассировка лучей" означает применение техники лучевого литья для определения видимости теней, отражений, глобального освещения и т.д. Возможно использование трассировки лучей для всего или использование различных методов растеризации для видимости камеры и трассировки лучей для теней, отражения и GI. "Отображение фотонов" и "Трассировка пути" - это методы расчета некоторых видов распространения света (с использованием трассировки лучей, поэтому просто неправильно сказать, что они каким-то образом принципиально отличаются от техники визуализации). Существуют также глобальные методы освещения, которые не используют трассировку лучей, такие как методы "радиоизлучения" (который является конечно-элементным подходом к решению глобального распространения света, но в большинстве районов поля в последнее время не понравились). Но использование радиоизлучения или фотонного отображения для распространения света STILL требует, чтобы вы как-то сделали окончательный снимок, как правило, с одним из стандартных методов (лучевое кастинг, z буфер/растеризация и т.д.).
Люди, которые упоминают конкретные представления фигур (NURBS, тома, треугольники), также немного смущены. Это ортогональная задача для трассировки лучей против растеризации. Например, вы можете напрямую трассировать nurbs, или вы можете нарезать nurbs на треугольники и проследить их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке очереди (c.f. Lane/Carpenter/etc CACM 1980).