Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Ray Tracing in One Weekend

Реализация трассировщика лучей из книги Ray Tracing in One Weekend на C# / .NET 10.

Рендерит сцену со случайно расставленными сферами (diffuse, metal, dielectric) и сохраняет результат в файл output.ppm (формат PPM P3).

Возможности

  • Материалы: Lambertian (диффузный), Metal (с fuzz), Dielectric (стекло с эффектом Френеля по Шлику)
  • Антиалиасинг через мультисэмплинг, gamma-коррекция
  • Позиционируемая камера: FOV, defocus blur (глубина резкости), focus distance
  • Параллельный рендер по строкам (Parallel.For)

Требования

Запуск

dotnet run --project src/RayTracing -c Release

Результат — output.ppm в текущем каталоге. Открыть можно, например, в GIMP или конвертировать в PNG:

magick output.ppm output.png   # ImageMagick

Настройка

Параметры сцены и камеры задаются в Program.cs:

Параметр Описание
ImageWidth ширина изображения в пикселях
AspectRatio соотношение сторон
SamplesPerPixel сэмплов на пиксель (качество антиалиасинга)
MaxDepth макс. глубина отскоков луча
VFov вертикальный угол обзора
LookFrom/LookAt позиция и точка прицела камеры
DefocusAngle сила размытия (0 — отключено)
FocusDist дистанция фокусировки

Структура

Файл Назначение
Program.cs точка входа, сборка сцены
Camera.cs рендер, генерация лучей, запись PPM
Vector3.cs вектор/точка/цвет и векторная математика
Ray.cs луч
Sphere.cs сфера и пересечение с лучом
Hittable.cs IHittable, HitRecord, список объектов
Material.cs материалы и рассеивание лучей
Interval.cs числовой интервал
Common.cs / Types.cs утилиты, константы, псевдонимы типов

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages