博客專欄

EEPW首頁 > 博客 > Blender插件:GLTF 2.0 導(dǎo)入/導(dǎo)出工具

Blender插件:GLTF 2.0 導(dǎo)入/導(dǎo)出工具

發(fā)布人:ygtu 時間:2023-09-03 來源:工程師 發(fā)布文章
推薦:使用NSDT場景編輯器快速搭建3D應(yīng)用場景
用法

glTF?(GL傳輸格式)用于3D模型的傳輸和加載 在 Web 和本機(jī)應(yīng)用程序中。glTF 減小了 3D 模型的大小和 解包和呈現(xiàn)這些模型所需的運行時處理。 這種格式在網(wǎng)絡(luò)上常用,并且在各種3D引擎中都有支持。 比如Unity3D、虛幻引擎4和Godot。

此導(dǎo)入器/導(dǎo)出器支持以下 glTF 2.0 功能:

  • 網(wǎng) 格

  • 材料(原理BSDF)和無陰影(無照明)

  • 紋理

  • 相機(jī)

  • 準(zhǔn)時燈光(點、點和方向)

  • 動畫(關(guān)鍵幀、形狀關(guān)鍵幀和外觀)

網(wǎng) 格

glTF的內(nèi)部結(jié)構(gòu)模仿了圖形芯片常用的內(nèi)存緩沖區(qū) 實時渲染時,以便可以將資產(chǎn)交付到桌面、Web 或移動客戶端 并以最少的處理及時顯示。結(jié)果,四邊形和 n 邊形 導(dǎo)出為 glTF 時自動轉(zhuǎn)換為三角形。 不連續(xù)的 UV 和平坦的陰影邊緣可能會導(dǎo)致 glTF 中的頂點計數(shù)略高 與攪拌機(jī)相比,因為這樣的頂點是分開的。 同樣,曲線和其他非網(wǎng)格數(shù)據(jù)也不會保留, 并且必須在導(dǎo)出之前轉(zhuǎn)換為網(wǎng)格。

材料

glTF中的核心材料系統(tǒng)支持金屬/原石PBR工作流程 具有以下信息渠道:

  • 基色

  • 金屬

  • 粗糙度

  • 烘烤環(huán)境光遮蔽

  • 法線貼圖

  • ****的

../_images/addons_io-gltf2_material-頻道.jpg

glTF 2.0 核心格式中可用的各種圖像映射的示例。這是 水瓶示例模型與其各種圖像映射的切片一起顯示。

進(jìn)口材料

glTF材料系統(tǒng)與Blender自己的材料不同。導(dǎo)入 glTF 文件時, 該插件將構(gòu)建一組Blender節(jié)點,以盡可能接近地復(fù)制每個glTF材料。

導(dǎo)入器支持金屬/原石 PBR (核心 glTF)、規(guī)格/光澤 PBR () 和無陰影 () 材料。KHR_materials_pbrSpecularGlossinessKHR_materials_unlit

提示

檢查材料導(dǎo)入過程的結(jié)果是查看示例的好方法 可導(dǎo)出到 glTF 的材質(zhì)節(jié)點和設(shè)置的類型。

出口材料

導(dǎo)出器支持金屬/粗糙PBR(核心glTF)和無陰影()材料。 它將根據(jù)它在Blender材質(zhì)中識別的節(jié)點構(gòu)建glTF材質(zhì)。 材料導(dǎo)出過程處理下述設(shè)置。KHR_materials_unlit

注意

當(dāng)材質(zhì)使用圖像紋理時,glTF 要求圖像采用 PNG 或 JPEG 格式。 該插件將自動轉(zhuǎn)換其他格式的圖像,從而增加導(dǎo)出時間。

提示

要創(chuàng)建無陰影(無光照)材質(zhì),請使用背景材質(zhì)類型。

基色

glTF 基色是通過在原則 BSDF 節(jié)點上查找基色輸入來確定的。 如果輸入未連接,則輸入的默認(rèn)顏色(未連接的套接字旁邊的色域) 用作 glTF 材質(zhì)的基色。

../_images/addons_io-gltf2_material-基色-實綠色.png

可以直接在節(jié)點上指定純基色。

如果發(fā)現(xiàn)圖像紋理節(jié)點連接到基色輸入, 該圖像將用作 glTF 基色。

../_images/addons_io-gltf2_material-baseColor-imageHookup.png

圖像用作 glTF 基色。

金屬和粗糙度

這些值是從原則 BSDF 節(jié)點讀取的。如果這兩個輸入都未連接, 節(jié)點將顯示滑塊以控制它們在 0.0 和 1.0 之間的相應(yīng)值, 這些值將被復(fù)制到 glTF 中。

使用圖像時,glTF 期望金屬值在藍(lán)色 () 通道中編碼, 以及在同一圖像的綠色()通道中編碼的粗糙度。 如果圖像以不遵循此約定的方式連接到 Blender 節(jié)點, 加載項可能會嘗試在導(dǎo)出過程中將圖像調(diào)整為正確的形式(增加導(dǎo)出時間)。BG

