# Live 3D environment assets

Local assets used by the realtime renderer (Rust/wgpu, `engine/`). Everything here is
[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) from [Poly Haven](https://polyhaven.com);
the game never contacts Poly Haven at runtime.

- `materials/` — PBR texture sets (albedo, OpenGL normal, roughness, displacement) packed at
  load time into one 22-layer texture array used by terrain, roads, buildings and props.
  Built by `scripts/import-materials.mjs` (layers 0–3 by `scripts/import-environment.mjs`).
- `models/` — trees, shrubs, rocks and plants as GLB, each with a near (`name.glb`) and a
  far (`name-low.glb`) level of detail produced with meshoptimizer; textures re-encoded as
  1024 px WebP. Built by `scripts/import-vegetation.mjs` and `scripts/import-environment.mjs`.
  Roadside trees draw the low LOD (broadleaf crowns rebuilt at load by thinning whole leaves of the
  near mesh); impostors with albedo and crown normals are baked from the near meshes at runtime.

## Sources

| Asset                                      | Poly Haven source                                                                    | Authors                                      |
| ------------------------------------------ | ------------------------------------------------------------------------------------ | -------------------------------------------- |
| Asphalt 02                                 | [asphalt_02](https://polyhaven.com/a/asphalt_02)                                     | Rob Tuytel                                   |
| Leafy Grass                                | [leafy_grass](https://polyhaven.com/a/leafy_grass)                                   | Charlotte Baglioni                           |
| Gravel Road                                | [gravel_road](https://polyhaven.com/a/gravel_road)                                   | Amal Kumar                                   |
| Rock Face 03                               | [rock_face_03](https://polyhaven.com/a/rock_face_03)                                 | Dario Barresi, Rico Cilliers                 |
| Pine Sapling Small                         | [pine_sapling_small](https://polyhaven.com/a/pine_sapling_small)                     | Rob Tuytel, Rico Cilliers                    |
| Fir Sapling                                | [fir_sapling](https://polyhaven.com/a/fir_sapling)                                   | Rob Tuytel, Rico Cilliers                    |
| Boulder 01                                 | [boulder_01](https://polyhaven.com/a/boulder_01)                                     | Rico Cilliers                                |
| Rock Face 01                               | [rock_face_01](https://polyhaven.com/a/rock_face_01)                                 | Dario Barresi                                |
| Pine Tree 01                               | [pine_tree_01](https://polyhaven.com/a/pine_tree_01)                                 | Rob Tuytel, Rico Cilliers                    |
| Rosendal Mountain Midmorning               | [rosendal_mountain_midmorning](https://polyhaven.com/a/rosendal_mountain_midmorning) | Dimitrios Savva, Jarod Guest                 |
| Jacaranda Tree                             | [jacaranda_tree](https://polyhaven.com/a/jacaranda_tree)                             | Rob Tuytel, Rico Cilliers                    |
| Island Tree 02                             | [island_tree_02](https://polyhaven.com/a/island_tree_02)                             | Rob Tuytel, Rico Cilliers                    |
| Tree Small 02                              | [tree_small_02](https://polyhaven.com/a/tree_small_02)                               | Rico Cilliers                                |
| Shrub 02                                   | [shrub_02](https://polyhaven.com/a/shrub_02)                                         | Rico Cilliers                                |
| Shrub 03                                   | [shrub_03](https://polyhaven.com/a/shrub_03)                                         | Rico Cilliers                                |
| Shrub 04                                   | [shrub_04](https://polyhaven.com/a/shrub_04)                                         | Rico Cilliers                                |
| Quiver Tree 01                             | [quiver_tree_01](https://polyhaven.com/a/quiver_tree_01)                             | James Ray Cock, Dario Barresi, Rico Cilliers |
| Wild Rooibos Bush                          | [wild_rooibos_bush](https://polyhaven.com/a/wild_rooibos_bush)                       | James Ray Cock, Jenelle van Heerden          |
| Dead Tree Trunk 02                         | [dead_tree_trunk_02](https://polyhaven.com/a/dead_tree_trunk_02)                     | Jenelle van Heerden, Rico Cilliers           |
| Fern 02                                    | [fern_02](https://polyhaven.com/a/fern_02)                                           | Rob Tuytel, Rico Cilliers                    |
| Namaqualand Boulder 02                     | [namaqualand_boulder_02](https://polyhaven.com/a/namaqualand_boulder_02)             | Greg Zaal, Rico Cilliers                     |
| Street Lamp 01                             | [street_lamp_01](https://polyhaven.com/a/street_lamp_01)                             | Josh Dean                                    |
| Snow 02 (material `snow`)                  | [snow_02](https://polyhaven.com/a/snow_02)                                           | Rob Tuytel                                   |
| Coast Sand 01 (material `sand`)            | [coast_sand_01](https://polyhaven.com/a/coast_sand_01)                               | Rob Tuytel                                   |
| Forest Floor (material `forest`)           | [forest_floor](https://polyhaven.com/a/forest_floor)                                 | eye-candy.xyz                                |
| Farm Furrows (material `soil`)             | [farm_furrows](https://polyhaven.com/a/farm_furrows)                                 | Amal Kumar                                   |
| Dirt (material `dirt`)                     | [dirt](https://polyhaven.com/a/dirt)                                                 | Charlotte Baglioni                           |
| Cobblestone 01 (material `cobble`)         | [cobblestone_01](https://polyhaven.com/a/cobblestone_01)                             | Rob Tuytel                                   |
| Rectangular Paving (material `paving`)     | [rectangular_paving](https://polyhaven.com/a/rectangular_paving)                     | Dimitrios Savva                              |
| Dark Rock (material `darkrock`)            | [dark_rock](https://polyhaven.com/a/dark_rock)                                       | Amal Kumar                                   |
| Brown Mud 02 (material `mud`)              | [brown_mud_02](https://polyhaven.com/a/brown_mud_02)                                 | Rob Tuytel                                   |
| Dry Ground 01 (material `drygrass`)        | [dry_ground_01](https://polyhaven.com/a/dry_ground_01)                               | Rob Tuytel                                   |
| Concrete Wall 008 (material `concrete`)    | [concrete_wall_008](https://polyhaven.com/a/concrete_wall_008)                       | Dario Barresi, Charlotte Baglioni            |
| White Stucco 02 (material `plaster`)       | [white_stucco_02](https://polyhaven.com/a/white_stucco_02)                           | Dimitrios Savva                              |
| Red Brick (material `brick`)               | [red_brick](https://polyhaven.com/a/red_brick)                                       | Rob Tuytel                                   |
| Clay Roof Tiles (material `roofclay`)      | [clay_roof_tiles](https://polyhaven.com/a/clay_roof_tiles)                           | Amal Kumar                                   |
| Grey Roof Tiles (material `roofslate`)     | [grey_roof_tiles](https://polyhaven.com/a/grey_roof_tiles)                           | Rob Tuytel                                   |
| Weathered Plank Siding (material `wood`)   | [weathered_plank_siding](https://polyhaven.com/a/weathered_plank_siding)             | Dimitrios Savva                              |
| Box Profile Metal Sheet (material `metal`) | [box_profile_metal_sheet](https://polyhaven.com/a/box_profile_metal_sheet)           | Amal Kumar                                   |
| Old Stone Wall (material `stonewall`)      | [old_stone_wall](https://polyhaven.com/a/old_stone_wall)                             | Charlotte Baglioni                           |
