最近, GTK 開發者宣布添加兩個新的渲染器:“ngl”和“vulkan”,分別為GL和Vulkan設計。兩個渲染器由相同的程式碼庫建構並遵循 Vulkan API,使維護和升級變得容易。
雖然它們在速度上仍然沒有超越舊的GL渲染器, 這些「統一」引擎提供了有趣的新功能 例如抗鋸齒、分數縮放以及對 dmabuf 的支持。重要的是,ngl 在最近的 4.13.6 快照中已成為新的預設渲染引擎。
對於不熟悉 GTK(以前的 GIMP ToolKit 和 GTK+)的人來說,您應該知道這是一組流行的開源跨平台軟體庫,用於創建圖形使用者介面 (GUI)。 GTK 最初是為了滿足 GIMP 影像處理軟體的需求而開發的,尤其是 Wayland 和 X11 視窗系統最受歡迎的工具集之一。
關於“ngl”和“vulkan”
這些新渲染器的結合, “ngl”和“vulkan”,標誌著GTK發展的一個重要里程碑, 兩個新渲染器的推出凸顯了它們在提供高級功能的同時保持與先前版本的兼容性的能力,並證明了社群對使用者介面開發的持續改進和創新的承諾。
這些新的渲染引擎旨在分別充分利用 GL 和 Vulkan API 的功能,並為使用者和開發人員提供許多令人興奮的改進和功能。
這些新渲染器最顯著的特徵之一是它們共享一個共同的來源,這使得它們成為所謂的「統一渲染器」。這意味著 它們基於相同的程式碼庫構建,建模遵循 Vulkan 和 GL API,並提供抽象來涵蓋兩者之間的差異。這種統一的方式不僅使升級和維護變得更加容易,而且為未來的擴展提供了堅實的基礎。
新的渲染方法引入了許多改進和功能,包括:
- 改良的抗鋸齒: 新的渲染器解決了精細細節丟失和鋸齒狀邊緣的問題,特別是在下劃線和助記符等情況下。
- 分數比例: 統一渲染器可以更有效地處理分數比例,從而產生更清晰的影像和更少的像素。
- 任意梯度: 漸變的支援已擴展為無限數量的色標,從而提高了設計的視覺品質。
- 對 Dmabuf 的支持: 新的渲染器支援透過 render_texture API 為紋理建立 dmabuf,從而擴展了渲染功能。
雖然新的渲染器提供了許多優勢,但它們也為應用程式開發人員帶來了一些挑戰:
- glshader 節點: 新渲染器不支援舊 GL 渲染器的所有 glshader 節點,這可能需要在某些應用程式中進行調整。
- 分數部位: 現在可以更精確地處理分數位置,這可能需要調整某些佈局和圖形。
- 控制器問題: 切換到新的渲染器可能會引發某些圖形驅動程式的相容性問題。
除此之外,也提到,雖然新的渲染器還沒有比舊的 GL 渲染器快,但它們為未來的改進和擴展提供了巨大的潛力。未來的版本預計將解決渲染的更多方面,例如顏色管理、字形渲染以及功能較弱的設備上的性能。
最後,關於新渲染器的未來計劃,請提及以下內容:
- 適當的色彩管理(包括 HDR)
- GPU上的路線渲染
- 可能包括字形表示
- 在主線程之外渲染
- 性能(在舊的、功能較弱的設備上)
最後,如果您有興趣了解更多,可以諮詢 以下鏈接中提供了詳細信息。