最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

將 UV 從 Maya 導(dǎo)入到 Unity

2020-06-22 09:38 作者:unity_某某師_高錦錦  | 我要投稿

Maya 是 Autodesk 推出的 3D 計算機動畫軟件,具有強大的建模、渲染、模擬、紋理和動畫工具,適用于視覺效果美術(shù)師、建模師和動畫師(請參閱?www.autodesk.co.uk)。Unity 開發(fā)人員經(jīng)常使用該軟件來完成高級圖形處理工作,然后再導(dǎo)入到 Unity 中。請務(wù)必注意,從 Maya 導(dǎo)入時,即使取消選中?Optimize Realtime UVs?復(fù)選框,UV 也可能看起來不完全相同。本章節(jié)將解釋原因。

由于實時 UV 由 Enlighten 重新打包,因此了解如何檢測 UV 圖表非常重要。默認(rèn)情況下,圖表由一組連接的頂點定義。但是,DCC 或 Unity 網(wǎng)格導(dǎo)入器可能會在網(wǎng)格具有硬邊的位置引入額外的頂點。這些重復(fù)的頂點會在 UV 中創(chuàng)建額外的孤島(未連接的頂點組)。但是,當(dāng)您烘焙光照貼圖時,這些切割通常不會被注意到,因為 UV 將直接使用而不會重新打包。下圖展示了這種情況下的一個例子。

Maya 中的 UV

高平滑角不會保留模型中的硬切割,因此著色和 GI 看起來都發(fā)生了變化。

與此相關(guān)的網(wǎng)格導(dǎo)入器設(shè)置包括?Normals、Tangents?和 __Smoothing Angles__:

Normals、Tangents

如果將?Normals?設(shè)置為?Calculate__,則在相鄰三角形之間的角度超過?Smoothing Angle__ 值的任何地方都會中斷。

為避免這種情況,您可以選擇創(chuàng)建和導(dǎo)入法線(請參閱有關(guān)法線貼圖的文檔以了解關(guān)于表面法線的更多信息)。為了使用導(dǎo)入的法線獲得良好的結(jié)果,您需要手動沿著硬邊緣進行切割,并注意 DCC 如何插入重復(fù)的頂點。否則,GI 和常規(guī)著色都可能產(chǎn)生不可預(yù)見的光照效果。

示例

使用 40 度__平滑角 (Smoothing Angle)__ 打包時,將保留模型中的硬角度,并創(chuàng)建額外的圖表:

資源來源:Perry Smith,VizArtOnline
資源來源:Perry Smith,VizArtOnline

如果?Smoothing Angle?設(shè)置為 180 度,則不會進行切割,并且 UV 與在 Maya 中相同。唯一不同是圖表打包:

資源來源:Perry Smith,VizArtOnline

資源來源:Perry Smith,VizArtOnline


優(yōu)化實時 UV

網(wǎng)格渲染器包含名為?Optimize Realtime UVs?的選項。

Optimize Realtime UVs?可以啟用 Enlighten 的 UV 優(yōu)化功能。請注意,如果禁用此選項,則不允許原創(chuàng)的 UV 直接流向 Enlighten;仍會應(yīng)用重新打包。

該功能僅用于優(yōu)化實時 GI 的圖表,不會影響烘焙 UV。該功能旨在簡化 UV 展開,從而減少圖表數(shù)量(進而減少紋理數(shù)量)。這樣將使光照在整個模型中更加一致,讓紋理像素分布更均勻,并避免在小細(xì)節(jié)上浪費紋理像素。執(zhí)行預(yù)計算階段所需的時間與您輸入的紋理像素數(shù)量成正比。例如,一個高度細(xì)節(jié)化的瓷磚地板上每塊瓷磚的單獨圖表會占用大量不必要的紋理像素,但將它們加入到單個圖表中可大幅降低紋理像素數(shù)量。這種做法之所以有效是因為實時光照貼圖僅存儲間接光照(意味著沒有明顯的直接陰影)。

該過程不能改變模型中的頂點數(shù)量,因此該過程不能在已存在中斷的 UV 中引入中斷。這意味著生成的圖表布局相同,但某些圖表可能會重疊或合并到不太可能對間接光照產(chǎn)生負(fù)面影響的區(qū)域。

合并圖表時可使用以下設(shè)置進行定義:

  • __Max Distance__:如果圖表之間的世界空間距離小于此值,則會簡化圖表。

  • __Max Angle__:如果圖表之間的角度小于此值,則會合并圖表。

這些設(shè)置旨在避免合并相距很遠(yuǎn)或指向大致不同的方向的圖表。

優(yōu)化實時 UV:示例

以下示例使用 Asset Store 中的沙漠遺址 (Desert Ruins)?資源:

