Nvidia комментирует споры о методах трассировки лучей и растрирования (часть 1)
Споры о применении трассировки лучей в качестве метода визуализации в реальном времени не новы, однако они опять привлекли к себе сильный интерес после нескольких статей Даниэля Пула (Daniel Pohl). Первая из них была опубликована в конце 2006 года и называлась "Трассировка лучей и игры — проект Quake 4: Ray Traced", вот цитата:
"Трассировка лучей имеет возможность стать широко применяемой технологии визуализации на настольных компьютерах. Количество ядер процессора возрастает, также впечатляющие результаты показывает аппаратная архитектура (http://www.saarcor.de/). Еще не скоро появятся игры, сопоставимые по качеству графики с фильмом Властелин колец, но мы приближаемся к этому".
Вторая статья Даниэля Пула была опубликована в январе этого года под названием "Трассировка лучей и игры — год спустя", в которой приводились примеры того, какие преимущества может дать трассировка лучей игрокам и игровой индустрии в целом.
Пример работы трассировки лучей от Intel — из статьи "Трассировка лучей и игры — год спустя". Объекты отражаются друг в друге несколько раз (в идеале — бесконечно).
Однако, многие не видят ничего особенного в методе трассировки лучей. К примеру, корпорация NVIDIA, по праву заинтересованная в ускорении графики более других организаций сегодня, имеет практичный взгляд на технологии визуализации, включая растрирование и трассировку лучей. В отличие от Intel, NVIDIA располагает десятками последних исследований в области технологии расчета освещения методом растрирования и видит будущее 3D-графики именно за ним, а не за чем-то что-то новым вроде трассировки лучей.
Недавно на сайте PC Perspective было опубликовано интервью с Дэвидом Кирком, занимающим в NVIDIA пост главного инженера, в котором были заданы вопросы относительно споров о методах растрирования и трассировки лучей.
PC Perspective: Трассировка лучей имеет явные преимущества, когда речь идет о высокополигональной геометрии, что вы об этом думаете в сравнении с традиционными методами растровой визуализации?
Дэвид Кирк, NVIDIA: Я не уверен, на какие именно преимущества вы ссылаетесь, но я знаю некоторые общие представления, которые объявлены сообществом, продвигающим метод трассировки лучей на процессоре. Некоторые люди, считают растрирование более медленным по существу, т. к. необходимо обработать и попытаться нарисовать каждый полигон (даже, если он окажется невидимым), таким образом, производительность изменяется, в лучшем случае, пропорционально количеству полигонов. Защитники трассировки лучей считают, что этот метод вместе со структурой иерархического ускорения данных может работать быстрее, т. к. не каждая плоскость должна проходить процедуру прорисовки, и поэтому трассировка лучей будет всегда быстрее для сложных сцен с большим количеством полигонов. Но это доказательство неверно.
В таком подходе есть несколько заблуждений, но я открою только два. Во-первых, аргумент о том, что иерархия позволит не рассчитывать освещения для всех плоскостей, опускает тот факт, что изначально для построения иерархии необходимо обработать все плоскости. Во-вторых, большинство движков визуализации в играх и профессиональных приложениях, которые используют метод растрирования, также применяют иерархию и отбор, чтобы избежать обработки и прорисовки невидимых полигонов. Отсечение невидимых поверхностей давно используется для избегания прорисовки полигонов, которые находятся в сцене, но не попадают в кадр (тыльные стороны объектов), а иерархический отбор позволяет избежать обработки целых кусков сцены (скрытых за объектами на переднем плане). Так что нет преимуществ между методом трассировки лучей и методом растрирования с использованием иерархии и отбора.
Высокополигональный снимок из Oblivion.
PC Perspective: Является ли полноэкранное сглаживание или эффекты последующей обработки чем-то сложным для трассировки лучей? Возможно, вам известны другие ограничения, которые имеет метод?
Дэвид Кирк, NVIDIA: Несмотря на некоторые разработанные демонстрации, в настоящее время трассировка лучей значительно медленнее растрирования. При сложных высокополигональных сценах, большом количестве изменений из кадра в кадр, множестве источников освещения и сложных шейдерных расчетах современные многоядерные процессоры не являются достаточно быстрыми для высококачественной визуализации методом трассировки лучей. Другим преимуществом метода, на которое часто ссылаются, — это возможность визуализировать что угодно. Однако, если вы решите это сделать, то получите огромное число лучей и низкую производительность.
Во-первых, вы должны провести расчет прямых лучей, чтобы узнать, какие объекты попадают в кадр, а также для полноэкранного сглаживания, получив матрицу пикселей. Далее для каждого объекта, который виден, необходимо определить, пиксель находится на освещенной поверхности или в тени. Более современные средства визуализации идут дальше и рассчитывают не только источники света, но и свет, попавший на объект как отражение от других объектов в сцене. В таком случае, что угодно является источником света.
Указанный эффект называется "глобальное освещение". Можно привести простейший пример: квадратная комната, состоящая из 6 полигонов, и источник света в центре — точки на поверхности стены около угла не могут быть освещены настолько же хорошо, как точки в центре стены. Для того, чтобы реализовать этот эффект, необходимо сделать десятки, а то и сотни, расчетов лучей для каждой точки. Это невозможно сделать в реальном времени. Стоит отметить, что визуально эти эффекты можно очень приближенно реализовать в реальном времени технологиями растрирования и текстурирования.
Источник: PC Perspective
"Трассировка лучей имеет возможность стать широко применяемой технологии визуализации на настольных компьютерах. Количество ядер процессора возрастает, также впечатляющие результаты показывает аппаратная архитектура (http://www.saarcor.de/). Еще не скоро появятся игры, сопоставимые по качеству графики с фильмом Властелин колец, но мы приближаемся к этому".
Вторая статья Даниэля Пула была опубликована в январе этого года под названием "Трассировка лучей и игры — год спустя", в которой приводились примеры того, какие преимущества может дать трассировка лучей игрокам и игровой индустрии в целом.
Пример работы трассировки лучей от Intel — из статьи "Трассировка лучей и игры — год спустя". Объекты отражаются друг в друге несколько раз (в идеале — бесконечно).
Однако, многие не видят ничего особенного в методе трассировки лучей. К примеру, корпорация NVIDIA, по праву заинтересованная в ускорении графики более других организаций сегодня, имеет практичный взгляд на технологии визуализации, включая растрирование и трассировку лучей. В отличие от Intel, NVIDIA располагает десятками последних исследований в области технологии расчета освещения методом растрирования и видит будущее 3D-графики именно за ним, а не за чем-то что-то новым вроде трассировки лучей.
Недавно на сайте PC Perspective было опубликовано интервью с Дэвидом Кирком, занимающим в NVIDIA пост главного инженера, в котором были заданы вопросы относительно споров о методах растрирования и трассировки лучей.
PC Perspective: Трассировка лучей имеет явные преимущества, когда речь идет о высокополигональной геометрии, что вы об этом думаете в сравнении с традиционными методами растровой визуализации?
Дэвид Кирк, NVIDIA: Я не уверен, на какие именно преимущества вы ссылаетесь, но я знаю некоторые общие представления, которые объявлены сообществом, продвигающим метод трассировки лучей на процессоре. Некоторые люди, считают растрирование более медленным по существу, т. к. необходимо обработать и попытаться нарисовать каждый полигон (даже, если он окажется невидимым), таким образом, производительность изменяется, в лучшем случае, пропорционально количеству полигонов. Защитники трассировки лучей считают, что этот метод вместе со структурой иерархического ускорения данных может работать быстрее, т. к. не каждая плоскость должна проходить процедуру прорисовки, и поэтому трассировка лучей будет всегда быстрее для сложных сцен с большим количеством полигонов. Но это доказательство неверно.
В таком подходе есть несколько заблуждений, но я открою только два. Во-первых, аргумент о том, что иерархия позволит не рассчитывать освещения для всех плоскостей, опускает тот факт, что изначально для построения иерархии необходимо обработать все плоскости. Во-вторых, большинство движков визуализации в играх и профессиональных приложениях, которые используют метод растрирования, также применяют иерархию и отбор, чтобы избежать обработки и прорисовки невидимых полигонов. Отсечение невидимых поверхностей давно используется для избегания прорисовки полигонов, которые находятся в сцене, но не попадают в кадр (тыльные стороны объектов), а иерархический отбор позволяет избежать обработки целых кусков сцены (скрытых за объектами на переднем плане). Так что нет преимуществ между методом трассировки лучей и методом растрирования с использованием иерархии и отбора.
Высокополигональный снимок из Oblivion.
PC Perspective: Является ли полноэкранное сглаживание или эффекты последующей обработки чем-то сложным для трассировки лучей? Возможно, вам известны другие ограничения, которые имеет метод?
Дэвид Кирк, NVIDIA: Несмотря на некоторые разработанные демонстрации, в настоящее время трассировка лучей значительно медленнее растрирования. При сложных высокополигональных сценах, большом количестве изменений из кадра в кадр, множестве источников освещения и сложных шейдерных расчетах современные многоядерные процессоры не являются достаточно быстрыми для высококачественной визуализации методом трассировки лучей. Другим преимуществом метода, на которое часто ссылаются, — это возможность визуализировать что угодно. Однако, если вы решите это сделать, то получите огромное число лучей и низкую производительность.
Во-первых, вы должны провести расчет прямых лучей, чтобы узнать, какие объекты попадают в кадр, а также для полноэкранного сглаживания, получив матрицу пикселей. Далее для каждого объекта, который виден, необходимо определить, пиксель находится на освещенной поверхности или в тени. Более современные средства визуализации идут дальше и рассчитывают не только источники света, но и свет, попавший на объект как отражение от других объектов в сцене. В таком случае, что угодно является источником света.
Указанный эффект называется "глобальное освещение". Можно привести простейший пример: квадратная комната, состоящая из 6 полигонов, и источник света в центре — точки на поверхности стены около угла не могут быть освещены настолько же хорошо, как точки в центре стены. Для того, чтобы реализовать этот эффект, необходимо сделать десятки, а то и сотни, расчетов лучей для каждой точки. Это невозможно сделать в реальном времени. Стоит отметить, что визуально эти эффекты можно очень приближенно реализовать в реальном времени технологиями растрирования и текстурирования.
Источник: PC Perspective
Ещё новости по теме:
18:20