在Autodesk發佈2016的產品線後,Maya也是其中非常重要的一部分,這次的Maya 2016相對於2015版,改進相當多,尤其是效率的部分,接下來我們就來看看Maya2016在每個部分到底改了哪些地方。
GUI Interface(使用者界面)
Maya在使用者介面上改動了不少,最大的改變就是Icon與Menu的編排,新增了Rigging的Menu與Shelf
New style and icon
全新設計的flat style,與icon,配合Menu bar上面顯示的小圖示,在不同功能下的分類Shelf的Icon的色彩也不同,更容易識別Icon的功能
Custom display resolution settings(自訂解析度顯示)
這個功能是為了OSX系統,Maya2016可以在preferences設定裡修改Interface的縮放(scale),讓Retina Display或高解析度的螢幕下有更好的顯示效果。
High resolution display capabilities(高解析度顯示的能力)
Maya新的介面與Style支援不同裝置的高解析度的Icon與文字顯示,包含Ultra HD或4K的螢幕。
Multi-platform font support(支援多平台的字型系統)
透過Qt的GUI對於字型的支援,讓Maya的字型可以跨平台操作,讓建立Text Curve更為容易。
Viewport 2.0
在Viewport 2.0(VP2)的部分,Maya支援的完整的OpenGL 4.0,可以在VP2做完所有的Modeling Component編輯,完整的OpenSubdiv的顯示支援,Texture 背景載入與預覽,HUD(Head Up Display),Displacement(DX11),並且完全支援在VP2中顯示Bifrost特效與Volume Effect,包含顯示XGen的Description與Archives,並且推出了完整的VP2 API的完整轉移手冊,讓開發者了解如何從傳統的VP1轉換到VP2新的Drawing Pipeline上。
Performance(效率)
Evaluation Manager
Maya 2016使用了平行化的evaluation系統,稱為Evaluation Manager,用來增加playback與操作rigging的效率,這個新的多執行緒系統擁有可以利用所有計算資源(包含CPU與GPU)的優勢,之前的Maya版本evaluation DG node只使用單一個核心。
Maya傳統的Evaluation建立在序列化的Directed Graph(DG)的dirty propagation機制上面,新的Evaluation Manager會判斷應該去如何evaluate場景,切割工作給有空的CPU或GPU來提升效率。這個動作基本上會在背景執行,使用既有的dirty propagation機制轉換場景中的Directed Graph (DG)成Forward Evaluation graph (FG),一旦FG建立了,dirty propagation就會關閉,而建立Evaluation schedule(ES執行排程),ES會照著正確的順序執行場景裡的節點,得到與傳統Directed Graph (DG)的同樣的結果。
Maya新的Evaluation Manager提供三種模式,DG(dependency graph-based), Serial(序列)與Parallel(平行),可以使用GPU Override。
- DG: 使用傳統Maya的default evaluation mode模式
- Serial: 使用Evaluation Manager但是只使用單核心,可以用來檢查場景中的效率瓶頸所在。
- Parallel: 使用所有空閒的核心來處理場景
Profiler
因應Maya的Evaluation Manager,Maya也提供了Profiler來診斷場景的狀態,幫助提升Maya場景的執行效率,看看是哪些Node或程序是場景的效率上的瓶頸,進而可以針對該問題做調校。Maya不只針對Node的Evaluation做Profiler,也可以對MEL與Python與Maya API的Script做紀錄,供Debug使用。
Bifröst
Maya自2014加入Biforst framework,在Marcus Nordenstam(前Naiad創始人之一)將Naiad流體的引擎整合進了Maya裡,並將Softimage的ICE Team加入Maya共同開發後,把Bifröst建立成流體或物理特效的開發的平台。之前在fxGuide中也有提到Maya將會在未來的版本提供進階的功能,在Maya 2016版本也都一一推出了。
Maya 2016 也開啟了期待已久的Biforst Graph的編輯器,以Node based的邏輯方式串接Biforst的節點,並開放類似C++可程式化的節點,透過即時編譯(JIT)的技術,達到與C++的程式編譯的執行效率,未來也可能可以編譯給GPU執行。
Bifröst Aero solver
Bifröst加入了新的大氣效果模擬功能Aero,可以模擬fire, smoke, cloud與fog。基本上是一個FLIP solver,可以獨立分開控制particle的模擬的密度與算圖的密度,也就是說使用低解析的FLIP Particle模擬出來的結果,可以在算圖的時候可以使用高解析的結果,達到模擬的效率與品質提升,並減少運算量的負擔。
Bifröst在流體的部分也加入了foam(泡沫) particle的模擬,可以讓使用者模擬快速翻滾的流體所產生的bubbles(氣泡), froth(泡沫),與spray(噴濺)效果。foam particle也支援以camera的adaptivity,透過Camera的距離來決定foam particle的噴濺模擬解析度,也可以透過Camera的視角範圍當作foam particle發射設定裁切的範圍。
支援使用Guide Mesh來模擬流體,可以使用已經Cache過的Animated Mesh,來保留需要的特徵,像是導演已經決定的波浪,透過已經決定的動態物件來做為驅動,模擬成高解析度的流體結果。
這一版的Bifröst中修改了核心,支援了adaptive,可以在需要細節的部分保留Voxel解析度,可以使用自動或手動調整在空間(Spatial)或時間(Time Stepping)上的作最適化的分割解析度。但這樣會與前一版Bifröst同一參數所運算出的結果會有不同。
Shading and Rendering
在2016的版本裡,Shading最大的改變就是HyperShade的界面改變為符合Lookdev(Look Development)的流程適合的介面,並且完全移除了舊有的HyperShade的Panel,改變為新的Node Editor的Panel,同時整合Property Panel(也就是精簡版的Attribute Editor)進新的HyperShade界面,讓調整Shading的參數不用跳出HyperShade的介面,讓工作流程更為順暢。在界面的部分,也因為Qt的Dock Widget,可以在HyperShade崁入Viewport,RenderView,UV Editor等各種的Panel,強化了自訂界面的變化,可以依照使用者的需求加入視窗。
Mentalray 3.13
Mentalray雖然現在並沒有Bundle在Maya銷售的包裝裡,在Maya 2016版本使用的是mentalray 3.13的版本,這個版本與之前的3.12版本也有許多的改進,包含新的GI(Global illumination)模式,MDL的支援,iRay 4的核心等等。
- Render Settings Redesign
- 在Scene的Tab下包含了基於framebuffer的簡化Render Passs的系統(standard utility passes)
- 支援MILA Light Path系統與Matte Pass passes
- 傳統的Maya Render Pass可以在Preference/Render下開啟
- NVIDIA Material Definition Language
- Deep OpenEXR
- UV Tiles Optimized
- Create Lights menu
- Object Lights
- Rendering Bifrost with mental ray
- XGen hair shading and displacement
新的Mentalray for Maya的Render Setting做了相當不同的調整,配合mental ray的新功能,並且以mental ray的邏輯與思考來設計操作,也避免與Maya之前的Render Pass機制造成mental ray的使用上的複雜度提升。在新的介面上也將一些進階的選項(Advanced Settings),使用show Advanced Settings選項做開關做進階的設定。
在Render Pass的部分,mentalray for maya終於回歸到mental ray的framebuffer的思考邏輯,之前因為mentalray for maya是在Autodesk底下做開發,設計思考全以”Maya”的邏輯設計操作,導致Render Pass的機制操作過於複雜與效率不佳,現在收回給Nvidia下mental image做開發,整體設計邏輯統一成mental ray機制,並支援MILA的LPE(Light Path Expression)的Pass模式,也統一了不同軟體間操作邏輯。如果對舊有Autodesk版本的RenderPass的使用者,還可以在Preference的Render項目下可以開啟傳統Maya的RenderPass系統,就會在Render Setting下多一個Render Pass的Tab。
Mentalray 3.13支援Material Definition Language(MDL)的Shader語言,MDL是Nvidia所提出標準化物理材質描述的通用語言格式,Maya 2016之後會提供預先封裝好的MDL Shader供使用。
Mentalray 3.13核心使用OpenEXR 2.2,同時也支援Deep Image輸出,同一次Render下同時可以在不同的framebuffer儲存2D image資料與Deep data,只要在Maya Render Setting的Primary Framebuffer開啟”Use Deep Image Format”圖像資料就會以DeepTile的形式儲存到EXR的檔案中。
Mentalray 3.13提供了新的UV Tiling的shader “mib_tiled_texture”,mental ray內部也會在背景轉換這些比較有效率的texture索引模式,直接支援Maya的file node,這些新的shader也以名為”coreutil”新的shader package,加入到標準的mental ray shader裡。
Maya 2016在建立燈光時,可以直些選擇建立mental ray的燈光,加速操作的便利性。
這個功能並不是新的功能,但是之前mental ray基本上是以geometry shader來處理object light機制,但是新的mental ray for maya 2016可以將物件單純改成指定一個Object Light的材質或從選到的物件透過Light menu建立Object Light,就可以把物件變成燈光。
Biforst可以模擬許多的效果像是流體(liquid),泡沫(foam)與泡泡(bubbles), 水花(spray)與霧(mist),都可以透過geometry shader將資料轉換到mental ray for maya 2016做render。
預設的XGen hair shader使用了新的xgen_hair_physical,這個shader是以mentalray 3.13改進的hair shader “mib_illum_hair_x”為基礎,增加了間接光源(indirect lighting)的對於shading的控制,新的參數可以調整Tube Shading的樣貌,也可以在內部調整Color Noise的效果。