diff --git a/src/world/materials.js b/src/world/materials.js index a3a665f..9199dd4 100644 --- a/src/world/materials.js +++ b/src/world/materials.js @@ -32,8 +32,13 @@ const FALLBACK_COLORS = { // also wird hier die hellere Straße (und die jetzt identisch texturierte Brücke) // abgetönt statt die Stadtfläche zu verändern. const ROAD_TINT = 0x999999; -// Felder heben sich vom Rasen ab. material.color kann nur abdunkeln, also Rot und Blau stärker als Grün; -// abgestimmt wird im Browser. +// leafy_grass ist roh sandfarben (Mittel der Diffuse-Kachel: R 151, G 131, B 89): aus der +// Vogelperspektive las sich der Park wie eine Brache, während ihn die Minimap (overview.py) grün +// zeichnet. material.color kann nur abdunkeln, also Rot und Blau stärker als Grün. Im Browser +// abgestimmt (Task 12, Schritt 7). +const PARK_TINT = 0xb4dc94; +// Felder heben sich vom Rasen ab: dieselbe Textur, aber heller getönt als PARK_TINT — gemähter Platz +// im Rasen. material.color kann nur abdunkeln, also Rot und Blau stärker als Grün. const FIELD_TINT = 0xc8f0b0; // Klone statt zweiter Ladevorgang: dieselben Texturen, eigene Tönung und eigener polygonOffset. const CLONES = { field: { from: "park", tint: FIELD_TINT }, parking: { from: "roads" } }; @@ -138,7 +143,7 @@ export function applyPolygonOffsets(materials) { export async function createMaterials(maxAnisotropy) { const loader = new TextureLoader(); - const tints = { roads: ROAD_TINT, bridges: ROAD_TINT }; + const tints = { roads: ROAD_TINT, bridges: ROAD_TINT, park: PARK_TINT }; const textured = MATERIAL_KEYS.filter((key) => !CLONES[key] && !SURFACE_COLORS[key]); const entries = await Promise.all( textured.map(async (key) =>