主要观点:作者对着色器着迷,介绍了射线追踪技术(Raymarching)及其在创建液体渲染场景中的应用,通过使用 React Three Fiber(R3F)和 Three.js 着色语言(TSL)构建简单的射线追踪场景,包括设置、创建射线追踪循环、添加 SDF 形状、平滑最小函数和添加光照等步骤。
关键信息:
- TSL 旨在降低创建着色器的入门门槛,需使用 Three.js 中的 WebGPURenderer,R3F 用于设置基本画布和场景。
- 射线追踪基本原理是沿射线步进并测试与场景中物体的交点,通过 SDF 确定物体表面距离。
- 可添加多种 SDF 形状如球体,并通过改变参数实现不同效果,使用平滑最小函数使形状更具粘性。
- 添加光照可创建深度和动态效果,包括环境光、半球光、漫反射光、镜面光和菲涅尔效应等。
重要细节: - 代码中多处使用各种函数和变量,如
Fn
、vec3
、uv
、timerLocal
等,以及不同的着色和计算步骤。 - 提供了多个参考资源,包括 Inigo Quilez 的相关文章、kishimisu 的介绍、Maxime Heckel 的教程等。
- 给出了后续可尝试的扩展内容,如添加立方体、添加噪声、探索其他组合函数等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。