--- title: 局部位置缩放 date: 2026-05-03 00:00:00 excerpt: 逐材质局部空间顶点缩放 tags: - ARC - Rendering - VertexFactory rating: ⭐ --- # 局部位置缩放 返回 [[Rendering]] ## 概述 允许通过材质图在局部空间(Local Space)对顶点位置进行缩放,实现不依赖 Actor Transform 的比例调整。 ## 实现 在各 VertexFactory 中通过 `VertexFactoryUpdateLocalPositionScale` 函数实现: ```hlsl void VertexFactoryUpdateLocalPositionScale( inout FVertexFactoryInput Input, inout FVertexFactoryIntermediates Intermediates, float3 scale) { Input.Position.xyz *= scale; } ``` 由 `USES_LOCAL_POSITION_SCALE` 宏控制启用,在世界变换之前应用。 ## 使用场景 - 角色部件的动态缩放(如拳头放大的夸张动画效果) - 不同 LOD 级别的微调 - 格斗游戏中攻击判定与视觉表现分离时的视觉调整 ## 材质属性 `MP_LocalPositionScale`(float3)通过材质图控制。参见 [[自定义材质属性]]。 ## 修改文件列表 | 文件 | 修改类型 | |------|---------| | `Shaders/Private/LocalVertexFactory.ush` | 新增缩放函数 | | `Shaders/Private/GpuSkinVertexFactory.ush` | 同上 | | `Shaders/Private/LandscapeVertexFactory.ush` | 同上 | | `Shaders/Private/MeshParticleVertexFactory.ush` | 同上 | | 所有 Particle VertexFactory | 同上 |