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

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

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

12.12.2008 07:45:59
Если вы хотите , чтобы сделать луч литья , проверить учебник Permadi в .
alex 29.09.2014 04:35:31
11 ОТВЕТОВ
РЕШЕНИЕ

"Луч трассировки с нуля" Кевина Сафферна за начало работы.

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

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

27
3.02.2015 18:40:58

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

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

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

1
12.12.2008 07:50:46

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

0
12.12.2008 09:22:59

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

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

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

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

2
12.12.2008 10:31:44

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

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

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

Этот в C ++ по крайней мере короткий; простота была потеряна для скорости

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

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

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

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

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

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

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

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

Спасибо другим постерам за указатели

16
14.04.2010 07:10:27
Я использовал книгу Гласснера (введение в трассировку лучей).
Alnitak 18.12.2008 15:23:32

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

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

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

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

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

5
16.12.2008 16:47:23
8 лет гнили ссылок взяли свое.
Wyck 2.08.2016 16:07:27
@ Похоже, сервер умер, и никто его не воссоздал. К счастью, материалы все еще находятся на сайте archive.org: web.archive.org/web/20090401180143/http://rivit.cs.byu.edu/655
tfinniga 4.08.2016 16:41:40

Если вы ищете единственную хорошую книгу, которая превращает вас из ничего в рабочий код, который может создавать изображения, я начал с Эндрю Гласснера « Введение в трассировку лучей» . Я не могу добраться до Амазонки прямо сейчас, но вот соответствующая ссылка .

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

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

2
16.12.2008 16:59:56

Несколько лет назад кто-то предложил мне сделать порт Delphi для крошечного трассировщика лучей (менее 200 строк кода на языке Си).

я перенес его в Delphi , возможно, однажды я перенесу его на C #.

3
16.12.2008 18:14:35

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

3
14.05.2009 02:38:36

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

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

0
30.11.2015 15:51:00
Не могли бы вы загрузить свой симулятор в другом месте?
Buksy 27.11.2015 22:25:02
@Buksy Я обновляю ссылку, теперь она указывает на мой репозиторий Github, где вы можете скачать симулятор. Это приложение для обработки, поэтому для его запуска необходимо установить приложение Processing.
aaecheve 30.11.2015 15:53:08

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

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

2
9.01.2017 17:47:51