1

このフィドルを見てください:

http://jsfiddle.net/PRz4G/

青い点の周りに4つの白い点が見えます。それらの各ポイントは同じ場所にライトがあるはずですが、そのうちの3つは機能しませんでした。

フィドルでこの配列を見てください:

var lights = {
    0: [712699, 0, 0],
    1: [732699, 0, 0],
    2: [722699, 10000, 0],
    3: [722699, -10000, 0],
    //4:[722699, 0, 10000],
    //5:[722699, 0, -10000]
};

2と3もコメントアウトすると、2つのライトが正常にレンダリングされることがわかります。コメントを外すと、1つの作業用ライトに戻ります。コメント3と4のコメントを外すと、完全なシェーダー初期化エラーが発生します。

私は何を間違えましたか?

更新: 問題はディスプレイドライバー固有であり、現在私のために働いています

4

2 に答える 2

1

編集:この回答は古いバージョンのthree.jsを参照しており、関連性がなくなりました。maxLightsパラメータが削除されました。


まず、maxLightsパラメータを設定する必要があります。

renderer: new THREE.WebGLRenderer( { maxLights: 6 } );

デフォルトは4です。それ以外の場合。この変更により、6つのライトが表示されます。

書かれているように、あなたのデモは私にも役立ちます。(4つのランプが球に光を当てます。)

ハードウェアの問題も発生している可能性があり、2つ以上のライトが妨げられています。劣ったGPUである可能性があります。

良いニュースは、コードがこの変更で機能することです。:-)

于 2012-10-16T22:34:33.153 に答える
0

Chromeでこの問題を解決できますが、ショートカットを編集して追加する必要があります

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --use-gl=desktop

これを使用すると、必要に応じて任意の光を当てることができます。

于 2013-11-22T14:27:14.560 に答える