Причем тут рельеф, если ткань имитировать нужно?
Там вуду в шейдере должно быть с затенением связанное.
float4 main(float3 pos: TEXCOORD0, float3 normal: TEXCOORD1, float3 viewVec: TEXCOORD2) : COLOR {
// Signed noise
float noisy = 2 * tex3D(Texture, pos).r - 1;
// Create the pattern
float patt = 0;
float freq = 1.47;
float scale = 0.5;
for (int i = 1; i < 6; i++){
patt += pattern(pos + noiseScale * noisy, freq) * scale;
freq *= 2;
scale *= 0.7;
}
// Apply some fabric style lighting
//******************************************
float diffuse = 0.5 * (1 + dot(normal, lightDir));
float cosView = clamp(dot(normalize(viewVec), normal), 0.0, 1.0);
float shine = pow(1.0 - cosView * cosView, furriness);
//******************************************
return (patt * color + sheen * shine) * diffuse;
}