Пошаговый курс по 3D-рендерингу: создаём программный рендерер примерно на 500 строках чистого C++, без сторонних библиотек.
RayTracing/raytracing.github.io
Бесплатная серия книг, которая учит с нуля создавать ray tracer на C++ и содержит полный исходный код для каждого этапа.
- Звёзды
- 10,719
- Форки
- 1,016
- Открытые issues
- 81
- Последний коммит
- 3 месяца назад
Что это?
Ray Tracing in One Weekend — серия из трёх книг, в которых читатели шаг за шагом пишут ray tracer. В первой книге рассматривается основной конвейер и создаётся работающий рендерер; во второй, The Next Week, добавляются более продвинутые возможности рендеринга; третья, The Rest of Your Life, подробнее раскрывает лежащие в их основе методы.
В репозитории книги размещены в виде HTML-страниц: их можно бесплатно читать в интернете, а также скачать в PDF для печати. Здесь также хранится итоговый исходный код каждой книги, а вместе с ним — изображения и иллюстрации из текста, чтобы читатели могли сравнить свою реализацию с эталонной. Код написан на C++11 в намеренно простом стиле, рассчитанном на широкую аудиторию, а не на максимальную производительность. Проект собирается с помощью CMake и выводит изображения в формате PPM.
Исходный код предназначен для проверки своей работы и служит дополнением к книгам, а не самостоятельным учебником. В проекте также перечислены созданные сообществом реализации серии на других языках и для других операционных систем.
Ключевые возможности
- 01Бесплатные книги в интернете: от основ трассировки лучей до продвинутых тем
- 02Полный эталонный исходный код для итогового этапа каждой книги
- 03HTML- и PDF-версии, удобные для печати
- 04Сборка с помощью CMake в Windows, Linux и macOS
- 05Вывод изображений в формате PPM
Сценарии использования
- Разобраться в работе ray tracer, самостоятельно реализовав его
- Сравнить собственный рендерер с проверенной эталонной реализацией
- На практике изучить концепции физически корректного рендеринга
Быстрый старт
- 1
Клонируйте репозиторий с GitHub
- 2
Настройте сборку с помощью CMake из корневой папки проекта
cmake -B build - 3
Соберите все цели
cmake --build build - 4
Запустите программу и сохраните изображение в файл PPM
build\Debug\inOneWeekend > image.ppm
Что важно знать
- В этом репозитории представлен исходный код для сравнения с вашей собственной работой, а не отдельное приложение.
Темы
Частые вопросы
- Что такое raytracing.github.io?
- Бесплатная серия книг, которая учит с нуля создавать ray tracer на C++ и содержит полный исходный код для каждого этапа. Ray Tracing in One Weekend — серия из трёх книг, в которых читатели шаг за шагом пишут ray tracer. В первой книге рассматривается основной конвейер и создаётся работающий рендерер; во второй, The Next Week, добавляются более продвинутые возможности рендеринга; третья, The Rest of Your Life, подробнее раскрывает лежащие в их основе методы.
- raytracing.github.io можно использовать бесплатно? Какая у него лицензия?
- raytracing.github.io распространяется с открытым исходным кодом под лицензией CC0-1.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- raytracing.github.io всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в raytracing.github.io — 10 авг. 2026 г..
- Для чего можно использовать raytracing.github.io?
- Разобраться в работе ray tracer, самостоятельно реализовав его Сравнить собственный рендерер с проверенной эталонной реализацией На практике изучить концепции физически корректного рендеринга
- Как установить raytracing.github.io?
- Клонируйте репозиторий с GitHub Настройте сборку с помощью CMake из корневой папки проекта: cmake -B build Соберите все цели: cmake --build build Запустите программу и сохраните изображение в файл PPM: build\Debug\inOneWeekend > image.ppm
- Где скачать raytracing.github.io?
- Исходный код и инструкции по установке — на GitHub: https://github.com/RayTracing/raytracing.github.io
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
pbrt-v4 — физически корректный трассировщик лучей из 4-го издания книги Physically Based Rendering, написанный на C++.
Blender — бесплатный пакет с открытым исходным кодом для создания 3D-контента: моделирования, риггинга, анимации, симуляции, рендеринга, композитинга, трекинга движения и видеомонтажа.
Бесплатный иллюстрированный учебник по структурам данных и алгоритмам с открытым исходным кодом и исполняемыми примерами на более чем дюжине языков программирования.
Бесплатная книга с открытым исходным кодом, которая учит Vim и Vimscript и уделяет внимание самым полезным возможностям редактора.
Бета-мод Fabric, добавляющий трассировку путей NVIDIA RTX Remix в Minecraft Java Edition 1.21.1 на видеокартах GeForce RTX.