feat(tessellation): add screen-space adaptive tessellation and texture generator master
authorSvjatoslav <n0@gpd4>
Sat, 25 Apr 2026 13:40:24 +0000 (16:40 +0300)
committerSvjatoslav <n0@gpd4>
Sat, 25 Apr 2026 13:40:24 +0000 (16:40 +0300)
commit53b22644a6d8bb26d9430a99bdfffa3207e56597
treef653e51daed94cb03ccc3807b7cafd6b1e30bdc1
parentd325ca5c27264d4cffdb246d14d871d12555d03d
feat(tessellation): add screen-space adaptive tessellation and texture generator

Add screen-space tessellation system that subdivides textured triangles
based on pixel edge lengths, providing per-polygon LOD that adapts to
camera distance naturally. Includes safeguards against excessive
subdivision with recursion depth limits and triangle count caps.

Add TextureGenerator factory for reusable textures with configurable
borders and glow effects (solidWithBorder, glowingBorder, radialGlow).
Textures are cached with WeakReference for automatic GC when unused.

Enhance DeveloperToolsPanel with tessellation quality controls and
real-time stats display. Propagate mouse interaction controllers
through tessellated triangles to preserve clickability.

Rewrite AGENTS.md as comprehensive quick-reference guide with
task lookup table, code examples, and class catalog organized by
package.
16 files changed:
AGENTS.md
TODO.org
doc/index.org
doc/perspective-correct-textures/index.org
doc/shading/index.org
src/main/java/eu/svjatoslav/sixth/e3d/gui/DeveloperToolsPanel.java
src/main/java/eu/svjatoslav/sixth/e3d/math/Vertex.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/ShapeCollection.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/TessellatedTexturedTriangle.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/TexturedTriangle.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/package-info.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/composite/base/AbstractCompositeShape.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/tessellation/AdaptiveTessellationController.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/tessellation/ScreenSpaceTessellator.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/tessellation/package-info.java
src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/texture/TextureGenerator.java [new file with mode: 0644]