博客專欄

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

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

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

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

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

  • 網(wǎng) 格

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

  • 紋理

  • 相機(jī)

  • 準(zhǔn)時(shí)燈光(點(diǎn)、點(diǎn)和方向)

  • 動(dòng)畫(huà)(關(guān)鍵幀、形狀關(guān)鍵幀和外觀)

網(wǎng) 格

glTF的內(nèi)部結(jié)構(gòu)模仿了圖形芯片常用的內(nèi)存緩沖區(qū) 實(shí)時(shí)渲染時(shí),以便可以將資產(chǎn)交付到桌面、Web 或移動(dòng)客戶端 并以最少的處理及時(shí)顯示。結(jié)果,四邊形和 n 邊形 導(dǎo)出為 glTF 時(shí)自動(dòng)轉(zhuǎn)換為三角形。 不連續(xù)的 UV 和平坦的陰影邊緣可能會(huì)導(dǎo)致 glTF 中的頂點(diǎn)計(jì)數(shù)略高 與攪拌機(jī)相比,因?yàn)檫@樣的頂點(diǎn)是分開(kāi)的。 同樣,曲線和其他非網(wǎng)格數(shù)據(jù)也不會(huì)保留, 并且必須在導(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 文件時(shí), 該插件將構(gòu)建一組Blender節(jié)點(diǎn),以盡可能接近地復(fù)制每個(gè)glTF材料。

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

提示

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

出口材料

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

注意

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

提示

要?jiǎng)?chuàng)建無(wú)陰影(無(wú)光照)材質(zhì),請(qǐng)使用背景材質(zhì)類型。

基色

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

../_images/addons_io-gltf2_material-基色-實(shí)綠色.png

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

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

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

圖像用作 glTF 基色。

金屬和粗糙度

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

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

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

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

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

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

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

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

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

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

提示

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

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

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

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

提示

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

法線貼圖

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

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

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

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

提示

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

請(qǐng)參見(jiàn):循環(huán)渲染烘焙

****的

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

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

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

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

注意

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

雙面/背面剔除

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

對(duì)于雙面材料,請(qǐng)取消選中此框。

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

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

混合模式

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

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

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

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

注意

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

紫外線貼圖

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

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

  • 位置 - X 和 Y

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

  • 比例 - X 和 Y

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

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

深思熟慮的UV貼圖選擇。

提示

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

因素

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

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

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

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

擴(kuò)展

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

某些Blender功能只能通過(guò)這些擴(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

動(dòng)畫(huà)

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

支持

僅支持某些類型的動(dòng)畫(huà):

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

  • 形狀鍵

  • 電樞/蒙皮

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

自定義屬性

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

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


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



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

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

關(guān)閉