Ray casting

редактировать

Ray casting - методологическая основа для трехмерного твердотельного моделирования CAD / CAM и визуализации изображений. По сути, это то же самое, что трассировка лучей (графика) для компьютерной графики, где виртуальные световые лучи «отбрасываются» или «трассируются» на своем пути от фокальной точки камеры через каждый пиксель в датчике камеры до определить, что видно вдоль луча в 3-D сцене. Термин «Ray Casting» был введен Скоттом Ротом в исследовательских лабораториях General Motors с 1978 по 1980 годы. Его статья "Ray Casting for Modeling Solids" описывает смоделированные твердые объекты путем комбинирования примитивных твердых тел, таких как блоки и цилиндры, с использованием операторов множества union, пересечения и разницы. На этом рисунке показан универсальный шарнир, смоделированный из цилиндров и блоков с использованием операторов набора union (+), пересечения () и разницы (-) в двоичном дереве, около 1979 года.

Визуализация идеализированного U-образного шарнира с тенью через Приведение лучей.

Перед формированием лучей (и трассировкой лучей) поверхности или края (например, линии) проецировались из трехмерного мира на плоскость изображения, где должна была применяться логика видимости. Приведение лучей значительно упростило рендеринг трехмерных объектов и сцен, поскольку линия трансформируется в линию при всех линейных преобразованиях перспективы. Перспективное линейное преобразование определяется преобразованием матрицы 4x4 с делением. Таким образом, вместо проецирования произвольной криволинейной поверхности на плоскость изображения, линии (лучи) преобразуются в локальную систему координат поверхности, где пересечение линии и поверхности проще всего вычислить. Упрощая математику, алгоритм очень интенсивно использует процессор. Pixar имеет большие фермы рендеринга, здания с тысячами процессоров, для создания своей анимации с использованием литья лучей [также известной как «трассировка лучей»] в качестве основного метода.

Содержание
  • 1 Концепция
  • 2 Приведение лучей в компьютерные игры
    • 2.1 Wolfenstein 3D
    • 2.2 Серия Comanche
  • 3 Настройка вычислительной геометрии
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Концепция

Из реферата к статье «Ray Casting for Modeling Solids»: «Для визуализации и анализа смоделированных композитных твердых тел виртуальные световые лучи отбрасываются как зонды. простота, применение лучей надежно и расширяемо.Самая сложная математическая задача - найти точки пересечения линий и поверхностей. Таким образом, поверхности в виде плоскостей, квадрик, торов и, возможно, даже параметрические участки поверхности могут ограничивать примитивные тела. Адекватность и эффективность луча здесь решаются проблемы с кастингом. Самая большая проблема - возможность быстрого создания изображений для интерактивного моделирования ».

[В процессе редактирования...]

xxx Ray casting - самый простой из многих алгоритмов компьютерной графики рендеринга, использующих геометрические алгоритм трассировки лучей. Алгоритмы рендеринга на основе трассировки лучей работают в порядке изображений для рендеринга трехмерных сцен в двухмерные изображения. Геометрические лучи прослеживаются от глаза наблюдателя, чтобы измерить свет (яркость ), движущийся к наблюдателю со стороны луча. Скорость и простота распределения лучей достигается за счет вычисления цвета света без рекурсивного отслеживания дополнительных лучей, которые измеряют яркость, падающую на точку, в которую попал луч. Это исключает возможность точной визуализации отражений, преломлений или естественного спада теней ; однако все эти элементы можно до некоторой степени подделать, творчески используя карты texture или другие методы. Высокая скорость вычислений сделала метод лучевой обработки удобным методом рендеринга в ранних 3D-видеоиграх в реальном времени.

