2017-02-20 5 views
0

私の人生にとって、何が間違っているのか(特にこれら2つの.jsファイルがどのように文書化されているか)はわかりませんが、私のプロジェクト内にEffectComposerとBloomPassを含めて、そのように:「:BloomPass.jsで未定義の 『プロトタイプ』プロパティを読み取ることができません:キャッチされない例外TypeError 76」3つのjs EffectComposer + BloomPassが動作しない

parameters = { bloomStrength: 1.3, bloomFactor: 1.0,} 

      var renderPass = new THREE.RenderPass(scene, camera); 
      var copyPass = new THREE.ShaderPass(THREE.CopyShader); 
      copyPass.renderToScreen = true; 

      composer = new THREE.EffectComposer (renderer); 
      composer.addPass(renderPass); 
      composer.addPass(copyPass); 

      var effectBloom = new THREE.BloomPass (3, 25, 5, 256); 
      composer.addPass (effectBloom); 

BloomPass.jsと述べる(ない私のコード内で)それ自体でエラーがスローされますBloomPass 76ラインであります

THREE.BloomPass.prototype = Object.assign(Object.create(THREE.Pass.prototype), { 

私はこれに起因してEffe ctComposerも composer.addPass(effectBloom);ラインのエラーを投げている: キャッチされない例外TypeError:pass.setSizeはTHREE.EffectComposer.addPass

pass.setSize(size.width, size.height); 

私が間違ってやっているすべてのアイデアでの関数ではないでしょうか?いくつかの例によると、私はすべてを正しく設定しています... 助けを歓迎します!

+0

また、言及し、BloomPass.jsはまだ私は何かがそれと間違っているかどうか疑問作り、そのエラーがスローされますか? – Turkeydipking

+0

[fiddle](http://jsfiddle.net)を設定すると、あなたの手助けがはるかに簡単になります。あなたは自分自身を作成するために[このフィドル](https://jsfiddle.net/2pha/ne7gjdnq/)をフォークすることができます。 – 2pha

答えて

1

作者の最後にCopyShaderを置く必要があります。このコードは、私の作品:私はそれを私のコード内のすべてのこれらの行をコメントアウトして実行する場合

renderer.autoClear = false; 
    composer = new THREE.EffectComposer(renderer); 
    var sunRenderModel = new THREE.RenderPass(scene, camera); 
    var effectBloom = new THREE.BloomPass(1, 25, 5); 
    var sceneRenderModel = new THREE.RenderPass(scene, camera); 
    var effectCopy = new THREE.ShaderPass(THREE.CopyShader); 
    effectCopy.renderToScreen = true; 
    composer.addPass(sunRenderModel); 
    composer.addPass(effectBloom); 
    composer.addPass(effectCopy); 
関連する問題