materialLineScale
materialLineScale
提供对 `LineDashedMaterial` 材质上 `scale` 属性的访问,这是一个全局缩放因子,用于在保持比例不变的情况下,统一放大或缩小整个虚线图案。
核心优势
其核心优势在于将图案的“比例”(由 dash/gap size 定义)与“尺寸”(由 scale 定义)分离,只需修改一个属性即可宏观调控整个图案,极大地简化了动态调整和动画实现。
常见用途
作为全局乘数,在不改变比例的情况下调整虚线图案的整体大小。
与相机缩放级别关联,实现视觉上大小恒定的虚线(LOD)。
通过动画将其值从一个大数过渡到 1,实现线条“绘制”或“显现”的出场效果。
作为 UI 状态指示器,通过改变 scale 使虚线轮廓在选中时变得更“密集”。
如何调整
通过在 JavaScript 中修改 `LineDashedMaterial` 的 `scale` 属性(一个数字)来调整。大于 1 的值会放大图案(线段和间隔都变长),小于 1 的值会缩小图案(线段和间隔都变短)。
代码示例
1// 在着色器内部,scale 被用于缩放沿线的距离,从而影响 dash 和 gap 的计算
2const effectiveDistance = vLineDistance.div( materialLineScale );
3
4if ( mod( effectiveDistance, dashSize.add( gapSize ) ).greaterThan( dashSize ) ) {
5
6 discard;
7
8}