vertexStage
vertexStage
在顶点阶段计算传入的节点,并将结果作为 Varying 插值到片元阶段使用;功能上等同于 varying(node)。
核心优势
显式把计算移到顶点阶段以降低片元负载,并自动完成顶点→片元的插值传递,语义清晰、可读性更好。
常见用途
把与顶点相关且可插值的中间量(如高度/遮罩/顶点噪声)在顶点阶段预计算,然后在片元阶段使用。
为片元阶段准备自定义 varyings,替代手写 attribute/varying。
优化:将代价较高且不需要逐像素细分的运算放在顶点阶段(例如基于位置的权重/遮罩)。
如何调整
该函数无额外参数;通过改变传入的 node 来调整效果。传入的节点必须可在顶点阶段求值(避免仅片元可用的导数/屏幕相关操作)。注意 varying 数量与插值精度限制;如需更细节请保留在片元阶段计算。
代码示例
1/* 在顶点阶段预计算高度遮罩并在片元使用 */
2const heightMask = vertexStage( smoothstep( 0.0, 5.0, positionWorld.y ) );
3material.colorNode = mix( color( 0x2e7f6e ), color( 0x113355 ), heightMask );