GTK向けの新しいレンダラー
(blog.gtk.org)GTKの新しいレンダラー
- GTKにGLとVulkan向けの2つの新しいレンダラーが追加された。
- これらは既存の名前である「ngl」と「vulkan」を再利用して命名されている。
- 同じソースから構築されるため、「統合」レンダラーとも呼ばれる。
単一ソース
- 2つのレンダラーは同一のソースから構築され、Vulkan APIに従うモデルとして設計されている。
- VulkanとGLの違いを吸収するための抽象化を含んでいる。
- シーングラフの走査、変換の維持、テクスチャおよびグリフのキャッシュなどのインフラを共有できる。
- macOSのMetalベースのレンダラーやWindowsのDirectXベースのレンダラーへ拡張できる可能性がある。
実装の詳細
- 既存のGLレンダラーは単純なシェーダーを使用し、複雑な内容についてはオフスクリーンレンダリングに依存している。
- 統合レンダラーは各ノードごとのシェーダーを持ち、オフスクリーンの代わりにバッファ内のデータを解釈する複雑なシェーダーを使用する。
- 統合レンダラーは最適化がまだ不十分だが、正確性と保守性を重視しており、より多様なレンダーノードツリーを正確に処理できる。
新機能
- アンチエイリアシング: 既存のGLレンダラーには細部が失われる問題があったが、統合レンダラーはアンチエイリアシングによってこれを改善する。
- 小数スケーリング: 統合レンダラーは小数スケールを適切に処理できる。
- 任意のグラデーション: 統合レンダラーは無制限のカラーストップを持つグラデーションを処理できる。
- Dmabufs: Vulkanレンダラーは
render_textureAPIを通じてテクスチャを生成する際にdmabufsを生成できる。
注意点
- glshaderノードはもはやサポートされない。
- 小数位置: 新しいレンダラーはオブジェクトを正確な位置に配置する。
- ドライバーの問題: 新しいレンダラーはグラフィックスドライバーを新しく異なる方法で使用するため、問題が発生する可能性がある。
速度はより速いのか?
- 現時点では新しいレンダラーのほうが速いわけではない。
- 既存のGLレンダラーは速度向けに最適化されている一方、新しいレンダラーは新機能と正確性を提供する。
- Vulkanレンダラーは非公式ベンチマークで既存のGLレンダラーと同程度の性能を示している。
新しいデフォルト
- 最近公開された4.13.6スナップショットでは、nglレンダラーが新しいデフォルトとして設定された。
- これは試験的な措置であり、問題が発生した場合は既存のGLレンダラーに戻すことができる。
今後の計画と可能性
- 新しいレンダラーは、HDRを含む適切な色処理、GPUでのパスレンダリング、メインスレッド外でのレンダリング、性能向上などを実装するための良い基盤となる。
要約
- 新しいレンダラーには興味深い機能があり、今後さらに多くの機能が追加される予定である。
- 新しいレンダラーを試し、動作するかどうかについてのフィードバックを求めている。
GN⁺の意見
- 新しいレンダラーは、開発者により正確で多様なレンダリングオプションを提供する重要な進展である。
- VulkanとGLの統合アプローチは、今後さまざまなプラットフォームにおけるレンダリング互換性を向上させる潜在力を持つ。
- このような技術的進歩はユーザー体験を改善し、アプリケーションの視覚品質を高めることに寄与するだろう.
1件のコメント
Hacker Newsのコメント
wgpu.rsを使えばDirectXとMetalを無料で手に入れられるという言及。