不少開源專案喜歡在聖誕節發布新版本,知名開源繪圖引擎Ogre也不例外,在平安夜發布了經過一年多開發的新版本Ogre 2.3.0,這個版本有許多更新,包括改進裝置丟失(Device Lost)的處理、更新陰影實作,並且穩定支援跨平臺3D繪圖API Vulkan。

Ogre 2.3.0現在能更好地處理裝置丟失的問題,官方提到,大多數遊戲不在乎裝置丟失的問題,因為遊戲在執行時,可以擁有整個電腦資源。但裝置丟失被認為是嚴重故障,但也非常罕見,通常是由硬體或是軟體造成的故障,或是在遊戲過程中,進行Windows更新時才會發生,但在這些情況,遊戲體驗本身就已經遭到中斷。

但是對於非遊戲的應用程式就不是如此,裝置丟失可能由多種原因造成,最常見的是驅動程式升級,或是電腦在省電和效能模式中切換,當驅動程式升級,則裝置丟失就成為必然的情況,而從省電模式切換到效能模式,在行動裝置或是筆記型電腦更是常發生的情況。官方提到,要從裝置丟失狀態中恢復非常困難,這取決於應用程式的複雜性,以及裝置丟失時,應用程式正在進行的工作。Ogre開發團隊在這個新版本中,下了許多功夫改善這個問題,使得應用程式能夠在裝置丟失時,優雅的恢復。

這個新版本也使用了更先進的陰影技術,官方雖然之前就曾收到一些陰影特效的抱怨,但是一直到有用戶進行了更詳盡的研究,官方才意識到Ogre一直未採用較新的Normal Offset Bias陰影技術。雖然說Normal Offset Bias是比較新的技術,但也是早在2011年就發明,其能夠極大程度改善自我遮蔽和陰影失真(Shadow Acne)的問題,投射陰影的步驟也比原來的Inverted-culling方法強健得多。

現在Normal Offset Bias已經取代Inverted-culling方法,舊的函式HlmsManager::setShadowMappingUseBackFaces()已經被刪除,取而代之的是ShadowTextureDefinition::normalOffsetBias和ShadowTextureDefinition::constantBiasScale,供開發者進行更細緻的控制。

在Ogre 2.3.0中,Vulkan已經進入穩定階段,但有已知問題要注意的是,在和Qt整合的時候存在一些問題,目前尚未被深入研究。另外,官方在Plugins.cfg加入PluginOptional關鍵字,來維持Ogre的使用體驗,過去Ogre會在許多情況下容易崩潰,像是用戶電腦沒有安裝DirectX執行時,即便有OpenGL作為後端,Ogre可能會崩潰。在可能不支援DirectX 9.0c的Win 9x和Win XP時代尤其如此,雖然從很久以前開始,這已經不再是個問題了。

但是這個問題隨著Vulkan重新浮出檯面,因為擁有老舊驅動程式的筆電,其GPU仍完全能夠執行 Vulkan,但是缺少系統DLL或是GPU不能執行Vulkan,都會造成Ogre崩潰,為了解決這個問題,Ogre在Plugins.cfg檔案中添加關鍵字Plugin Optional,這使得Ogre會嘗試載入OpenGL、D3D11、Metal或Vulkan,當這些擴充套件都載入失敗,便會被忽略,使得Ogre能夠在舊有的硬體和軟體中良好地運作。

熱門新聞

Advertisement