Just thought Id post my tiny little suggestion here as well as it being twice in the current development thread.
I say tiny because in DirectX its literally 1 switch.
Ok, did a bit of reasearch and found some code samples.
The GL stuff at bottom seems simpler, maybe I missed something, but its direct from the OpenGL website.
C++
HRESULT SetSamplerState(
[in] DWORD Sampler,
[in] D3DSAMPLERSTATETYPE Type, // D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV (U,V sometimes known as S,T)
[in] DWORD Value //D3DTADDRESS_WRAP, D3DTADDRESS_CLAMP, D3DTADDRESS_MIRROR
);
C#
// For this example, device is a valid Device object.
//
using System;
using Microsoft.DirectX.Direct3D;
// Load a texture.
Texture tx = new Texture(device, 4, 4, 0, 0, Format.X8R8G8B8, Pool.Managed);
// Set the texture in stage 0.
device.SetTexture(0, tx);
// Set some sampler states.
device.SamplerState[0].AddressU = TextureAddress.Clamp; //CLAMPS U
device.SamplerState[0].AddressV = TextureAddress.Mirror; //Mirrors V
OpenGL (U,V sometimes known as S,T)
GL_TEXTURE_WRAP_S integer CLAMP_TO_EDGE, MIRRORED_REPEAT, REPEAT
GL_TEXTURE_WRAP_T integer CLAMP_TO_EDGE, MIRRORED_REPEAT, REPEAT
Open.GL source
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); //Normal
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); //Normal Clamp and smear Horizontal
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT); //mirror Vertical
These are to go as part of the texture definition in material editor
Trev