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