回顾上一篇 ShaderToy入门教程(1) - SDF 和 Raymarching 算法
继续上篇,这篇涵盖以下黑体所示内容
- 符号距离函数
- Ray-marching算法
- 曲面法线和光照
- 相机变换
- 构造实体形状(CSG)
- 模型变换
- 平移和旋转
- 比例缩放
- 非均匀缩放
- 结论
- 参考
曲面法线和光照
计算机图形中的大多数光照模型使用曲面法线的概念来计算材料在表面上的给定点处应该是什么颜色。 当曲面由显式几何体(如多边形)定义时,通常会为每个顶点指定法线,在表面上的给定点的法线通过它周围的顶点法线通过插值计算获得。
那么我们如何找到由有符号距离函数定义的场景曲面法线? 利用梯度! 从概念上讲,函数 f f f在 ( x , y , z ) (x,y,z) (x,y,z)处的梯度告诉你从 ( x , y , z ) (x,y,z) (x,y,z)向哪个方向移动将最快增加