在Blender節(jié)點樹中,建議使用單獨的RGB節(jié)點 將通道與圖像紋理節(jié)點分開,以及 將綠色 () 通道連接到粗糙度,將藍(lán)色 () 連接到金屬。 glTF 導(dǎo)出商將識別此安排與 glTF 標(biāo)準(zhǔn)匹配,并且 這將允許它在導(dǎo)出過程中簡單地將圖像紋理復(fù)制到 glTF 文件中。GB

此時的“圖像紋理”節(jié)點應(yīng)將其“顏色空間”設(shè)置為“非顏色”。

../_images/addons_io-gltf2_material-金屬原石.png

以符合glTF標(biāo)準(zhǔn)的方式連接的金屬/粗糙度圖像, 允許在導(dǎo)出的 glTF 文件中逐字使用它。

烘烤環(huán)境光遮蔽

glTF能夠存儲烘焙的環(huán)境光遮蔽貼圖。 目前沒有導(dǎo)致Blender的節(jié)點排列 以與 glTF 中完全相同的方式使用此類映射。 但是,如果導(dǎo)出程序找到名為 和 的自定義節(jié)點組 查找在該節(jié)點組上命名的輸入, 它將查找附加在那里的圖像紋理,以用作glTF中的遮擋貼圖。 效果不需要在Blender中顯示,因為Blender還有其他顯示環(huán)境光遮蔽的方式, 但此方法將允許導(dǎo)出器將遮擋圖像寫入 glTF。 這對于實時 glTF 查看器非常有用,尤其是在存在 可能不是在渲染時計算這些東西的備用電源。glTF SettingsOcclusion

../_images/addons_io-gltf2_material-遮擋.png

預(yù)烘焙的環(huán)境光遮蔽貼圖,連接到不渲染但將導(dǎo)出到 glTF 的節(jié)點。

提示

創(chuàng)建自定義節(jié)點組的最簡單方法是導(dǎo)入現(xiàn)有的 glTF 模型 包含遮擋貼圖,例如 水瓶或其他現(xiàn)有模型。也可以使用手動創(chuàng)建的自定義節(jié)點組。

glTF 將遮擋存儲在紅色 () 通道中,允許其選擇性共享 具有粗糙度和金屬通道的圖像相同。R

../_images/addons_io-gltf2_material-orm-hookup.png

這種節(jié)點組合模仿了glTF包裝遮擋、粗糙度和 金屬值到單個圖像中。

提示

循環(huán)渲染引擎有一個烘焙面板,可用于烘焙 環(huán)境光遮蔽貼圖。生成的圖像可以保存和連接 直接到節(jié)點。glTF Settings

法線貼圖

要在 glTF 中使用法線貼圖,請連接圖像紋理節(jié)點的顏色輸出 連接到法線貼圖節(jié)點的顏色輸入,然后將法線貼圖法線輸出連接到 原則 BSDF 節(jié)點的正常輸入。“圖像紋理”節(jié)點 為此,應(yīng)將其“顏色空間”屬性設(shè)置為“非顏色”。

法線貼圖節(jié)點必須保留在其默認(rèn)屬性“切線空間”上,作為 這是 glTF 目前支持的唯一法線貼圖類型。 法線貼圖的強(qiáng)度可以在此節(jié)點上進(jìn)行調(diào)整。 導(dǎo)出器不會直接導(dǎo)出這些節(jié)點,而是會使用它們來定位 正確的圖像,并將強(qiáng)度設(shè)置復(fù)制到 glTF 中。

../_images/addons_io-gltf2_material正常.png

連接了一個法線地圖圖像,以便導(dǎo)出器能夠找到并復(fù)制它 到 glTF 文件。

提示

循環(huán)渲染引擎有一個烘焙面板,可用于烘焙 來自幾乎任何其他法線向量節(jié)點排列的切空間法線貼圖。 將烘焙類型切換為正常。保留默認(rèn)空間設(shè)置 (空格:切線,R: +X,G:+Y,B:+Z)當(dāng)將此烘焙面板用于glTF時。 生成的烘焙圖像可以保存并插入到新材料中 如上所述的法線貼圖節(jié)點,允許其正確導(dǎo)出。

請參見:循環(huán)渲染烘焙

****的

圖像紋理節(jié)點可以連接到發(fā)光著色器節(jié)點,并且 可以選擇通過添加著色器節(jié)點與原則 BSDF 節(jié)點的屬性組合。

如果 glTF 導(dǎo)出器找到連接到發(fā)光著色器節(jié)點的圖像, 它會將該圖像導(dǎo)出為 glTF 材質(zhì)的自發(fā)光紋理。

../_images/addons_io-gltf2_material-自發(fā)光.png

可以將排放節(jié)點添加到現(xiàn)有節(jié)點。

注意

此導(dǎo)出器尚不支持原則 BSDF 節(jié)點的****輸入。 這可能會在將來的版本中更改。

雙面/背面剔除

對于僅可以看到正面的材質(zhì),請打開背面剔除 Eevee 材質(zhì)的“設(shè)置”面板。使用其他發(fā)動機(jī)(循環(huán)、工作臺)時 您可以暫時切換到 Eevee 來配置此設(shè)置,然后切換回來。

對于雙面材料,請取消選中此框。

../_images/addons_io-gltf2_material-背面剔除.png

此設(shè)置的反轉(zhuǎn)控制 glTF 的標(biāo)志。

混合模式

基色輸入可以選擇提供 alpha 值。 glTF 如何處理這些值取決于所選的混合模式。

選擇 Eevee 渲染引擎后,每個材質(zhì)都有一個混合模式 材質(zhì)設(shè)置面板。使用此設(shè)置定義 alpha 值如何從 基色通道在 glTF 中處理。glTF 支持三種設(shè)置:不透明字母值將被忽略(默認(rèn)值)。阿爾法混合較低的 Alpha 值會導(dǎo)致與背景對象混合。阿爾法剪輯低于“剪輯閾值”設(shè)置的 Alpha 值將導(dǎo)致部分 根本不要渲染的材料。其他所有內(nèi)容都呈現(xiàn)為不透明。

../_images/addons_io-gltf2_material-αBlend.png

選擇Eevee引擎后,材質(zhì)的混合模式是可配置的。

注意

請注意,透明度(或 Alpha 混合模式)對于實時引擎來說很復(fù)雜 進(jìn)行渲染,并且在導(dǎo)出后可能會以意外的方式運行。在可能的情況下, 改用 Alpha 裁剪模式,或僅將不透明多邊形放在后面 阿爾法混合多邊形的單個圖層。

紫外線貼圖

通過連接 UV 貼圖節(jié)點可以控制 UV 貼圖的選擇和變換 以及將節(jié)點映射到任何圖像紋理節(jié)點。

“映射”節(jié)點中的設(shè)置使用名為 的 glTF 擴(kuò)展名導(dǎo)出。 頂部有一個映射類型選擇器。是建議導(dǎo)出的類型。還支持紋理矢量。支持的偏移量包括:KHR_texture_transform

  • 位置 - X 和 Y

  • 旋轉(zhuǎn) - 僅 Z 軸

  • 比例 - X 和 Y

對于紋理類型,縮放 X 和 Y 必須相等(均勻縮放)。

../_images/addons_io-gltf2_material-mapping.png

深思熟慮的UV貼圖選擇。

提示

這些節(jié)點是可選的。并非所有 glTF 讀取器都支持多個 UV 貼圖或紋理變換。

因素

任何圖像紋理節(jié)點都可以選擇與常量顏色或標(biāo)量相乘。 這些將作為因子寫入 glTF 文件中,它們是相乘的數(shù)字 使用指定的圖像紋理。這些并不常見。

如果需要,單一材料可以同時使用上述所有材料。此圖顯示 同時應(yīng)用上述多個選項時的典型節(jié)點結(jié)構(gòu):

../_images/addons_io-gltf2_material原則.png

具有自發(fā)光紋理的原則 BSDF 材質(zhì)。

擴(kuò)展

核心 glTF 2.0 格式可以使用 glTF 擴(kuò)展擴(kuò)展使用額外信息進(jìn)行擴(kuò)展。 這允許文件格式保存首次發(fā)布時不被視為通用的詳細(xì)信息。 并非所有 glTF 閱讀器都支持所有擴(kuò)展,但有些擴(kuò)展相當(dāng)常見。

某些Blender功能只能通過這些擴(kuò)展導(dǎo)出到glTF。 此附加組件直接支持以下 glTF 2.0 擴(kuò)展:

進(jìn)口

  • KHR_materials_pbrSpecularGlossiness

  • KHR_lights_punctual

  • KHR_materials_unlit

  • KHR_texture_transform

出口

  • KHR_draco_mesh_compression

  • KHR_lights_punctual

  • KHR_materials_unlit

  • KHR_texture_transform

動畫

glTF 允許每個文件有多個動畫,動畫目標(biāo)為 導(dǎo)出時的特定對象。為了確保包含動畫, (a) 使其成為對象上的活動操作,(b) 創(chuàng)建單條帶 NLA 軌道, 或 (c) 隱藏操作。

支持

僅支持某些類型的動畫:

  • 關(guān)鍵幀(平移、旋轉(zhuǎn)、縮放)

  • 形狀鍵

  • 電樞/蒙皮

其他屬性(如光源或材質(zhì))的動畫將被忽略。

自定義屬性

大多數(shù)對象的自定義屬性都保留在 glTF 導(dǎo)出/導(dǎo)入中,并且 可用于用戶特定目的。

原文鏈接:Blender插件:GLTF 2.0 導(dǎo)入/導(dǎo)出工具 (mvrlink.com)


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: Blender插件

技術(shù)專區(qū)

關(guān)閉