positionLocal
positionLocal
代表顶点着色器计算后的最终局部空间位置,并作为插值后的坐标(Varying)自动传递给片元着色器。
核心优势
核心优势在于它是一个 Varying 变量,自动将顶点着色器中计算出的最终局部位置进行插值并传递给每个片元,为创建与模型自身绑定的程序化纹理和效果提供了基础。
常见用途
在片元着色器中创建基于模型空间的程序化纹理,如3D棋盘格。
实现模型空间的特效剪裁,如根据局部坐标距离丢弃片元。
通过将其值输出为颜色,直观地调试顶点位移的结果。
如何调整
通过修改 `NodeMaterial.positionNode` 的计算逻辑(如添加噪声位移)来改变其在顶点着色器中的值。在片元着色器中,可利用其插值后的坐标来创建各种效果,如条纹图案或3D棋盘格。
代码示例
1// 基于插值后的局部坐标创建3D棋盘格图案
2const pattern = mod(
3 floor( positionLocal.x ).add( floor( positionLocal.y ) ).add( floor( positionLocal.z ) ),
4 2.0
5);
6output.color.rgb = vec3( pattern );