0

光の方向を考慮した法線マッピング用のシェーダーがあり、その効果を強めたいと考えています。これは、モデルの特定のピクセルの明るさを計算するために使用される行です。

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

値が 0 から 1 の間に留まることを強制します。これが私が望んでいることです。ただし、光源に面しているモデルの側面とそうでないモデルの側面の違いをより劇的にするために、丸めを使用せずに値を 0.5 より大きくし、値を 0.5 より小さくしたいと考えています。それを達成するために何を使用できますか?

4

1 に答える 1

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 の間の値で増加します。

于 2013-10-05T08:20:53.097 に答える