If the index buffer is indeed a triangle-list, then I can iterate over all of these triangles and generate 1D int8 texture with Texture Array indexes, and a new Vertex Buffer with Triangle List semantics, deoptimized, however, this is post-processing step, which I want to avoid.

Probably, I should attempt to find how Marching Cubes Extractor generates a triangle and make this one intentionally generate non-optimized VBO.

Doing a VTF with optimized VBO, IBO and a VTF 1D Texture for my huge task is impossible, because: Quote:

*if you're referencing a vertex 10 times with an index buffer, the corresponding vertex shader is still only executed one time.*The splatting algorithm needs to do (three texture fetches * number of texture maps) per fragment. Their indexes will be injected to the fragment shader in single integer vec3 by the vertex shader. We will also have per-vertex alphas passed to the vertex shader, interpolated for each pixel:

vec3 splattingIds = {0,3,2} // Same for all vertixes in the triangle

vec3 splattingAlphas = {0,0.7,0.3} // Alphas - different for each vertex in the triangle.

Then, I sample the Array Texture three times - tex[splattingIds[0]], tex[splattingIds[1]], tex[splattingIds[2]]; I will also sample the other maps - normal, spec, height...

Then I calculate how to blend them based on the alphas and eventually, their heightmaps, so we can get heightmap-based blending, and output the pixel value.

https://www.garagegames.com/community/f ... ead/134634Sharing this algo with you, because this topic of research is very long one and you know that I will play until I achieve it

And, because this algorithm must use rav Triangle list, unoptimized VBO, each vertex processed must have per-triangle different data, so vertex position duplications are a must, and well...