私はwebglでボリュームレンダリングアプリを開発しています。最後にやらなければならないことは、照明モデルを作成することです。すべての準備ができていますが、シーンのライトポジションを取得できません。私はこのように光を追加しています:
var light = new THREE.DirectionalLight(0xFFFFFF, 1);
light.position.set(0.5, 0.5, 0.1).normalize();
camera.add(light);
カメラを持って移動する場合はライトを静止させる必要があるため、カメラにライトを取り付けます。問題は、ShaderMaterial(カスタムシェーダー)を使用していることです。光の位置を表す均一な変数を見つけることができません。私は検索しました、それを設定する必要があります:
material.lights = true;
しかし、それはエラーを引き起こしました。
Uncaught TypeError: Cannot set property 'value' of undefined
頂点シェーダーに定数ベクトルを追加しようとしましたが、逆ビュー行列を乗算する必要があります(正しい場合)。ただし、GLSL1.0は逆関数をサポートしていません。ユニフォームで逆ビューマトリックスをシェーダーに送信することを考えていますが、JSでシーンのビューマトリックスをどこで取得できるかわかりません。
手伝ってくれてありがとう。私はすべてを試しました:(..。
さよなら。