f31518d7e3
三个对应玩家直接可见行为的需求文档。锤击形变涵盖各向异性流动与边缘平整;表面磨损涵盖铁锈脱落与无漂移;网格质量承诺连续锻打 50+ 次后无明显退化。 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
6.1 KiB
6.1 KiB
网格质量与性能需求
项目: BladeSmith
文档类型: 需求文档(专题)
版本: 2.0
最后更新: 2026-08-11
状态: 整合自原 2026-01-22-网格质量优化细节.md
本文档从玩家视角描述网格质量与性能的需求。技术实现见 design/03-网格质量-增量式优化设计.md。总体需求见 00-锻造系统总体需求.md。
1. 玩家可见行为
1.1 正常网格质量
玩家应该看不到网格退化现象。连续锻打后,金属表面应当保持平滑、连续,不会出现奇怪形状。
初始均匀网格(良好,玩家看不见网格,只看到平滑表面):
/\ /\ /\
/__\/__\/__\
/\ /\ /\
/__\/__\/__\
1.2 网格退化现象(玩家不应看到)
如果网格质量下降,玩家会直接感受到以下问题:
视觉影响
| 现象 | 玩家感受 | 严重度 |
|---|---|---|
| 着色异常 | 表面出现条纹、色块 | 高 |
| 闪烁问题 | 出现"空洞"或闪烁 | 高 |
| 边缘锯齿 | 刀刃呈锯齿状不平整 | 高 |
| 法线扭曲 | 表面反光不自然 | 中 |
锤击后网格退化(玩家看到的是视觉缺陷):
/\ /|\ /\ ← 细长三角形导致条纹
/__\ /_|_\ /__\
^^ 过小 ^^ ← 极小三角形导致闪烁
性能影响
| 现象 | 玩家感受 | 严重度 |
|---|---|---|
| 帧率下降 | 锤击时掉帧,操作延迟 | 高 |
| 响应变慢 | 锤击到形变有明显延迟 | 高 |
| 碰撞检测失效 | 锤击检测不准确,"打空" | 高 |
数值稳定性问题(影响碰撞)
| 现象 | 玩家感受 | 严重度 |
|---|---|---|
| 浮点误差累积 | 形变计算不准确 | 中 |
| 碰撞检测不稳定 | 锤击位置判定错误 | 高 |
1.3 玩家承诺
连续锻打 50-100 次后,网格质量仍应保持良好。
具体表现为:
- 刀刃仍然平整,无明显锯齿
- 表面着色无条纹、无闪烁、无"空洞"
- 锻打不会让金属"莫名其妙"地出现奇怪形状
- 锤击响应时间 < 10ms(玩家不可察觉)
- 锤击期间帧率稳定 60 FPS
2. 玩家可调参数
| 参数功能名 | 默认值 | 范围 | 玩家感受 |
|---|---|---|---|
| 自动网格优化开关 | 开启 | 开启/关闭 | 是否自动优化网格质量 |
| 优化区域范围倍数 | 1.5 | 1.0-2.0 | 锤击影响区域的多少倍范围会被优化 |
| 边缘过渡平滑强度 | 0.5 | 0.1-1.0 | 控制顶点平滑的强度。值越大,表面越平滑 |
| 平滑迭代次数 | 2 | 1-5 | 平滑操作的重复次数。次数越多,效果越好但越慢 |
| 重网格频率 | 5 | 3-20 | 每几次锤击执行一次完整重网格。值越小质量越好但越慢 |
| 平滑优化总耗时预算 | 2.0 | 1.0-5.0 | 单次锤击的网格优化时间预算(毫秒) |
推荐参数配置
锻造平面(大范围形变):
- 优化区域范围倍数 = 2.0(大范围优化)
- 边缘过渡平滑强度 = 0.5
- 平滑迭代次数 = 2
- 重网格频率 = 10(低频重网格)
锻造边缘(精细形变):
- 优化区域范围倍数 = 1.2(局部优化)
- 边缘过渡平滑强度 = 0.5
- 平滑迭代次数 = 3
- 重网格频率 = 5(高频重网格)
性能优先模式:
- 优化区域范围倍数 = 1.0
- 边缘过渡平滑强度 = 0.3
- 平滑迭代次数 = 1
- 重网格频率 = 20(极低频重网格)
自动调参
系统会根据当前帧率自动调整优化强度:
- 帧率低(< 30 FPS): 降低优化频率,扩大优化区域
- 帧率高(> 55 FPS): 提高优化质量,增加优化频率
3. 视觉/听觉反馈
3.1 视觉反馈
- 平滑形变: 网格优化是透明的,玩家只看到平滑的形变
- 无闪烁: 表面不会出现闪烁或空洞
- 无条纹: 表面颜色连续,无明显条纹或色块
3.2 性能反馈
- 响应迅速: 锤击到形变响应时间 < 10ms
- 帧率稳定: 锤击期间帧率保持 60 FPS
3.3 调试模式(可选)
开发者可启用调试视图:
- 退化三角形热图: 显示网格质量低下的区域(红色)
- 质量热图: 显示网格质量分布(蓝色=好,红色=差)
- 性能统计: 显示每次锤击的优化耗时
4. 边界与限制(玩家不应期望的行为)
4.1 网格质量限制
- 极端形变: 当形变超过 50% 时,优化效果显著下降,玩家可能看到表面质量下降
- 拓扑变化: 系统无法处理网格撕裂、融合等拓扑变化(如锻打折叠金属)
- 细节损失: 重网格化时,顶点属性需要插值,可能有轻微精度损失
4.2 性能限制
- 内存占用: 高网格密度(100万+顶点)会增加内存占用
- 硬件依赖: 低端硬件可能需要降低重网格频率或优化质量
4.3 不可达效果
- 玩家不能期待系统支持"无限形变"而不产生网格质量下降
- 系统不会在低端硬件上保持 60 FPS(需要自动降低质量)
- 网格优化是自动的,玩家不能手动控制每个顶点的移动
5. 验收清单
- 连续锻打 50 次后网格质量仍良好
- 无明显细长三角形(长宽比 > 10:1)
- 刀刃边缘无明显锯齿
- 表面着色无条纹、无闪烁、无"空洞"
- 锻打不会让金属"莫名其妙"地出现奇怪形状
- 锤击响应时间 < 10ms(玩家不可察觉)
- 锤击期间帧率稳定 60 FPS
- 网格优化过程透明,不影响形变视觉效果
- 玩家能通过调整参数控制优化强度和频率
- 系统能根据帧率自动调整优化设置
- 单次锤击总耗时(形变+优化)≤ 7ms
- 碰撞检测稳定,不会出现"打空"或检测错误
6. 引用
- 对应技术设计: ../design/03-网格质量-增量式优化设计.md
- 总体需求: 00-锻造系统总体需求.md
- 原始设计文档(归档): ../_archive/plans/2026-01-22-网格质量优化细节.md