Clean stale tuft density comment
This commit is contained in:
@@ -172,7 +172,6 @@ capturedAt / durationMs / label
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| D1 | `export_cesium.py` 旧回退表 | `"Office White Metal Facade"` 四张表里都有,但 `catalog` 里已无此材质——只作为旧 `.blend` 回退兼容保留 |
|
| D1 | `export_cesium.py` 旧回退表 | `"Office White Metal Facade"` 四张表里都有,但 `catalog` 里已无此材质——只作为旧 `.blend` 回退兼容保留 |
|
||||||
| D2 | `scene-layers.js` vs `catalog.py` | 同一批图层的颜色两侧各自手调,无一致性保证(**这是刻意的**,见[图层表](../pipeline/layer-registry.md#为什么颜色刻意不同步)) |
|
| D2 | `scene-layers.js` vs `catalog.py` | 同一批图层的颜色两侧各自手调,无一致性保证(**这是刻意的**,见[图层表](../pipeline/layer-registry.md#为什么颜色刻意不同步)) |
|
||||||
| D3 | `generate_scene.py` `tuft_density_wave` | 注释仍在跟已删除的 hedge banding 作对比 |
|
|
||||||
|
|
||||||
**碰到它们不要顺手修**——修复会改变产物或扩大 diff,属于独立决定。
|
**碰到它们不要顺手修**——修复会改变产物或扩大 diff,属于独立决定。
|
||||||
|
|
||||||
@@ -189,7 +188,7 @@ capturedAt / durationMs / label
|
|||||||
| 一次改十个地方再跑校验 | 差异定位不到具体改动 |
|
| 一次改十个地方再跑校验 | 差异定位不到具体改动 |
|
||||||
| 改 stage 打印格式 | 静默破坏契约 |
|
| 改 stage 打印格式 | 静默破坏契约 |
|
||||||
| 摘要里保留不稳定字段 | 检查变噪音,最终被忽略 |
|
| 摘要里保留不稳定字段 | 检查变噪音,最终被忽略 |
|
||||||
| 顺手修 D1–D3 | 改变产物或扩大 diff |
|
| 顺手修 D1 / D2 | 改变产物或扩大 diff |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
{"file": ".trellis/spec/blender/index.md", "reason": "Check the generate_scene.py edit remains within Blender layer constraints."}
|
||||||
|
{"file": ".trellis/spec/guides/artifact-parity-guide.md", "reason": "Verify D3 is removed only after the stale comment is corrected."}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
{"file": ".trellis/spec/blender/index.md", "reason": "Blender layer constraints and validation expectations for generate_scene.py changes."}
|
||||||
|
{"file": ".trellis/spec/guides/artifact-parity-guide.md", "reason": "Contains the D3 known-defect entry and parity guidance for comment-only changes."}
|
||||||
51
.trellis/tasks/08-03-clean-tuft-density-comment/prd.md
Normal file
51
.trellis/tasks/08-03-clean-tuft-density-comment/prd.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# Clean stale tuft density comment
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Clean up the documented D3 comment debt around `tuft_density_wave()` so the
|
||||||
|
code and Trellis specs no longer reference a deleted hedge-banding comparison.
|
||||||
|
|
||||||
|
This is a documentation/comment correction only. It should not change Blender
|
||||||
|
scene generation behavior or generated artifacts.
|
||||||
|
|
||||||
|
## Background
|
||||||
|
|
||||||
|
- `.trellis/spec/guides/artifact-parity-guide.md` records D3:
|
||||||
|
`generate_scene.py` `tuft_density_wave` has a stale comment comparing lawn
|
||||||
|
tuft density with deleted hedge banding.
|
||||||
|
- `blender/generate_scene.py:354` defines `tuft_density_wave(x, y)`.
|
||||||
|
- The current function body is still valid deterministic scatter logic; only
|
||||||
|
the explanatory comment is stale.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
1. Update the comment above `tuft_density_wave()` to describe the current lawn
|
||||||
|
tuft spacing intent without referencing removed hedge banding behavior.
|
||||||
|
2. Remove or update the D3 entry in
|
||||||
|
`.trellis/spec/guides/artifact-parity-guide.md` so it no longer lists this
|
||||||
|
as an outstanding known defect after the code comment is corrected.
|
||||||
|
3. Do not change `tuft_density_wave()` math, tuft sampling thresholds, grass
|
||||||
|
material behavior, object names, counts, or scene output.
|
||||||
|
4. Do not change D1 or D2.
|
||||||
|
5. Do not change parity ignore lists.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
- [ ] `blender/generate_scene.py` no longer has a stale hedge-banding
|
||||||
|
comparison near `tuft_density_wave()`.
|
||||||
|
- [ ] `.trellis/spec/guides/artifact-parity-guide.md` no longer records D3 as
|
||||||
|
outstanding.
|
||||||
|
- [ ] `python3 -m py_compile blender/generate_scene.py` passes.
|
||||||
|
- [ ] `python3 -m unittest blender/tests/test_pure.py` passes.
|
||||||
|
- [ ] `git diff` shows no change to `tuft_density_wave()` executable code.
|
||||||
|
|
||||||
|
## Out Of Scope
|
||||||
|
|
||||||
|
- Any Blender/Cesium artifact-changing behavior.
|
||||||
|
- Full parity capture, because the task is comment/spec-only and acceptance
|
||||||
|
explicitly verifies no executable code changed.
|
||||||
|
- D1 / D2 cleanup.
|
||||||
|
|
||||||
|
## Open Questions
|
||||||
|
|
||||||
|
None.
|
||||||
26
.trellis/tasks/08-03-clean-tuft-density-comment/task.json
Normal file
26
.trellis/tasks/08-03-clean-tuft-density-comment/task.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"id": "clean-tuft-density-comment",
|
||||||
|
"name": "clean-tuft-density-comment",
|
||||||
|
"title": "Clean stale tuft density comment",
|
||||||
|
"description": "",
|
||||||
|
"status": "in_progress",
|
||||||
|
"dev_type": null,
|
||||||
|
"scope": null,
|
||||||
|
"package": null,
|
||||||
|
"priority": "P2",
|
||||||
|
"creator": "dingkang",
|
||||||
|
"assignee": "dingkang",
|
||||||
|
"createdAt": "2026-08-03",
|
||||||
|
"completedAt": null,
|
||||||
|
"branch": null,
|
||||||
|
"base_branch": "main",
|
||||||
|
"worktree_path": null,
|
||||||
|
"commit": null,
|
||||||
|
"pr_url": null,
|
||||||
|
"subtasks": [],
|
||||||
|
"children": [],
|
||||||
|
"parent": null,
|
||||||
|
"relatedFiles": [],
|
||||||
|
"notes": "",
|
||||||
|
"meta": {}
|
||||||
|
}
|
||||||
@@ -352,9 +352,9 @@ def load_tuft_variants():
|
|||||||
|
|
||||||
|
|
||||||
def tuft_density_wave(x, y):
|
def tuft_density_wave(x, y):
|
||||||
# A lawn wants gentle clumping, not the hard banding a shrub bed needs:
|
# Low-amplitude deterministic waves leave occasional open patches while
|
||||||
# low amplitude keeps most of the polygon planted so the bare stretches
|
# keeping most of the lawn planted, so the tufts read as uneven grass
|
||||||
# read as mown patches rather than as dead ground.
|
# rather than a regular grid.
|
||||||
return (math.sin(x * 0.21 + y * 0.17)
|
return (math.sin(x * 0.21 + y * 0.17)
|
||||||
+ 0.55 * math.sin(x * 0.44 - y * 0.29 + 1.3))
|
+ 0.55 * math.sin(x * 0.44 - y * 0.29 + 1.3))
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,9 @@
|
|||||||
collection 顺序、counts、focus、road counts、scene metadata 和 `SCENE_DONE` ownership。
|
collection 顺序、counts、focus、road counts、scene metadata 和 `SCENE_DONE` ownership。
|
||||||
Blender/Cesium parity before/after 在两个样本上均 identical;P2 registry 缺口收口为
|
Blender/Cesium parity before/after 在两个样本上均 identical;P2 registry 缺口收口为
|
||||||
当前保守契约,未做全量 ownership 反转。
|
当前保守契约,未做全量 ownership 反转。
|
||||||
|
- 清理 D3 过期注释债:`tuft_density_wave()` 的说明不再引用已删除的 hedge banding
|
||||||
|
对比,`.trellis/spec/guides/artifact-parity-guide.md` 也不再把 D3 列为待修缺陷;
|
||||||
|
只改注释 / spec / changelog,未改 Blender 场景生成逻辑。D1 / D2 继续保留为已知约束。
|
||||||
|
|
||||||
## 2026-07-31(三)远看发黑的真正原因:反照率没被提亮
|
## 2026-07-31(三)远看发黑的真正原因:反照率没被提亮
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user