Vector3 だけでなく、完全な Object3D がターゲットとして必要なのはなぜですか? ターゲットの役割は、コーンの方向を設定するだけのように思えます。Object3D は生の Vector3 よりも多くの操作魔法を SpotLight にもたらすことができますか?
2 に答える
2
シャドウ マッピングでは、錐台の参照としてそれが必要になるためです。ただし、私はそれを削除することを保留しており、代わりにライトで距離プロパティを使用しています。
于 2013-05-11T11:03:21.477 に答える
0
スポット ライトには、位置、方向ベクトル、色、強度、角度、フォールオフがあります。これらはシェーダー内の計算に使用され、一部のフラグメントがどれだけ照らされているかを判断します。
おそらく特別な魔法は何もしません。Object3D クラスには属性 .target があり、メッシュ クラスとスポットライト クラス (実際には Object3D を継承する) の両方がこの属性を使用しますが、異なる計算と少し異なる方法で使用します。Target アトリビュートは、メッシュの lookAt マトリックスにも使用されます。SpotLight の場合、次のようにして方向ベクトルを計算できます。
vec3 dir = targeted_3d.position - spot_light.position;
継承された属性を再利用し、子クラスに少し異なる使用法を与えることです。
お役に立てれば。
于 2013-05-11T10:16:30.537 に答える