positionGeometry
positionGeometry
在 TSL 中提供模型在局部空间(模型空间)下,未经任何变换的原始几何顶点位置,是所有顶点特效的起点。
核心优势
它是访问原始几何数据的核心桥梁,并且通过明确的坐标空间命名(区别于 positionWorld 等),极大地提高了着色器代码的清晰度和健壮性,减少了混淆。
常见用途
顶点置换特效(如水面、旗帜)
程序化着色(如基于高度的渐变色)
模型溶解或构建特效
如何调整
该节点本身只读,但可通过不同的数学运算来使用其输出值。例如,将其Y分量用作颜色可创建渐变;添加一个正弦波可产生波浪效果;或乘以其到原点的距离可实现爆炸/放大效果。
代码示例
1// 计算一个基于 X 坐标和时间的垂直偏移量
2const waveHeight = sin( positionGeometry.x.mul(4).add(time) ).mul(0.2);
3
4// 将偏移量添加到原始 Y 坐标上,创建新的顶点位置
5const displacedPosition = vec3(
6 positionGeometry.x,
7 positionGeometry.y.add(waveHeight),
8 positionGeometry.z
9);