As a general design pattern, for situations like terrain tiles where they all share the same geometry (height calculated from heightmap in shader) which of these two approaches is the "best" for passing texture blend (or other per-tile info) into the shader ?
- Load the texture blend data into the shader by using a Texture and texture lookups (each channel indicating weight of texture)
- Load the texture blend data into the shader by using a hardware instanced Vertex set in addition to the unvarying geometry data
For the sake of comparison, my terrain tiles have the same number of geometry vertexes as the heightmaps do pixels, so there is the same quantity of data flowing between the CPU+GPU but I have assumed up until now that the compression capabilities of Textures mean they are superior to using Vertex data where there is a choice of methods.
Is there a generally preferred way of passing data to a shader where we could use either harward instanced vertex data OR texture data to represent the same thing ?