three.js EffectComposer

2023-02-16 17:51 更新

用于在three.js中實現(xiàn)后期處理效果。該類管理了產(chǎn)生最終視覺效果的后期處理過程鏈。 后期處理過程根據(jù)它們添加/插入的順序來執(zhí)行,最后一個過程會被自動渲染到屏幕上。

例子

postprocessing
postprocessing advanced
postprocessing backgrounds
postprocessing crossfade
postprocessing depth-of-field
postprocessing depth-of-field 2
postprocessing fxaa
postprocessing glitch
postprocessing godrays
postprocessing masking
postprocessing outline
postprocessing pixelate
postprocessing procedural
postprocessing rgb halftone
postprocessing sao
postprocessing smaa
postprocessing sobel
postprocessing ssaa
postprocessing ssao
postprocessing taa
postprocessing unreal bloom
postprocessing unreal bloom selective

構(gòu)造函數(shù)

EffectComposer( renderer : WebGLRenderer, renderTarget : WebGLRenderTarget )

renderer -- 用于渲染場景的渲染器。

renderTarget -- (可選)一個預(yù)先配置的渲染目標(biāo),內(nèi)部由 EffectComposer 使用。

屬性

.passes : Array

一個用于表示后期處理過程鏈(包含順序)的數(shù)組。

.readBuffer : WebGLRenderTarget

內(nèi)部讀緩沖區(qū)的引用。過程一般從該緩沖區(qū)讀取先前的渲染結(jié)果。

.renderer : WebGLRenderer

內(nèi)部渲染器的引用。

.renderToScreen : Boolean

最終過程是否被渲染到屏幕(默認(rèn)幀緩沖區(qū))。

.writeBuffer : WebGLRenderTarget

內(nèi)部寫緩沖區(qū)的引用。過程常將它們的渲染結(jié)果寫入該緩沖區(qū)。

方法

.addPass ( pass : Pass ) : undefined

pass -- 將被添加到過程鏈的過程

將傳入的過程添加到過程鏈。

.dispose () : undefined

釋放此實例分配的 GPU 相關(guān)資源。每當(dāng)您的應(yīng)用程序不再使用此實例時調(diào)用此方法。

.insertPass ( pass : Pass, index : Integer ) : undefined

pass -- 將被插入到過程鏈的過程。

index -- 定義過程鏈中過程應(yīng)插入的位置。

將傳入的過程插入到過程鏈中所給定的索引處。

.isLastEnabledPass ( passIndex : Integer ) : Boolean

passIndex -- 被用于檢查的過程

如果給定索引的過程在過程鏈中是最后一個啟用的過程,則返回true。 由EffectComposer所使用,來決定哪一個過程應(yīng)當(dāng)被渲染到屏幕上。

.removePass ( pass : Pass ) : undefined

pass -- 要從傳遞鏈中刪除的傳遞。

從傳遞鏈中刪除給定的傳遞。

.render ( deltaTime : Float ) : undefined

deltaTime -- 增量時間值。

執(zhí)行所有啟用的后期處理過程,來產(chǎn)生最終的幀,

.reset ( renderTarget : WebGLRenderTarget ) : undefined

renderTarget -- (可選)一個預(yù)先配置的渲染目標(biāo),內(nèi)部由 EffectComposer 使用。

重置所有EffectComposer的內(nèi)部狀態(tài)。

.setPixelRatio ( pixelRatio : Float ) : undefined

pixelRatio -- 設(shè)備像素比

設(shè)置設(shè)備的像素比。該值通常被用于HiDPI設(shè)備,以阻止模糊的輸出。 因此,該方法語義類似于WebGLRenderer.setPixelRatio()。

.setSize ( width : Integer, height : Integer ) : undefined

width -- EffectComposer的寬度。
height -- EffectComposer的高度。

考慮設(shè)備像素比,重新設(shè)置內(nèi)部渲染緩沖和過程的大小為(width, height)。 因此,該方法語義類似于WebGLRenderer.setSize()。

.swapBuffers () : undefined

交換內(nèi)部的讀/寫緩沖。

源代碼

examples/jsm/postprocessing/EffectComposer.js


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號