ポストプロセス

「ポストプロセス」の編集履歴(バックアップ)一覧はこちら

ポストプロセス」(2013/04/30 (火) 23:16:07) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#divclass(modif){更新日:&date(), r58} #divclass(hd){#hr()} *基本 <script src="examples/js/postprocessing/EffectComposer.js"></script> <script src="examples/js/shaders/CopyShader.js"></script> <!-- EffectComposerに必要 --> <script src="examples/js/postprocessing/MaskPass.js"></script> <!-- EffectComposerに必要 --> <script src="examples/js/postprocessing/RenderPass.js"></script> <script src="examples/js/postprocessing/ShaderPass.js"></script> <script src="examples/js/shaders/DotScreenShader.js"></script> <!-- 好きなシェーダ --> <script src="examples/js/shaders/FXAAShader.js"></script> <!-- 好きなシェーダ --> 読んどく // EffectComposer。WebGLRendererをラップする。addPassでフィルタ追加していく。 // サイズ設定のための記述。幅window.innerWidth, 高さwindow.innerHeightだったら必要ない。 var parameters = { // EffectComposerのデフォパラメータ minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat, stencilBuffer: false }; var renderTarget = new THREE.WebGLRenderTarget( 320, 240, parameters ); // サイズ設定 var composer = new THREE.EffectComposer( renderer, renderTarget ); // 普通のrendererをラップ // RenderPass。現在シーンを普通に描画。 composer.addPass( new THREE.RenderPass( scene, camera ) ); // ShaderPass(1) : DotScreenShader。ドットスクリーン。ハーフトーン。網点。新聞の写真に使われてるようなやつ。 var dotscreen = new THREE.ShaderPass( THREE.DotScreenShader ); composer.addPass( dotscreen ); dotscreen.enabled = false; // enabledをfalseにするとこのフィルタはOFFになる // ShaderPass(2) : FXAA。アンチエイリアスの一種。 var fxaa = new THREE.ShaderPass( THREE.FXAAShader ); fxaa.uniforms[ 'resolution' ].value = new THREE.Vector2( 1 / 320, 1 / 240 ); composer.addPass( fxaa ); // ShaderPass(3) : Copy to screen // ただコピーするだけのフィルタ ― var toScreen = new THREE.ShaderPass( THREE.CopyShader ); composer.addPass( toScreen ); toScreen.renderToScreen = true; // ― にrenderToScreenを有効にして // スクリーン描画させるだけのフィルタとして使う。 // 1コ前のFXAAにrenderToScreenさせることもできるが // 最後にCopyShaderかましとくといろいろ安全。 // renderToScreenの機能を持たないBloomフィルタなどを使うときや // この例でFXAAもオフにしたいときとかにも。 // render composer.render(); // renderer.render(scene, camera) の代わりにこれを使ってレンダリング ---- #divclass(pp0){ ***WebGLRenderer 普通のレンダラ。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/WebGLRenderer.png) } #divclass(pp1){ ***RenderPass&br()+ CopyShader(renderToScreen) 現在シーンを描画するだけ。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/RenderPass.png) } ---- ***以降、RenderPass + ---- #divclass(pp0){ ***BloomPass&nbsp(br,2)(要 ConvolutionShader)&br()+ CopyShader(renderToScreen) 明るい部分の周囲に光がぼんやりにじむライトブルーム。renderer.autoClearをfalseっておく。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BloomPass.png) } #divclass(pp1){ ***BleachBypassShader 銀残し。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BleachBypassShader.png) } #divclass(ppc){} #divclass(pp0){ ***BrightnessContrastShader 明るさとコントラスト。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BrightnessContrastShader.png) } #divclass(pp1){ ***ColorCorrectionShader 色調補正。色をRGBそれぞれについて何乗して何倍するか指定。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/ColorCorrectionShader.png) } #divclass(ppc){} #divclass(pp0){ ***ColorifyShader 単色塗り。指定した色についてのグレースケール。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/ColorifyShader.png) } #divclass(pp1){ ***DotScreenShader ドットスクリーン。ハーフトーン。網点。新聞の写真に使われるような画像。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/DotScreenShader.png) } #divclass(ppc){} #divclass(pp0){ ***EdgeShader エッジ抽出。背景色黒。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/EdgeShader.png) } #divclass(pp1){ ***EdgeShader2 エッジ抽出。背景色透明。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/EdgeShader2.png) } #divclass(ppc){} #divclass(pp0){ ***FilmShader ノイズと走査線。time引数によってノイズの種を与える。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/FilmShader.gif) } #divclass(pp1){ ***FocusShader フォーカス。画面中央から外側へ離れるに従ってゆがんでボケる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/FocusShader.png) } #divclass(ppc){} #divclass(pp0){ ***FXAAShader アンチエイリアス。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/FXAAShader.png) } #divclass(ppc){} #divclass(pp0){ ***HorizontalBlurShader 水平方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/HorizontalBlurShader.png) } #divclass(pp1){ ***VerticalBlurShader 垂直方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/VerticalBlurShader.png) } #divclass(ppc){} #divclass(pp0){ ***HorizontalTiltShiftShader ある画面水平線から上下に離れるほど水平方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/HorizontalTiltShiftShader.png) } #divclass(pp1){ ***VerticalTiltShiftShader ある画面水平線から上下に離れるほど垂直方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/VerticalTiltShiftShader.png) } #divclass(ppc){} #divclass(pp0){ ***HueSaturationShader 色相と彩度の調整。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/HueSaturationShader.png) } #divclass(pp1){ ***KaleidoShader 万華鏡。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/KaleidoShader.png) } #divclass(ppc){} #divclass(pp0){ ***LuminosityShader 明度の抽出。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/LuminosityShader.png) } #divclass(pp1){ ***MirrorShader 鏡。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/MirrorShader.png) } #divclass(ppc){} #divclass(pp0){ ***RGBShiftShader RGBのブレ。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/RGBShiftShader.png) } #divclass(pp1){ ***SepiaShader セピアカラー。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/SepiaShader.png) } #divclass(ppc){} #divclass(pp0){ ***SSAOShader 光の当たりにくそうなところを暗くする。環境遮蔽。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/SSAOShader.png) } #divclass(pp1){ ***VignetteShader 画面周辺部が暗くなる。ヴィネット。口径食。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/VignetteShader.png) } #divclass(ppc){} ---- #divclass(pp0){ ***BokehShader ボケ。下例だと赤箱の角の距離でピントが合っていて、離れるに従いボケている。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BokehShader.png) } #divclass(ppc){} //.
#divclass(modif){更新日:&date(), r58} #divclass(hd){#hr()} *基本 <script src="examples/js/postprocessing/EffectComposer.js"></script> <script src="examples/js/shaders/CopyShader.js"></script> <!-- EffectComposerに必要 --> <script src="examples/js/postprocessing/MaskPass.js"></script> <!-- EffectComposerに必要 --> <script src="examples/js/postprocessing/RenderPass.js"></script> <script src="examples/js/postprocessing/ShaderPass.js"></script> <script src="examples/js/shaders/DotScreenShader.js"></script> <!-- 好きなシェーダ --> <script src="examples/js/shaders/FXAAShader.js"></script> <!-- 好きなシェーダ --> 読んどく // EffectComposer。WebGLRendererをラップする。addPassでフィルタ追加していく。 // サイズ設定のための記述。幅window.innerWidth, 高さwindow.innerHeightだったら必要ない。 var parameters = { // EffectComposerのデフォパラメータ minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat, stencilBuffer: false }; var renderTarget = new THREE.WebGLRenderTarget( 320, 240, parameters ); // サイズ設定 var composer = new THREE.EffectComposer( renderer, renderTarget ); // 普通のrendererをラップ // RenderPass。現在シーンを普通に描画。 composer.addPass( new THREE.RenderPass( scene, camera ) ); // ShaderPass(1) : DotScreenShader。ドットスクリーン。ハーフトーン。網点。新聞の写真に使われてるようなやつ。 var dotscreen = new THREE.ShaderPass( THREE.DotScreenShader ); composer.addPass( dotscreen ); dotscreen.enabled = false; // enabledをfalseにするとこのフィルタはOFFになる // ShaderPass(2) : FXAA。アンチエイリアスの一種。 var fxaa = new THREE.ShaderPass( THREE.FXAAShader ); fxaa.uniforms[ 'resolution' ].value = new THREE.Vector2( 1 / 320, 1 / 240 ); composer.addPass( fxaa ); // ShaderPass(3) : Copy to screen // ただコピーするだけのフィルタ ― var toScreen = new THREE.ShaderPass( THREE.CopyShader ); composer.addPass( toScreen ); toScreen.renderToScreen = true; // ― にrenderToScreenを有効にして // スクリーン描画させるだけのフィルタとして使う。 // 1コ前のFXAAにrenderToScreenさせることもできるが // 最後にCopyShaderかましとくといろいろ安全。 // renderToScreenの機能を持たないBloomフィルタなどを使うときや // この例でFXAAもオフにしたいときとかにも。 // render composer.render(); // renderer.render(scene, camera) の代わりにこれを使ってレンダリング ---- #divclass(pp0){ ***WebGLRenderer 普通のレンダラ。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/WebGLRenderer.png) } #divclass(pp1){ ***RenderPass&br()+ CopyShader(renderToScreen) 現在シーンを描画するだけ。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/RenderPass.png) } ---- ***以降、RenderPass + ---- #divclass(pp0){ ***BloomPass&nbsp(br,2)(要 ConvolutionShader)&br()+ CopyShader(renderToScreen) 明るい部分の周囲に光がぼんやりにじむライトブルーム。renderer.autoClearをfalseっておく。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BloomPass.png) } #divclass(pp1){ ***BleachBypassShader 銀残し([[Wikipedia>>http://ja.wikipedia.org/wiki/%E9%8A%80%E6%AE%8B%E3%81%97]])。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BleachBypassShader.png) } #divclass(ppc){} #divclass(pp0){ ***BrightnessContrastShader 明るさとコントラスト。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BrightnessContrastShader.png) } #divclass(pp1){ ***ColorCorrectionShader 色調補正。色をRGBそれぞれについて何乗して何倍するか指定。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/ColorCorrectionShader.png) } #divclass(ppc){} #divclass(pp0){ ***ColorifyShader 単色塗り。指定した色についてのグレースケール。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/ColorifyShader.png) } #divclass(pp1){ ***DotScreenShader ドットスクリーン。ハーフトーン。網点([[Wikipedia>>http://ja.wikipedia.org/wiki/%E7%B6%B2%E7%82%B9]])。新聞の写真に使われるような画像。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/DotScreenShader.png) } #divclass(ppc){} #divclass(pp0){ ***EdgeShader エッジ抽出。背景色黒。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/EdgeShader.png) } #divclass(pp1){ ***EdgeShader2 エッジ抽出。背景色透明。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/EdgeShader2.png) } #divclass(ppc){} #divclass(pp0){ ***FilmShader ノイズと走査線。time引数によってノイズの種を与える。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/FilmShader.gif) } #divclass(pp1){ ***FocusShader フォーカス。画面中央から外側へ離れるに従ってゆがんでボケる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/FocusShader.png) } #divclass(ppc){} #divclass(pp0){ ***FXAAShader アンチエイリアス。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/FXAAShader.png) } #divclass(ppc){} #divclass(pp0){ ***HorizontalBlurShader 水平方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/HorizontalBlurShader.png) } #divclass(pp1){ ***VerticalBlurShader 垂直方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/VerticalBlurShader.png) } #divclass(ppc){} #divclass(pp0){ ***HorizontalTiltShiftShader ある画面水平線から上下に離れるほど水平方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/HorizontalTiltShiftShader.png) } #divclass(pp1){ ***VerticalTiltShiftShader ある画面水平線から上下に離れるほど垂直方向にブレる。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/VerticalTiltShiftShader.png) } #divclass(ppc){} #divclass(pp0){ ***HueSaturationShader 色相と彩度の調整。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/HueSaturationShader.png) } #divclass(pp1){ ***KaleidoShader 万華鏡。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/KaleidoShader.png) } #divclass(ppc){} #divclass(pp0){ ***LuminosityShader 明度の抽出。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/LuminosityShader.png) } #divclass(pp1){ ***MirrorShader 鏡。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/MirrorShader.png) } #divclass(ppc){} #divclass(pp0){ ***RGBShiftShader RGBのブレ。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/RGBShiftShader.png) } #divclass(pp1){ ***SepiaShader セピアカラー。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/SepiaShader.png) } #divclass(ppc){} #divclass(pp0){ ***SSAOShader 光の当たりにくそうなところを暗くする。環境遮蔽。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/SSAOShader.png) } #divclass(pp1){ ***VignetteShader 画面周辺部が暗くなる。ヴィネット。口径食([[Wikipedia>>http://ja.wikipedia.org/wiki/%E5%8F%A3%E5%BE%84%E9%A3%9F]])。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/VignetteShader.png) } #divclass(ppc){} ---- #divclass(pp0){ ***BokehShader ボケ。下例だと赤箱の角の距離でピントが合っていて、離れるに従いボケている。 #ref(http://cdn56.atwikiimg.com/threejs/pub/img/BokehShader.png) } #divclass(ppc){} //.

表示オプション

横に並べて表示:
変化行の前後のみ表示: