context
context
将一段可复用的着色器算法(如三平面映射)封装起来,并将其应用于其他节点,实现“做什么”与“如何做”的分离。
核心优势
通过将复杂的算法(如纹理投影)封装成可复用的模块,极大地简化了主材质的逻辑,提升了代码的可读性、可组合性和可维护性。
常见用途
实现三平面纹理映射(Triplanar Mapping)
创建 Matcap 或屏幕空间 UV 效果
封装自定义的颜色校正或程序化滤镜
构建可复用的高级函数
如何调整
通过将一个动态变化的节点(如一个使用了 `timerLocal` 的滚动纹理)作为上下文的输入,可以实现高级动态效果。例如,将滚动纹理传入 `triplanarTexture` 上下文,会使纹理在模型的各个面上无缝、同步地流动。
代码示例
1// 创建一个三平面映射上下文,并直接获取最终颜色
2const finalColor = context( triplanarTexture( rockTexture, normalWorld, 10.0 ) );