Подтвердить что ты не робот

Есть ли альтернативы рендеринга растеризации или трассировки лучей?

Растеризация (треугольники) и трассировка лучей - единственные методы, с которыми я когда-либо сталкивался, чтобы визуализировать 3D-сцену. Есть ли другие? Кроме того, мне бы хотелось узнать о каких-либо других способах "делать", например "не используя полигоны".

4b9b3361

Ответ 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).

Ответ 2

Существует метод, называемый фотонное сопоставление, который на самом деле очень похож на трассировку лучей, но предоставляет различные преимущества в сложных сценах. Фактически, это единственный метод (по крайней мере, из которого я знаю), который обеспечивает действительно реалистичный (т.е. Все законы оптики соблюдаются), если делать правильно. Это техника, которая использовалась редко, насколько мне известно, поскольку ее производительность намного хуже, чем даже трассировка лучей (учитывая, что она эффективно делает обратное и имитирует пути, принимаемые фотонами от источников света к камере) - но это все только недостаток. Это, безусловно, интересный алгоритм, хотя вы не увидите его широкомасштабным использованием до тех пор, пока не окажетесь после трассировки лучей (если когда-либо).

Ответ 3

Статья рендеринга в Википедии охватывает различные techniques.

Вводный абзац:

Многие алгоритмы рендеринга были исследования и программного обеспечения, используемого для рендеринг может использовать ряд различные методы для получения окончательного изображение.

Отслеживание каждого луча света в сцене нецелесообразно и огромное количество времени. Даже отслеживание часть, достаточную для получения изображение занимает чрезмерное количество если выборка не является разумно ограниченный.

Следовательно, четыре свободные семейства более эффективный легкий транспорт появились методы моделирования: растеризация, включая scanline рендеринг, геометрические проекты объекты в сцене к изображению плоскость, без передовых оптических последствия; лучевое кастинг рассматривает сцены, наблюдаемой от конкретного точка зрения, вычисляющая наблюдаемое изображение, основанное только на геометрии и очень основные оптические законы интенсивности отражения и, возможно, используя методы Монте-Карло для сокращения артефакты; radiosity использует конечные элементная математика для моделирования диффузное распространение света из поверхности; и трассировка лучей аналогична для лучевого литья, но использует больше расширенное оптическое моделирование и обычно использует методы Монте-Карло для получить более реалистичные результаты на скорость, которая часто является порядком меньше.

Большинство продвинутых программ объединяют два или больше методов получения достаточно хорошие результаты при разумных стоимость.

Другое различие между изображением алгоритмы порядка, которые перебирают пикселей плоскости изображения и объекта алгоритмы порядка, которые перебирают объектов в сцене. Как правило, объект порядок более эффективен, так как есть обычно меньше объектов в сцене, чем пикселей.

Из этих описаний мне кажется, что только radiosity.