# ky
**Repository Path**: yhyu13/ky
## Basic Information
- **Project Name**: ky
- **Description**: single file, pbrt style, educational ray tracing renderer🖼️
- **Primary Language**: C++
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-21
- **Last Updated**: 2026-03-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ky
[中文讲解](https://infancy.github.io/smallpt2pbrt.html)
single file ray tracing renderer, [100](./smallpt2pbrt/nanopt.cpp)/[300](./smallpt2pbrt/smallpt_comment.cpp)/[1000](./smallpt2pbrt/smallpt_rewrite.cpp)/[4000](./ky.cpp) lines of C++20, PBRT-like architecture, step-by-step integrator.
the name `ky` is meaningless, you can call this project `structured smallpt`, `smallpbrt` etc.
# feature
`render_debug()`:

`render_lighting_enum()`:

`render_mis_scene()`:

`render_multiple_scene()`:

# course&renderer
* Ray Tracing in One Weekend https://raytracing.github.io/books/RayTracingInOneWeekend.html
* Scratchapixel https://www.scratchapixel.com
* Advanced Computer Graphics | RGL http://rgl.epfl.ch/courses/ACG20
* Nori https://wjakob.github.io/nori/
* Realistic (& Advanced) Image Synthesis http://www.cim.mcgill.ca/~derek/ecse446.html
* ecsex46/fall-2019: ECSE 446/546 & COMP 598/599: Realistic/Advanced Image Synthesis https://github.com/ecsex46/fall-2019
* COMPUTER GRAPHICS(CMU 15-462/662) http://15462.courses.cs.cmu.edu
* CMU-Graphics/Scotty3D: Base code for 15-462/662: Computer Graphics at Carnegie Mellon University https://github.com/CMU-Graphics/Scotty3D
# resources
- smallpt: Global Illumination in 99 lines of C++ http://www.kevinbeason.com/smallpt/
- C# vs C++ 全局照明渲染性能比试 https://www.cnblogs.com/miloyip/archive/2010/06/23/cpp_vs_cs_GI.html
- SmallVCM/SmallVCM: A (not too) small physically based renderer that implements the vertex connection and merging algortihm https://github.com/SmallVCM/SmallVCM
- ouj/safegi: implementation of safegi: an rendering system with dimensional analysis. https://github.com/ouj/safegi
- hi2p-perim/minpt: A path tracer in 300 lines of C++ https://github.com/hi2p-perim/minpt
- xelatihy/yocto-gl: Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics https://github.com/xelatihy/yocto-gl
- mmp/pbrt-v3: Source code for pbrt, the renderer described in the third edition of "Physically Based Rendering: From Theory To Implementation", by Matt Pharr, Wenzel Jakob, and Greg Humphreys. https://github.com/mmp/pbrt-v3
- mmp/pbrt-v4: Source code to pbrt, the ray tracer described in the forthcoming 4th edition of the "Physically Based Rendering: From Theory to Implementation" book. https://github.com/mmp/pbrt-v4
- mitsuba-renderer/mitsuba3: Mitsuba 3: A Retargetable Forward and Inverse Renderer https://github.com/mitsuba-renderer/mitsuba3
- LuisaGroup/LuisaRender: High-Performance Cross-Platform Monte Carlo Renderer Based on LuisaCompute https://github.com/LuisaGroup/LuisaRender
- Source/Render/Cycles - Blender Developer Wiki https://wiki.blender.org/wiki/Source/Render/Cycles
# milestone
- [x] run smallpt
- [x] rewrite smallpt
- [x] geometry
- [x] shape
- [x] disk
- [x] triangle
- [x] rectangle
- [x] sphere
- [x] scene
- [x] camera
- [x] material
- [x] light
- [x] integrator
- [ ] cmd
- [ ] step-by-step integrator
- [x] render depth, normal
- [ ] render point light
- [ ] render spuclar material
- [x] render direct lighting(sampling brdf, sampling lighting)
- [x] MIS
- [x] recursion style path tracing
- [x] iterative style path tracing
- [x] bsdf/material
- [x] Phong
- [x] scene
- [x] mis scene