欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Three.js?粗糙度貼圖與金屬度貼圖使用介紹

 更新時間:2022年12月14日 10:25:40   作者:隨便起一個名字吧  
這篇文章主要為大家介紹了Three.js?粗糙度貼圖與金屬度貼圖使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

在開始介紹貼圖之前,我們先介紹一下粗糙度屬性以及金屬度屬性。

粗糙度屬性

.roughness 表示材質的粗糙程度,0 表示平滑的鏡面反射,1 表示完全漫反射,而金屬度屬性 .metalness 表示材質與金屬的相似度,非金屬材質,例如木材、石材,使用0,金屬使用1,通過是沒有中間值的。0.0到1.0之間的值可用于生銹金屬的外觀。

在前面的示例中,我們只添加了環(huán)境光,它是一個基本光源,它沒有方向,且該光源的顏色將會疊加到場景現(xiàn)有物體的顏色上,對于本節(jié)我們要說的粗糙以及金屬度來說,只使用環(huán)境光并不能很好的提現(xiàn)效果。所以在開始之前,我們在原有的基礎上,加上一個平行光,可以將平行光類比成太陽光,被平行光照亮的整個區(qū)域接收到的光強是一樣的。

// 燈光
const light = new THREE.AmbientLight(0xffffff, 0.5);
scene.add(light);
// 直線光源
const directionalLight = new THREE.DirectionalLight(0xffffff, 0.5);
directionalLight.position.set(10, 10, 10);
scene.add(directionalLight);

然后我們先看下平滑的鏡面反射效果:

const material = new THREE.MeshStandardMaterial({
    map: doorColorTexture,
    transparent: true,
    alphaMap: doorAlphaTexture,
    aoMap: doorAOTexture,
    side: THREE.DoubleSide,
    displacementMap: doorHeightTexture,
    displacementScale: 0.05,
    roughness: 0
});

可以看到物體表面將平行光直接發(fā)射了。當將 roughness 設置成1后,不管怎么調節(jié),都不會看到上述鏡面的效果了,因為 roughness 為 1 時,會進行漫反射,感興趣的同學可以試一下。

金屬度屬性

如果在項目中,整個物體都是光滑的、或者都是粗糙的,那也用不到貼圖,但是在實際項目中,往往是物體的一部分需要是光滑的,其他部分則是粗糙的,而且粗糙程度也不相同。

所以說,如果希望在一個表面粗糙的物體上指定一些閃亮的局部,則可以為 metalnessMap 屬性設置一張金屬質感貼圖(或者相反的,若希望在一個光滑的物體上指定一些粗糙的局部,則可以在 roughnessMap 屬性上使用紋理貼圖來實現(xiàn))

const textureLoader = new THREE.TextureLoader();
const roughnessTexture = textureLoader.load(roughness);
const material = new THREE.MeshStandardMaterial({
    map: doorColorTexture,
    transparent: true,
    alphaMap: doorAlphaTexture,
    aoMap: doorAOTexture,
    side: THREE.DoubleSide,
    displacementMap: doorHeightTexture,
    displacementScale: 0.05,
    roughness: 1,
    roughnessMap: roughnessTexture
});

在模型的具體位置上,metalnessroughness兩個屬性的實際值等于屬性值本身與相應貼圖中的值的乘積。上述代碼將會生成如下圖所示的效果:

可以看到門的主體部分鏡面發(fā)射,而門的扉頁上可能會因為生銹導致并沒有完全反射~

metalness 用法與 roughness 完全相同,這里就不再演示了。

以上就是Three.js 粗糙度貼圖與金屬度貼圖使用介紹的詳細內容,更多關于Three.js 粗糙度金屬度貼圖的資料請關注腳本之家其它相關文章!

相關文章

  • TypeScript防抖節(jié)流函數(shù)示例詳解

    TypeScript防抖節(jié)流函數(shù)示例詳解

    這篇文章主要為大家介紹了TypeScript防抖節(jié)流函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • type challenge刷題之(middle 部分)示例解析

    type challenge刷題之(middle 部分)示例解析

    這篇文章主要為大家介紹了type challenge刷題之(middle 部分)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Typescript?轉換類型操作索引映射類型IIMT模式學習

    Typescript?轉換類型操作索引映射類型IIMT模式學習

    這篇文章主要為大家介紹了Typescript?轉換類型操作之索引映射類型IIMT模式學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • TypeScript Module Resolution解析過程

    TypeScript Module Resolution解析過程

    這篇文章主要為大家介紹了TypeScript Module Resolution解析過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Manipulation-TypeScript?DOM操作示例解析

    Manipulation-TypeScript?DOM操作示例解析

    這篇文章主要為大家介紹了DOM?Manipulation-TypeScript?DOM操作示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • TypeScript類型編程中的extends和infer示例解析

    TypeScript類型編程中的extends和infer示例解析

    這篇文章主要為大家介紹了TypeScript類型編程中的extends和infer示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • PureScript與JavaScript中equality設計的使用對比分析

    PureScript與JavaScript中equality設計的使用對比分析

    這篇文章主要為大家介紹了PureScript中的equality與JavaScript中的equality設計對比分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • TypeScript與JavaScript的區(qū)別分析

    TypeScript與JavaScript的區(qū)別分析

    TypeScript可以使用JavaScript中的所有代碼和編程概念,TypeScript是為了使JavaScript的開發(fā)變得更加容易而創(chuàng)建的。推薦先精通JS的的前提下再學習TS,這樣更有利于同時學習兩門語言。
    2022-12-12
  • typescript難學嗎?前端有必要學?該怎么學typescript

    typescript難學嗎?前端有必要學?該怎么學typescript

    TypeScript代碼與?JavaScript?代碼有非常高的兼容性,無門檻,你把?JS?代碼改為?TS?就可以運行。TypeScript?應該不會脫離?JavaScript?成為獨立的語言。學習?TypeScript?應該主要指的是學習它的類型系統(tǒng)。
    2022-12-12
  • 與ChatGPT結對編程實現(xiàn)代碼詳解

    與ChatGPT結對編程實現(xiàn)代碼詳解

    這篇文章主要為大家介紹了與ChatGPT結對編寫實現(xiàn)代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論