three.js PMREMGenerator

2023-02-16 17:32 更新

此類從立方體貼圖環(huán)境紋理生成經(jīng)過(guò)預(yù)過(guò)濾的 Mipmapped 輻射環(huán)境貼圖 (PMREM)。這允許根據(jù)材料粗糙度快速訪問(wèn)不同級(jí)別的模糊。它被打包成一種特殊的 CubeUV 格式,允許我們執(zhí)行自定義插值,以便我們可以支持 RGBE 等非線性格式。與傳統(tǒng)的 mipmap 鏈不同,它只下降到 LOD_MIN 級(jí)別,然后在相同的 LOD_MIN 分辨率下創(chuàng)建額外的甚至更多過(guò)濾的“mips”,并與更高的粗糙度級(jí)別相關(guān)聯(lián)。通過(guò)這種方式,我們保持分辨率以平滑地插入漫射照明,同時(shí)限制采樣計(jì)算。

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

PMREMGenerator( renderer : WebGLRenderer )

此構(gòu)造函數(shù)創(chuàng)建一個(gè)新的 PMREMGenerator。

方法

.fromScene ( scene : Scene, sigma : Number, near : Number, far : Number ) : WebGLRenderTarget

scene - 給定的場(chǎng)景。

sigma - (可選)指定在 PMREM 生成之前應(yīng)用于場(chǎng)景的以弧度為單位的模糊半徑。默認(rèn)為 0。

near - (可選)近平面值。默認(rèn)值為 0.1。

far - (可選)遠(yuǎn)平面值。默認(rèn)值為 100。

從提供的場(chǎng)景生成 PMREM,如果網(wǎng)絡(luò)帶寬較低,這可能比使用圖像更快??蛇x的近平面和遠(yuǎn)平面確保場(chǎng)景被完整渲染(cubeCamera 放置在原點(diǎn))。

.fromEquirectangular ( equirectangular : Texture ) : WebGLRenderTarget

equirectangular - 等矩形紋理。

從等距柱狀紋理生成 PMREM,可以是 LDR 或 HDR。理想的輸入圖像大小為 1k (1024 x 512),因?yàn)檫@與 256 x 256 立方體貼圖輸出最匹配。

.fromCubemap ( cubemap : CubeTexture ) : WebGLRenderTarget

cubemap - 立方體貼圖紋理。

從立方體貼圖紋理生成 PMREM,可以是 LDR 或 HDR。理想的輸入立方體大小為 256 x 256,因?yàn)檫@與 256 x 256 立方體貼圖輸出最匹配。

.compileCubemapShader () : undefined

預(yù)編譯立方體貼圖著色器。您可以通過(guò)在紋理的網(wǎng)絡(luò)獲取期間調(diào)用此方法來(lái)提高并發(fā)性,從而加快啟動(dòng)速度。

.compileEquirectangularShader () : undefined

預(yù)編譯等距柱狀著色器。您可以通過(guò)在紋理的網(wǎng)絡(luò)獲取期間調(diào)用此方法來(lái)提高并發(fā)性,從而加快啟動(dòng)速度。

.dispose () : undefined

處理 PMREMGenerator 的內(nèi)部存儲(chǔ)器。請(qǐng)注意,PMREMGenerator 是一個(gè)靜態(tài)類,因此您不需要多個(gè) PMREMGenerator 對(duì)象。如果這樣做,對(duì)其中之一調(diào)用 dispose() 將導(dǎo)致任何其他對(duì)象也變得不可用。

源碼

src/extras/PMREMGenerator.js


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)