W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一種基于物理的標(biāo)準(zhǔn)材質(zhì),使用Metallic-Roughness工作流程。
基于物理的渲染(PBR)最近已成為許多3D應(yīng)用程序的標(biāo)準(zhǔn),例如Unity, Unreal和 3D Studio Max。
這種方法與舊方法的不同之處在于,不使用近似值來(lái)表示光與表面的相互作用,而是使用物理上正確的模型。 我們的想法是,不是在特定照明下調(diào)整材質(zhì)以使其看起來(lái)很好,而是可以創(chuàng)建一種材質(zhì),能夠“正確”地應(yīng)對(duì)所有光照?qǐng)鼍啊?
在實(shí)踐中,該材質(zhì)提供了比MeshLambertMaterial 或MeshPhongMaterial 更精確和逼真的結(jié)果,代價(jià)是計(jì)算成本更高。MeshStandardMaterial uses per-fragment shading。
請(qǐng)注意,為獲得最佳效果,您在使用此材質(zhì)時(shí)應(yīng)始終指定environment map。
有關(guān)PBR概念的非技術(shù)性介紹以及如何設(shè)置PBR材質(zhì),請(qǐng)查看marmoset成員的這些文章:
在 three.js(以及其他大多數(shù)PBR系統(tǒng))中使用方法的技術(shù)細(xì)節(jié), 可以在Brent Burley撰寫(xiě)的paper from Disney (pdf) 中查看。
parameters - (可選)用于定義材質(zhì)外觀的對(duì)象,具有一個(gè)或多個(gè)屬性。 材質(zhì)的任何屬性都可以從此處傳入(包括從Material繼承的任何屬性)。
屬性color例外,其可以作為十六進(jìn)制字符串傳遞,默認(rèn)情況下為 0xffffff(白色),內(nèi)部調(diào)用Color.set(color)。
共有屬性請(qǐng)參見(jiàn)其基類(lèi)Material。
alpha貼圖是一張灰度紋理,用于控制整個(gè)表面的不透明度。(黑色:完全透明;白色:完全不透明)。 默認(rèn)值為null。
僅使用紋理的顏色,忽略alpha通道(如果存在)。 對(duì)于RGB和RGBA紋理,WebGL渲染器在采樣此紋理時(shí)將使用綠色通道, 因?yàn)樵贒XT壓縮和未壓縮RGB 565格式中為綠色提供了額外的精度。 Luminance-only以及l(fā)uminance/alpha紋理也仍然有效。
該紋理的紅色通道用作環(huán)境遮擋貼圖。默認(rèn)值為null。aoMap需要第二組UV。
環(huán)境遮擋效果的強(qiáng)度。默認(rèn)值為1。零是不遮擋效果。
用于創(chuàng)建凹凸貼圖的紋理。黑色和白色值映射到與光照相關(guān)的感知深度。凹凸實(shí)際上不會(huì)影響對(duì)象的幾何形狀,只影響光照。如果定義了法線貼圖,則將忽略該貼圖。
凹凸貼圖會(huì)對(duì)材質(zhì)產(chǎn)生多大影響。典型范圍是0-1。默認(rèn)值為1。
材質(zhì)的顏色(Color),默認(rèn)值為白色 (0xffffff)。
如下形式的對(duì)象:
{ 'STANDARD': '' };
WebGLRenderer使用它來(lái)選擇shaders。
位移貼圖會(huì)影響網(wǎng)格頂點(diǎn)的位置,與僅影響材質(zhì)的光照和陰影的其他貼圖不同,移位的頂點(diǎn)可以投射陰影,阻擋其他對(duì)象, 以及充當(dāng)真實(shí)的幾何體。位移紋理是指:網(wǎng)格的所有頂點(diǎn)被映射為圖像中每個(gè)像素的值(白色是最高的),并且被重定位。
位移貼圖對(duì)網(wǎng)格的影響程度(黑色是無(wú)位移,白色是最大位移)。如果沒(méi)有設(shè)置位移貼圖,則不會(huì)應(yīng)用此值。默認(rèn)值為1。
位移貼圖在網(wǎng)格頂點(diǎn)上的偏移量。如果沒(méi)有設(shè)置位移貼圖,則不會(huì)應(yīng)用此值。默認(rèn)值為0。
材質(zhì)的放射(光)顏色,基本上是不受其他光照影響的固有顏色。默認(rèn)為黑色。
設(shè)置放射(發(fā)光)貼圖。默認(rèn)值為null。放射貼圖顏色由放射顏色和強(qiáng)度所調(diào)節(jié)。 如果你有一個(gè)放射貼圖,請(qǐng)務(wù)必將放射顏色設(shè)置為黑色以外的其他顏色。
放射光強(qiáng)度。調(diào)節(jié)發(fā)光顏色。默認(rèn)為1。
環(huán)境貼圖,為了能夠保證物理渲染準(zhǔn)確,您應(yīng)該添加由PMREMGenerator預(yù)處理過(guò)的環(huán)境貼圖,默認(rèn)為null。
通過(guò)乘以環(huán)境貼圖的顏色來(lái)縮放環(huán)境貼圖的效果。
定義材質(zhì)是否使用平面著色進(jìn)行渲染。默認(rèn)值為false。
材質(zhì)是否受霧影響。默認(rèn)為true。
檢查當(dāng)前對(duì)象是否為標(biāo)準(zhǔn)網(wǎng)格材質(zhì)的標(biāo)記。
光照貼圖。默認(rèn)值為null。lightMap需要第二組UV。
烘焙光的強(qiáng)度。默認(rèn)值為1。
顏色貼圖??梢赃x擇包括一個(gè)alpha通道,通常與.transparent 或.alphaTest。默認(rèn)為null。 紋理貼圖顏色由漫反射顏色.color調(diào)節(jié)。
材質(zhì)與金屬的相似度。非金屬材質(zhì),如木材或石材,使用0.0,金屬使用1.0,通常沒(méi)有中間值。 默認(rèn)值為0.0。0.0到1.0之間的值可用于生銹金屬的外觀。如果還提供了metalnessMap,則兩個(gè)值相乘。
該紋理的藍(lán)色通道用于改變材質(zhì)的金屬度。
用于創(chuàng)建法線貼圖的紋理。RGB值會(huì)影響每個(gè)像素片段的曲面法線,并更改顏色照亮的方式。法線貼圖不會(huì)改變曲面的實(shí)際形狀,只會(huì)改變光照。 如果材質(zhì)具有使用左手慣例創(chuàng)作的法線貼圖,則應(yīng)取反 normalScale 的 y 分量以補(bǔ)償不同的手性。
法線貼圖的類(lèi)型。
選項(xiàng)為T(mén)HREE.TangentSpaceNormalMap(默認(rèn))和THREE.ObjectSpaceNormalMap。
法線貼圖對(duì)材質(zhì)的影響程度。典型范圍是0-1。默認(rèn)值是Vector2設(shè)置為(1,1)。
空氣的折射率(IOR)(約為1)除以材質(zhì)的折射率。它與環(huán)境映射模式THREE.CubeRefractionMapping 和THREE.EquirectangularRefractionMapping一起使用。 空氣的折射率 (IOR)(大約 1)除以材料的折射率。它與環(huán)境映射模式 THREE.CubeRefractionMapping 一起使用。 折射率不應(yīng)超過(guò)1。默認(rèn)值為0.98。
材質(zhì)的粗糙程度。0.0表示平滑的鏡面反射,1.0表示完全漫反射。默認(rèn)值為1.0。如果還提供roughnessMap,則兩個(gè)值相乘。
該紋理的綠色通道用于改變材質(zhì)的粗糙度。
將幾何體渲染為線框。默認(rèn)值為false(即渲染為平面多邊形)。
定義線兩端的外觀??蛇x值為 'butt','round' 和 'square'。默認(rèn)為'round'。
該屬性對(duì)應(yīng)2D Canvas lineJoin屬性, 并且會(huì)被WebGL渲染器忽略。
定義線連接節(jié)點(diǎn)的樣式??蛇x值為 'round', 'bevel' 和 'miter'。默認(rèn)值為 'round'。
該屬性對(duì)應(yīng)2D Canvas lineJoin屬性, 并且會(huì)被WebGL渲染器忽略。
控制線框?qū)挾?。默認(rèn)值為1。
由于OpenGL Core Profile與大多數(shù)平臺(tái)上WebGL渲染器的限制,無(wú)論如何設(shè)置該值,線寬始終為1。
共有方法請(qǐng)參見(jiàn)其基類(lèi)Material。
src/materials/MeshStandardMaterial.js
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: