Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

amada/PRT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRT - Playground for Ray Tracing

This is a playground repository for ray tracing-related experiments. The implementation is done from scratch, using CPU, and referencing various resources, especially Physically Based Rendering From Theory to Implementation.

Features

  • Support for acceleration with CPU SIMD
    • Architectures
      • Arm Neon
      • SSE/AVX (No support for AVX-512)
    • Computations
      • N rays - triangle intersection
      • Ray - N triangles intersection
      • N rays - BBox intersection
      • Ray - BBox intersection
      • Bilinear filtering
  • Acceleration structures
    • BVH for triangle mesh
      • Two children, and multiple triangles in leaf node
  • Ray packet tracing
    • Primary rays
    • Occlude rays
    • Secondary rays/binning
    • Compaction
  • Path tracing
    • Indirect diffuse
    • Perfect specular
    • Emissive
    • BSDF
    • Refraction
    • Volumetric
  • Direct lights
    • Directional light
    • Infinite area light
    • Point light
    • Spot light
  • Texture mapping
    • Diffuse
    • Alpha mask
    • Bump
    • Bilinear filtering
    • Mipmapping
    • Tiled access
  • Camera

Supported platforms

The code is developed primarily on macOS, but should work on other platforms.

  • macOS x86/Apple M1
  • Windows/ARM/x64
  • Raspberry Pi

How to build

Use CMake to build

Rendered images

Cornell Box + Teapot

Cornell Box + Teapot

San Miguel

San Miguel

san-miguel-low-poly from https://casual-effects.com/data/

Sponza

Sponza

Crytek Sponza from https://casual-effects.com/data/

Zero-Day

Zero-Day

https://developer.nvidia.com/orca/beeple-zero-day

External repositories

References

About

Playground for ray tracing

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages