0

Postprossingエラー-copyTexImage2D:フレームバッファは互換性のない形式です

サンプルに示されているポストエフェクトを使用しようとしていますが、コンソールで次のエラーが発生し続け、何もレンダリングされません。これを引き起こしている可能性があるものについてのアイデアはありますか?重要なのは後処理の例と何も変わらないと思います。

WebGL:INVALID_OPERATION:copyTexImage2D:フレームバッファは互換性のない形式です

renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
renderer.setClearColorHex(0x000000, 1)
renderer.sortObjects = false;

...

composer = new THREE.EffectComposer( renderer )
composer.addPass( new THREE.RenderPass( scene, camera ) )

effect = new THREE.ShaderPass( THREE.DotScreenShader )
effect.uniforms[ 'scale' ].value = 4
composer.addPass( effect )

effect = new THREE.ShaderPass( THREE.FXAAShader )   
composer.addPass( effect )

render = ->
    requestAnimationFrame(render)
    composer.render()

render()
4

3 に答える 3

4

以下を使用して、WebGLRenderer のデフォルト フレームバッファにアルファを追加することができます。

renderer = new THREE.WebGLRenderer( { antialias: true, alpha: true } );
于 2013-11-22T17:48:03.240 に答える
1

エラーが見つかりました。EffectComposer が LensFlare と互換性がないというバグがあり、変更を送信しました。

于 2013-02-17T01:07:03.307 に答える
0

@Axiverse の提案に基づいて、レンズ フレア (またはその他のもの) の使用に問題がある場合は、独自のレンダー ターゲットを追加するだけです。

//...
var pixelRatio = renderer.getPixelRatio();
var width = Math.floor( renderer.context.canvas.width  / pixelRatio ) || 1;
var height = Math.floor( renderer.context.canvas.height / pixelRatio ) || 1;

var renderTarget = new THREE.WebGLRenderTarget(width, height, {
    minFilter: THREE.LinearFilter,
    magFilter: THREE.LinearFilter,
    format: THREE.RGBAFormat, // <-- The line that fix all for me
    stencilBuffer: false
});

var effectComposer = new THREE.EffectComposer(webGLRenderer, renderTarget);
于 2015-12-02T09:21:09.557 に答える