1

私は単純な形式のフォン シェーディング モデルを使用しています。このシーンは、-y 方向に輝く指向性ライトで照らされ、強度 1 の単色ライトで照らされています。視点は、ベクトル (- 1、0、-1)。

この場合、シェーディング方程式は次の式で与えられます。

I = k_d*L(N dot L)+k_s*L(R dot V)^n_s

ここLで、 は指向性光源、kdks両方とも0.5n_s = 50

この場合、どうすればRベクトルを計算できますか?

有限ベクトルを計算するには有限座標が必要なので、私は混乱しています。ディレクショナル ライトの場合、-y 方向に無限に離れています。

4

2 に答える 2

1

reflect反射ベクトルは、GLSLの関数を使用して計算できます。

vec3 toEye = normalize(vec3(0.0) - vVaryingPos);    
vec3 lightRef = normalize(reflect(-light, normal)); 
float spec = pow(dot(lightRef, toEye), 64.0f);  
specularColor = vec3(1.0)*max(spec, 0.0); 

計算は目の空間で行われます...したがって、eyePosはvec3(0.0)にあります

于 2012-05-17T08:50:18.920 に答える
1

これらの方程式は法線ベクトルを使用します。したがって、あなたの場合、指向性ライトを使用している場合、L が定数で [x=0, y=1, z=0] (または [0, -1, 0]、覚えていませんが、式で L がポイントを指しているか、ポイントから離れているかを確認する必要があります)。

于 2012-05-17T06:27:08.770 に答える