主要观点:介绍了光线追踪算法(raymarching)及其在 2D 和 3D 中的应用,包括有符号距离函数(signed distance function)的概念及相关公式,详细阐述了光线追踪算法的步骤,还展示了在不同维度下的演示及相关代码示例。
关键信息:
- 光线追踪在 demo 场景和 Shadertoy 网站中流行,场景中的物体由数学函数实时生成,无需 3D 几何。
- 有符号距离函数用于计算点到物体的距离,圆的距离函数为 EuclideanDistance(P,C)-R,矩形的距离函数为|max(|P-C|-(Size/2),0)|。
- 光线追踪算法步骤:设置当前点为相机原点,计算当前点到场景中物体的最小距离,沿射线移动当前点,重复步骤直到距离小于某一小值或达到最大迭代次数。
- 在 3D 中应用相同算法,通过发送射线测试是否击中物体,可添加多种物体的有符号距离函数及颜色等效果。
重要细节: - 可通过拖动点来交互计算两点间的欧几里得距离。
- 演示中可更改相机参数如近平面、视野、射线数量和迭代次数等。
- 可参考 Inigo Quilez 了解更多关于光线追踪的内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。