0
私は光scrattringを作るしようとしているコードThreejsは画面
var renderTargetParameters = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBAFormat, stencilBuffer: false,depthBuffer:false },
renderTargetOcl = new THREE.WebGLRenderTarget(SCREEN_WIDTH/4, SCREEN_HEIGHT/4, renderTargetParameters);
var effectFXAA = new THREE.ShaderPass(THREE.ShaderExtras[ "fxaa" ]);
effectFXAA.uniforms[ 'resolution' ].value.set(1/SCREEN_WIDTH, 1/SCREEN_HEIGHT);
let hblur = new THREE.ShaderPass(THREE.ShaderExtras[ "horizontalBlur" ]);
let vblur = new THREE.ShaderPass(THREE.ShaderExtras[ "verticalBlur" ]);
var bluriness = 2;
hblur.uniforms[ 'h' ].value = bluriness/SCREEN_WIDTH*2;
vblur.uniforms[ 'v' ].value = bluriness/SCREEN_HEIGHT*2;
var renderModel = new THREE.RenderPass(this.scene, this.camera);
var renderModelOcl = new THREE.RenderPass(this.oclscene, this.oclcamera);
let grPass = new THREE.ShaderPass(THREE.ShaderExtras['Godrays']);
grPass.needsSwap = true;
grPass.renderToScreen = false;
var finalPass = new THREE.ShaderPass(THREE.ShaderExtras['Additive']);
finalPass.needsSwap = true;
finalPass.renderToScreen = true;
let oclcomposer = new THREE.EffectComposer(this.renderer, renderTargetOcl);
oclcomposer.addPass(renderModelOcl);
oclcomposer.addPass(hblur);
oclcomposer.addPass(vblur);
oclcomposer.addPass(hblur);
oclcomposer.addPass(vblur);
oclcomposer.addPass(grPass);
let renderTarget = new THREE.WebGLRenderTarget(SCREEN_WIDTH, SCREEN_HEIGHT, renderTargetParameters);
let finalcomposer = new THREE.EffectComposer(this.renderer, renderTarget);
finalcomposer.addPass(renderModel);
// finalcomposer.addPass(effectFXAA);
finalcomposer.addPass(finalPass);
finalPass.uniforms[ 'tAdd' ].value = oclcomposer.renderTarget1.texture;
にレンダリングと異なるテクスチャの結果を返すWebGLRenderTarget。
設定grPass.renderToScreen =はtrue。およびfinalPass.renderToScreen = false;私は正しい結果を得ました。つまり、最初の作曲家はうまくいきます。
私は平面材料にテクスチャとしてoclcomposerを使用していますが、それは間違った結果が得られます。光が輝く維持し、緑と黄色のリングがそれをaroudています。
私が望む結果はのように常に輝いていないし、青い色しかありません。一度スクリーンを切断すると間違った結果が消えます。
以上のことから、私はそれが間違った結果を得るレンダーからだと思う、それはテクスチャ