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