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

Литература и учебные пособия для написания трассировки лучей

Мне интересно найти рекомендации по книгам о написании raytracer, простые и четкие реализации трассировки лучей, которые можно увидеть в Интернете, и онлайн-ресурсы по вводной трассировке лучей.

В идеале, подход будет инкрементным и учебным по стилю, а также объясним как методы программирования, так и математическую математику, начиная с основ.

4b9b3361

Ответ 1

"Трассировка лучей с нуля" Кевина Сафферна для начала.

"Физическое обоснование" Мэтта Фарра и Грега Хамфриса для более продвинутого подхода к нему, когда вы получили удовольствие от основ.

И если вы действительно вникаете в это, архивы Ray Tracing News хорошо читаются. Кроме того, много энтузиастов трассировки лучей выходят на форум ompf2.com.

Ответ 2

Хорошо, я не нашел никаких идеальных ответов сам, этот шаг из самых основ; Я нашел много простых лучей, и указатели на объемные учебники и академические ссылки.

Я не пробовал эти лучеры, но они выглядят интересными и простыми.

http://www.barakcohen.co.il/2008/10/ray-tracing-simple-java-open-source.html

http://blogs.msdn.com/lukeh/archive/2007/04/03/a-ray-tracer-in-c-3-0.aspx

http://www.ffconsultancy.com/languages/ray_tracer/

Из студенческого журнала ACM Cross Roads

http://www.acm.org/crossroads/xrds3-4/raytracing.html

Этот на С++ хотя бы короткий; простота была потеряна для скорости

http://ompf.org/ray/sphereflake/

Докторская диссертация по некоторым аспектам трассировки лучей здесь

Серия статей о DevMaster здесь

Форум OMPF должен прочитать серию сообщений можно найти здесь

Это звучит как книга "Введение в трассировку лучей" - это то, что мне нужно;-), а главная страница авторов здесь для более графического программирования.

Трассировка лучей с земли включает загружаемый исходный код трассировки луча.

MiniLight - это минимальный глобальный рендеринг освещения.

SmallPT - это глобальный визуализатор освещения, в 99 строках С++, с вариантом с использованием одноточечного поплавка на CPU и GPU в OpenCL.

Благодаря другим плакатам для указателей

Ответ 3

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

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

Итак, есть синтаксический анализатор, который легко встраивается в ваш собственный код и кучу файлов диагностических сцен. Первый файл проще всего обрабатывать (смотреть в исходное положение, смотреть на одну ось, на одну сферу), и если вы можете правильно их отобразить, у вас в значительной степени гарантируется должным образом работающий raytracer.

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

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

Ответ 5

Лучшее, что я нашел, это: http://www.devmaster.net/articles/raytracing_series/part1.php Этот урок имеет тенденцию двигаться немного быстро, но он охватывает множество аспектов трассировки лучей.

Ответ 6

Как было сказано выше, лучшей книгой, которую вы можете получить, является физическая постановка Мэтта Фарра (см. www.pbrt.org). Объясняет множество алгоритмов очень подробно, в том числе передовые материалы, такие как картирование фотонов. Кроме того, он включает полностью рабочий луч-трассировщик, поэтому вы можете взглянуть на него. Он также охватывает математические основы, поэтому, если вы не хотите покупать много книг, я определенно рекомендую взглянуть на это.

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

Если вы действительно хотите начать с основ, вы должны попробовать "Компьютерная графика: принципы и практика", она датируется (некоторые части сейчас чепуха сейчас), но она очень хорошо объясняет основы. Если вы хотите получить более новую книгу, попробуйте "Основы компьютерной графики", которая содержит то же самое, просто не так подробно (должно быть достаточно, чтобы вы начали с нее).

И последнее, но не менее важное: страница wikipedia на Raytracing на самом деле неплоха и должна дать вам несколько отправных точек. Взгляните на раздел внешних ссылок.

Ответ 7

Если вы ищете одну хорошую книгу, которая выводит вас из ничего в рабочий код, который может создавать изображения, я начал с Andrew Glassner An Введение в трассировку лучей. Я не могу попасть в Amazon прямо сейчас, но вот ссылка .

Кстати, на самом деле это книга и проблемная область, которая познакомила меня с объектно-ориентированным дизайном. Мальчик, это было давно.

Оттуда я бы рекомендовал перейти к книге Пита Ширли, поскольку, как представляется, подразумевается библиография Википедии. На самом деле, еще лучшее предложение - взять его класс трассировки лучей. Это сработало для меня!

Ответ 8

Я настоятельно рекомендую прочитать учебники по https://www.scratchapixel.com/, они не торопятся объяснять физику и математику за вещами, но также обеспечивают отличный код Примеры!

Я использовал многие из своих руководств при реализации своего собственного трассировщика лучей, который я написал в Java: https://github.com/bradforj287/brads-java-raytracer

Ответ 9

У этого пользователя есть интересные учебники по трассировке лучей, в этих учебниках используется С#, я считаю:

http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=3589667

Я уверен, что будут несколько лучших уроков, но это может представлять интерес.

Ответ 10

Вы видели воскрес? ИМХО, это очень хорошая отправная точка для понимания трассировки лучей (http://www.povray.org/)

Ответ 11

Это инструмент, который может быть полезен для понимания и визуализации общих идей Raytracing: Raytracing Simulator

Это симулятор, который я создал для курса Graphics, который я преподаю. Вместо рендеринга 3D-сцены в 2D-изображение он превращает 2D-сцену в одномерное изображение, что позволяет визуализировать весь алгоритм сразу, позволяя изменять параметры сцены в реальном времени.