A toy ray tracer engine as a practice to introductory computer graphics.
Featuring a Cycles Renderer-like composable shader system in Blender and more.
-
Shaders
- Phong
- Diffuse
- Reflection
- Refraction
- (WIP) Chessboard
- Rough surface shader
- Transparent (Fresnel)
- Solid
- Glass
- Mirror
-
Light sources
- Point light
-
Objects
- Sphere
- Triangle & Rectangle (one-sided or double-sided)
- Triangle mesh (imported via Wavefront .obj file), vertex normals supported
- Chessboard plane
- Object transformations (rotation/translation/scaling)
-
Camera & Scene
- Perspective & Orthogonal view
- Ambient light and ambient color
-
Image
- Supersampling Anti-aliasing
- Skybox
- Bezier surface
- Area light & soft shadow
- Illuminating object
- Monte-Carlo tracer
- Scripting language for describing the scene
Checkout gallery for more!
- Introduction to Ray Tracing: a Simple Method for Creating 3D Images
- Reflections and Refractions in Ray Tracing
- Reflection, Refraction and Fresnel
- Ambient, Diffuse, Specular and Emissive lighting
- StackOverflow: Refraction in Raytracing?
- Cornell CS4620/5620: Lecture 35
- Bézier Curves and Surfaces: the Utah Teapot
- Learn Computer Graphics From Scratch!
- Countless articles on scratchapixel
- Transformation Hierarchy
- A brief computer graphics / rendering course
- Akenine-Moller et al, "Real-Time Rendering", 3rd edition
- Transforming Normals / Tutorial