資源來源:DEXSOFT-Games

此示例使用默認(rèn)參數(shù),且實時光照貼圖分辨率為每單位 1 個紋理像素。此模型的長度大約是 9 個單位。下圖顯示了使用自動 UV (Auto UV) 功能為此模型生成的實時 UV:

請注意,地板上的瓷磚已打包到單個圖表中,并且分辨率也依照所選紋理像素密度和實例大小進行了調(diào)整:

在未使用 Auto UV 功能打包時,生成的 UV 如下所示:

由于圖表會在模型提供的已生成的 UV 中分割,這會生成大量小圖表。由于未啟用 __Auto UVs__,因此無法合并其中任何圖表,并且無論大小如何,每個不相連的獨立 UV 圖都會獲得自己的 4x4 像素塊。下圖顯示了 UV 的一部分:

墻的貼圖仍然獲得 10x4 紋理像素的合理分辨率,但每塊小瓷磚都有不成比例的 4x4 紋理像素。之所以最小圖表大小為 4x4,是因為我們希望能夠在所有 4 個邊上拼接圖表,同時仍然可在圖表上獲得光照漸變。

進一步優(yōu)化圖表

還有兩個選項可用于進一步優(yōu)化 UV 布局的圖表繪制:

  • Ignore Normals

  • Min Chart Size

Ignore Normals

勾選?Ignore Normals?復(fù)選框可將由于法線硬中斷而具有重復(fù)頂點的所有圖表鏈接在一起。當(dāng)頂點位置和頂點光照貼圖 UV 相同但是法線不同時,Enlighten 中可能會出現(xiàn)圖表拆分。對于小細(xì)節(jié),沒有必要使用多個 4x4 紋理圖表來代表間接光照,而且這會影響預(yù)計算和烘焙性能。在此類情況下,請啟用?Ignore Normals。

示例

在以下示例中,禁用了?Optimize Realtime UVs__,用于獨立演示?Ignore Normals__ 的效果。

左圖顯示了未啟用?Ignore Normals?的結(jié)果。右圖顯示了啟用?Ignore Normals?的結(jié)果。

啟用?Ignore Normals?時,此模型的 24x24 Enlighten 展開降低到 16x16 展開。

Min Chart Size

Min Chart Size?可解除圖表最小大小為 4x4 的限制。拼接并非總是有效,但對于小細(xì)節(jié),這通常是可以接受的。

示例

在此示例中,__Min Chart Size__ 設(shè)置為?2 (Minimum)。

如果將此?Min Chart Size?選項和?Ignore Normals?選項應(yīng)用于上述模型,則展開將降低到 10x10。

為實時 GI 獲取用于拼接的圖表邊緣

設(shè)置為?Realtime?的光照貼圖支持圖表拼接。圖表拼接可確保不同圖表中相鄰紋理像素的光照一致。這有助于避免沿圖表邊界出現(xiàn)明顯接縫。在紋理大小較大的情況下,接縫兩側(cè)的光照可能大相徑庭。因為紋理像素不相鄰,這種差異不會通過過濾自動平滑掉。

在以下示例中,即使在紋理化后,右側(cè)球體上也可以看到接縫,因為它尚未拼接:

Stitching is on by default. If you think it is causing some unwanted issues, you can disable it; Apply?Lightmap Parameters?to the instance in question and untick the?Edge Stitching?checkbox.

要使圖表順利拼接,邊緣必須符合以下標(biāo)準(zhǔn):

  • 必須啟用 __Preserve UVs__,這樣 Auto UV 功能便不會簡化圖表。

  • 圖表必須在同一個網(wǎng)格中。

  • 邊緣必須共享頂點。

  • 邊緣在 UV 空間中必須處于水平或垂直方向。

  • 邊緣必須具有相同數(shù)量的紋理像素(這通常是由前兩個條件推斷得出)。

這也是 Unity 的內(nèi)置球體、膠囊體和圓柱體的生成方式。注意圖表是如何排列的:


將 UV 從 Maya 導(dǎo)入到 Unity的評論 (共 條)

分享到微博請遵守國家法律
长沙县| 图木舒克市| 浙江省| 临西县| 新建县| 新乡市| 鹤壁市| 临海市| 四子王旗| 肥城市| 萨嘎县| 屏边| 墨江| 永定县| 大连市| 塔河县| 五大连池市| 宁津县| 河西区| 平安县| 临邑县| 交口县| 方山县| 黎城县| 宁海县| 烟台市| 措美县| 东山县| 海阳市| 梧州市| 绍兴县| 东乌珠穆沁旗| 雷波县| 营山县| 独山县| 庆安县| 若尔盖县| 陇川县| 大同市| 德安县| 宿松县|