light2d
该项目说明了使用C进行2D灯光渲染。
所有样本均输出带有PNG。
许可证:公共领域。
基本的
使用Monte Carol积分和符号距离场(SDF)的射线行进来渲染发射圆。
源代码:
均匀采样(每个像素64个采样):
统一采样,每个像素具有不同数量的样本:
分层采样(每个像素64个采样):
抖动采样(每个像素64个采样):
各种采样方法并排比较(每个像素64个采样):
构造实体几何
源代码:
使用联合操作创建多个形状:
两个圈子中的各种CSG操作:
形状
源代码:
SDF定义的各种形状的示例:
反射
源代码: Reflection.c
有两个盒子的测试场景:
SDF梯度的可视化,可以通过中心差近似得出:
通过递归跟踪进行反射:
凹镜场景产生焦散效果:
折射
源代码: refraction.c
应用斯涅尔定律计算折射方向。 还可以处理全