2013-07-02 4 views
0

привет У меня есть код HLSL, который не работает правильно, когда я пытаюсь добавить затухание.HLSL shading distance fade

Я попытался это:

Output.Color = baseColor*(diffuseLightingFactor + xAmbient * (1/xDistance)); 

и это:

diffuseLightingFactor *= 1/xDistance; 

xDistance расстояние между камерой и моделью.

может кто-то помочь, поскольку я новичок в шейдерах, которые вообще не знают.

Заранее спасибо.

ответ

0

Попробуйте это:

Output.Color = 
    float4(saturate(
     baseColor * ((diffuseLightingFactor + xAmbient) * (1/xDistance)) 
    ).rgb, 1); 

Это гарантирует, что альфа (прозрачность) всегда 1, и что другие цвета между 0 и 1. Я также добавил скобки суммы факторов освещения, так что фактор тумана применяется к обоим.