Files
nan 198fcbf55b
Some checks failed
Test / test (push) Has been cancelled
Initial public release
2026-09-19 21:31:36 +08:00

57 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## ADDED Requirements
### Requirement: Image layer exposes alpha adjustment strength
O Image Layer SHALL 在默认折叠的 `Options` 面板中依次提供 `Alpha Fix`、`Normal Scale`、`Object Space`。Alpha Fix SHALL 为浮点输入,范围 0–1,subtype 为 FACTOR,默认 0,并以该值控制内部 Alpha Float Curve 的 Factor。
#### Scenario: Options are initially collapsed
- **WHEN** 创建 O Image Layer 节点实例
- **THEN** Options 面板 SHALL 默认折叠,包含 Alpha Fix、Normal Scale、Object Space
- **AND** Color、Alpha、Normal、Bump Scale SHALL 位于面板外
#### Scenario: Adjustment is disabled
- **WHEN** Alpha Fix 为 0
- **THEN** 组输出 Alpha SHALL 等于输入 Alpha
#### Scenario: Adjustment is fully applied
- **WHEN** Alpha Fix 为 1
- **THEN** 组输出 Alpha SHALL 等于内部 Float Curve 对输入 Alpha 的求值
#### Scenario: Adjustment is partially applied
- **WHEN** Alpha Fix 为 0.5
- **THEN** 输出 SHALL 等于原始 Alpha 与完整曲线结果的平均值
### Requirement: Alpha curve follows the reference profile
Alpha 曲线 SHALL 使用四个点:起点 `(0, 0)`、低端控制点 `(0.8, 0)`、靠近右上方的平滑控制点和终点 `(1, 1)`,形成参考图中的快速上升轮廓。对输入范围 0–1,完整调整后的输出 SHALL 保持在 0–1,保持单调不减,并保持完全透明与完全不透明端值。
#### Scenario: Low alpha is suppressed
- **WHEN** 输入 Alpha 在 0–0.8 且调整强度为 1
- **THEN** 输出 Alpha SHALL 为 0,允许浮点求值误差
#### Scenario: Opaque alpha is preserved
- **WHEN** 输入 Alpha 为 1
- **THEN** 任意调整强度下输出 Alpha SHALL 为 1
### Requirement: Material creation initializes adjustment from preferences
创建使用 O Image Layer 的材质时,系统 SHALL 通过现有偏好读取入口,将 Alpha Fix 初始化为 `Adapt to Scene View Transform` 开启时的 1、关闭时的 0。
#### Scenario: Adaptation is enabled
- **WHEN** 开启适配后创建普通着色或 Shadeless 材质
- **THEN** O Image Layer 实例的 Alpha Fix SHALL 为 1
- **AND** 对应着色器 SHALL 使用该组调整后的 Alpha 输出
#### Scenario: Adaptation is disabled
- **WHEN** 关闭适配后创建材质
- **THEN** O Image Layer 实例的 Alpha Fix SHALL 为 0
#### Scenario: Color space falls back
- **WHEN** 适配开启且颜色空间解析回退到 sRGB
- **THEN** 新建 O Image Layer 实例的 Alpha Fix SHALL 仍为 1
#### Scenario: Existing material is manually adjusted
- **WHEN** 用户修改现有材质的 Alpha Fix 后切换偏好
- **THEN** 已有实例的调整值 SHALL 保留
- **AND** 后续新建材质 SHALL 使用当前偏好初始化