17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-30 15:30:28 +01:00
Files
maszyna/shaders/terrainclipmap_tin.frag
maj00r 5f34d68e6f WIP: TIN terrain system - 95% complete
Replaces heightfield with Cesium Quantized Mesh format (TIN).
Full replacement, not hybrid - TIN is the only terrain format.

Implemented:
- Format: quantizedmeshformat.h, quantizedmeshreader.h
- Triangulator: terraincooker_tin.{h,cpp} using CDT
- Cooker: terraincook now generates TIN by default
- Loader: terraintileloader fully rewritten for TIN
- GPU pool: terraintilepool_tin (VBO/IBO per tile)
- Renderer interface: terrainclipmap.cppm updated
- Shaders: terrainclipmap_tin.{vert,frag}
- Documentation: 5 comprehensive markdown files

Remaining:
- terrainclipmap.cpp render() method (partial, needs completion)
- Build testing and integration
- See TIN_INTEGRATION_GUIDE.md for next steps

Stats: 2700+ lines new code, ~50% vertex reduction expected
2026-09-17 23:02:13 +02:00

24 lines
503 B
GLSL

// TIN Terrain Fragment Shader
// Minimal material lookup, no blending for now
#version 330 core
// Input from vertex shader
in vec2 vUV;
flat in uint vMaterial;
// Uniforms
uniform sampler2DArray ground; // Material texture array
// Output
out vec4 fragColor;
void main() {
// Sample material texture
// TODO: Add blending between materials for smooth transitions
vec3 texCoord = vec3(vUV, float(vMaterial));
vec4 color = texture(ground, texCoord);
fragColor = color;
}