В природе источник света испускает луч света, который, в конце концов, попадает на поверхность, которая прерывает его распространение. Этот «луч» можно представить себе как поток фотонов, движущихся по тому же пути. На этом этапе с этим световым лучом может произойти любая комбинация трех вещей: поглощение, отражение и преломление. Поверхность может полностью или частично отражать световой луч в одном или нескольких направлениях. Он также может поглотить часть светового луча, что приведет к потере интенсивности отраженного и / или преломленного света. Если поверхность имеет какие-либо свойства прозрачный или полупрозрачный, она преломляет часть светового луча в себя в другом направлении, поглощая при этом часть (или весь) спектр (и, возможно, изменение цвета). Между поглощением, отражением и преломлением необходимо учитывать весь входящий свет, и не более того. Например, поверхность не может отражать 66% падающего светового луча и преломлять 50%, так как в сумме они составят 116%. Отсюда отраженные и / или преломленные лучи могут попадать на другие поверхности, где их поглощающие, преломляющие и отражающие свойства снова рассчитываются на основе входящих лучей. Некоторые из этих лучей движутся таким образом, что попадают в наш глаз, заставляя нас видеть сцену и тем самым вносить свой вклад в окончательное визуализированное изображение. Попытки смоделировать этот реальный процесс отслеживания световых лучей с помощью компьютера можно считать чрезвычайно расточительным, поскольку только малая часть лучей в сцене действительно достигает глаза.

Первый алгоритм преобразования лучей, использованный для рендеринга, был представлен Артуром Аппелем в 1968 году. Идея преобразования лучей состоит в том, чтобы проследить лучи от глаза, по одному на пиксель, и найти ближайший объект, блокирующий путь этого луча. - представьте изображение как ширму, в которой каждый квадрат экрана является пикселем. Это и есть объект, который видит глаз через этот пиксель. Используя свойства материала и эффект света в сцене, этот алгоритм может определить затенение этого объекта. Делается упрощающее предположение, что если поверхность обращена к свету, свет достигнет этой поверхности и не будет блокироваться или находиться в тени. Затенение поверхности вычисляется с использованием традиционных моделей затенения 3D компьютерной графики. Одним из важных преимуществ преобразования лучей по сравнению с более старыми алгоритмами развертки была его способность легко работать с неплоскими поверхностями и твердыми телами, такими как конусы и сферы. Если математическая поверхность может быть пересечена лучом, она может быть визуализирована с помощью преобразования лучей. Сложные объекты можно создавать с помощью методов твердотельного моделирования и легко визуализировать.

Раннее использование алгоритма рендеринга с отрисовкой лучей Аппеля было выполнено Mathematical Applications Group, Inc., (MAGI) из Элмсфорд, Нью-Йорк.

Простая анимация с применением лучевого преобразования во всех направлениях
Ray casting в компьютерных играх
Демонстрация игры с использованием Ray Casting, использующей передовые методы для визуализации пола на нескольких уровнях высоты. Сдвиг камеры создает эффект взгляда вверх или вниз.

Wolfenstein 3D

Мир в известной видеоигре Wolfenstein 3D построен из квадратной сетки стен одинаковой высоты, пересекающихся с твердыми цветные полы и потолки. Чтобы нарисовать мир, трассируется один луч для каждого столбца экрана пикселей, и выбирается вертикальный срез стены текстура, который масштабируется в соответствии с тем, где в мире попадает луч. стена и как далеко она проходит до этого.

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

Серия команчей

Движок Voxel Space, разработанный NovaLogic для игр команчей, прослеживает луч через каждый столбец пикселей экрана и проверяет каждый луч по точкам на карте высот . Затем он преобразует каждый элемент карты высот в столбец пикселей, определяет, какие из них видны (т. Е. Не были перекрыты пикселями, которые были нарисованы впереди), и рисует их соответствующим цветом из карты текстуры.

Настройка вычислительной геометрии

В вычислительной геометрии проблема распределения лучей также известна как проблема съемки лучей и может быть сформулирована как следующая проблема запроса : учитывая набор объектов в d-мерном пространстве, предварительно обработать их в структуру данных, чтобы для каждого луча запроса можно было быстро найти начальный объект, на который попал луч. Проблема была исследована для различных настроек: размерность пространства, типы объектов, ограничения на запрос лучей и т. Д. Один из методов - использовать разреженное октодерево вокселей.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-03 09:23:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте