fix(rendering): restore retail terrain texture tiling
Carry TerrainTex.TexTiling through the terrain atlas and upload a layer-indexed table to the modern bindless shader so base, overlay, and road textures repeat at retail scale. Keep alpha masks cell-scaled and preserve retail's verified source-level-zero high-detail selection. Add the named-retail pseudocode, WorldBuilder/ACE/ACME cross-reference, adapter conformance tests, and inventory documentation so a future renderer migration keeps the contract. Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
parent
84b7d2d7cd
commit
bb5acab9e6
7 changed files with 297 additions and 7 deletions
|
|
@ -153,6 +153,15 @@ use from WB rather than re-implement.
|
|||
| `TextureAtlasManager` | Texture atlas builder |
|
||||
| `VertexLandscape` | Terrain vertex format |
|
||||
|
||||
**Modern terrain adapter:** acdream's bindless path uses `TerrainAtlas` plus
|
||||
`TerrainModernRenderer` rather than WB's draw manager, but retains
|
||||
`LandSurfaceManager`'s layer-indexed `TerrainTex.TexTiling` contract. The
|
||||
36-entry table is uploaded to `terrain_modern.frag`; base, overlay, and road
|
||||
layers each use their owning repeat count while alpha masks stay at cell scale.
|
||||
Retail `TexMerge::CopyAndTile` (`0x00503580`) and `TexMerge::Merge`
|
||||
(`0x005038C0`) are the behavior oracle; see
|
||||
`docs/research/2026-07-13-retail-terrain-texture-tiling-pseudocode.md`.
|
||||
|
||||
### Scenery (procedural placement: trees, bushes, rocks, fences)
|
||||
|
||||
| Component | What it does |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue