scriptableValue
scriptableValue
一个动态桥梁节点,允许在 CPU 端(JavaScript)通过一个变量实时驱动 GPU 上的着色器值,是创建交互式效果的核心。
核心优势
极大地简化了数据驱动和交互式视觉效果的创建过程。开发者只需在动画循环中更新节点的 .value 属性,即可高效地将动态数据传递给着色器,无需手动管理 uniform。
常见用途
通过 UI 滑块或鼠标位置实时控制材质属性(如粗糙度、颜色)。
根据游戏状态或外部数据(如角色生命值、天气 API)驱动视觉反馈。
创建基于时间或算法的平滑程序化动画(如颜色渐变、顶点位移)。
如何调整
通过在 JavaScript 中修改其 .value 属性来调整效果。例如,将其连接到 emissiveNode,并根据鼠标的 X 坐标更新其颜色值,可以使物体的自发光效果跟随光标移动而改变。
代码示例
1const dynamicRoughness = scriptableValue( 0.5 );
2material.roughnessNode = dynamicRoughness;
3
4// 在渲染循环中
5dynamicRoughness.value = ( Math.sin( elapsedTime ) + 1 ) / 2;