Additional material texture unit


I want to use a material builded manually at runtime that can have from 1 to 4 textures.
How to specify theses texture units using material->SetTexture(… I don’t know which TextureUnit enum to use.



So for custom units index is this correct to do that ? :

material->SetTexture(TextureUnit(0), myNormalTexture );
material->SetTexture(TextureUnit(1), myUVTexture1 );
material->SetTexture(TextureUnit(2), myUVTexture2 );
material->SetTexture(TextureUnit(3), myUVTexture3 );
material->SetTexture(TextureUnit(4), myUVTexture4 );

I think that should work; Terrain, for example, uses most of those for its detail textures.

(Note: using UrhoSharp) you can have as much indexes as you want.

On a shader i have

//previous texture
uniform sampler2D sLayer0;

//current texture
uniform sampler2D sLayer1;

When coding my materials i just use the following:

material->SetTexture(0, tex0 );
material->SetTexture(1, tex1);

The order is related to the sampler2D uniforms you have on your fragment shader.