diff --git a/1f.-Environment-Textures-for-3D-Assets.md b/1f.-Environment-Textures-for-3D-Assets.md new file mode 100644 index 0000000..9220861 --- /dev/null +++ b/1f.-Environment-Textures-for-3D-Assets.md @@ -0,0 +1,223 @@ +# Environment Textures for 3D Assets + +This page covers 2D textures used on NETFISHING terrain, cliffs, paths, buildings, and other 3D environment assets. + +Environment textures should support the low-poly forms rather than simulate realistic materials. + +## Visual direction + +Textures should be: + +- Low resolution +- Palette limited +- Graphic +- Slightly irregular +- Easy to tile +- Readable from the gameplay camera +- Compatible with chunky low-poly geometry + +The reference environment uses: + +- Olive grass with large angular value patches +- Dark brown and reddish cliff faces +- Sparse irregular marks +- Denser patterning near some edges +- Little or no realistic surface detail +- Hard color transitions +- No photographic noise + +## Texture role + +A texture should add: + +- Color variation +- Material identity +- Controlled pattern +- Directional interest +- Visual breakup on broad surfaces + +It should not: + +- Hide poor geometry +- Simulate every small bump +- Overpower the model silhouette +- Introduce realistic detail inconsistent with the world +- Create excessive visual noise + +## Suggested sizes + +Typical tile sizes: + +- 64 × 64 +- 128 × 128 +- 256 × 256 + +Use the lowest resolution that supports the intended pattern. + +Large terrain areas may still use a small repeating texture. + +Do not default to 2048 × 2048 or 4096 × 4096 textures. + +## Tiling + +A tileable texture must repeat cleanly on all intended edges. + +Check: + +- Left to right +- Top to bottom +- Four-way repetition +- Large repeated surface +- Different UV scales + +Avoid obvious single central features that create a visible grid when repeated. + +Some repeated motifs are acceptable in a stylized game, but they should not dominate the scene. + +## Pattern scale + +Pattern elements should be large enough to remain visible but not so large that every repeated tile becomes obvious. + +For grass: + +- Use broad angular patches +- Use nearby olive and moss values +- Keep bright flowers or accents separate as props where possible +- Avoid drawing individual grass blades across the entire texture + +For soil and cliffs: + +- Use broad reddish-brown shapes +- Add sparse darker marks +- Use edge or base patterning deliberately +- Avoid realistic stone photographs + +For paths: + +- Use subtle value shifts +- Use broad directional shapes +- Avoid tiny pebbles everywhere +- Keep the route visually distinct from grass + +For wood: + +- Use a few broad grain marks +- Keep plank shape primarily in geometry +- Avoid dense realistic grain + +For sand: + +- Use warm tan values +- Add subtle large patches +- Avoid noisy individual grains + +## Texture orientation + +Some textures may require a clear orientation. + +Examples: + +- Cliff face +- Wood grain +- Water-edge staining +- Grass edge +- Roof shingles + +The filename or documentation should indicate directional use. + +## Transparency + +Avoid transparency in ordinary opaque terrain textures. + +Use transparency only for assets designed for it, such as: + +- Foliage cards +- Certain decals +- Edge overlays + +Transparent textures require careful Godot testing because they can affect sorting and performance. + +## Mipmaps + +Environment textures viewed in 3D may need mipmaps to reduce shimmer at distance. + +Test both: + +- Close gameplay view +- Distant camera view +- Oblique angles +- Camera movement + +Pixel art with mipmaps may soften at distance, but disabling mipmaps can create severe shimmering. Choose the setting that looks best in motion. + +UI icon import rules do not automatically apply to 3D environment textures. + +## Filtering + +Nearest-neighbor filtering preserves pixel structure but may shimmer on distant or angled 3D surfaces. + +Possible approaches include: + +- Nearest filtering with mipmaps +- Nearest filtering without mipmaps for small close objects +- Carefully tested linear filtering where the pixel structure still reads +- Shader-based pixel or palette treatment later + +The issue should identify the intended material and viewing conditions. + +Do not assume one import setting is correct for every 3D texture. + +## UV guidance + +Textures should be tested on actual or representative geometry. + +Contributors should provide: + +- Intended tile scale +- Example UV mapping +- Preview on a simple mesh +- Preview in Godot + +Avoid stretching a square texture across a very long surface without appropriate UV repetition. + +## Variants + +A useful environment set may include: + +- Base grass +- Dark grass +- Grass edge +- Soil +- Cliff +- Path +- Sand +- Wood + +Do not create dozens of nearly identical variants without a clear use. + +## Seam and repetition test + +Before submission: + +1. Tile the texture at least 4 × 4. +2. View it zoomed out. +3. Look for visible seams. +4. Look for repeated faces, symbols, or obvious central marks. +5. Test it on angled geometry. +6. Walk past it in Godot. + +## Deliverables + +Include: + +- Editable source +- Exported PNG +- Native dimensions +- Palette +- Tiling status +- Intended material +- Recommended UV scale +- Import-setting notes +- Tiled preview +- Godot screenshot on representative geometry +- Related issue number \ No newline at end of file