0

まず、初心者に質問する前に、MrDoob&coのすばらしい仕事に感謝します。私は、three.jsを使用できることを本当に嬉しく思います。

しかし実際には、いくつかのシェーダーとポストエフェクトを使用して、ソーラーシステムで美しい太陽をレンダリングしようとしています。そのために、私はあなたの溶岩おうし座の例から多くのインスピレーションを得ました。

コードに適応させると、次のJSエラーが発生しました。

Uncaught TypeError: Object [object Object] has no method 'addObject' EffectComposer.js:129
THREE.WebGLRenderer 49 Three.js:331
Uncaught TypeError: undefined is not a function BloomPass.js:27

最初は古典的なjsエラーのようですが、理由がわかりません。コードは良さそうです:

THREE.EffectComposer.scene = new THREE.Scene();
THREE.EffectComposer.scene.addObject( THREE.EffectComposer.quad );

そして2番目のポイント:

this.materialScreen = new THREE.MeshShaderMaterial( {

最後に、サンプルコードを変更せずに試してみました(コードの統計部分を削除しただけです)。これら2つのファイルは含めませんでした(ソースが見つからなかったため)。

<script src="js/Detector.js"></script>
<script src="js/Stats.js"></script>

そして、effectComposerに関連する同じ最初のエラーが発生します。

どうもありがとう、

4

1 に答える 1

0

私は解決策を見つけました。最初に私は正しいインクルードファイルを持っていませんでした(私のものは古いものでした)。それで; 私は自分のコードをうまく構造化できず、いくつかのことを見逃していました。

これで修正されました。あなたの例で誰が溶岩おうし座をしたのかはわかりませんが、シェーダーは単純に素晴らしいです。

あなたが私の太陽系を見てみたいなら:http ://www.scgaming.eu/

私はそれを解決しますが、それを最適化する方法と、それよりも優れたコードの記述方法について考えています。

于 2012-08-03T20:28:42.033 に答える