2013-10-05 30 views
0

我有一個考慮光線方向的法線貼圖着色器,我想強化效果。這是用於計算模型的任何給定像素的亮度行:強制float3向0.0或1.0遷移

float3 N = (2.0 * (tex2D(NormalMapSampler, Tex))) - 1.0; 

它迫使值保持在0和1之間,這正是我想要的。但是,爲了在面對光源的模型側面和模型側面之間產生更大的差異,我希望將值增加到0.5以上,並且將值減小到0.5以上,而不使用舍入。我可以用什麼來實現這個目標?

+0

是不是N應該給你正常?不是光量(在基本光方程的情況下使用點積)。爲了增加對比度,你可以簡單地使用pow(lightcontrib,power)* scale來調整(當然要小心負值)。 – catflier

回答

0

的公式產生向量爲-1到1之間的值,我不認爲你需要什麼使多大意義,但你可以只增加z座標:

float3 N = (2.0 * (tex2D(NormalMapSampler, Tex))) - 1.0; 
N.z *= 2; //or any other value 
N = normalize(N); 

越高因素,法線貼圖影響較小。它增加0和1之間的值。