1 ポイント 投稿者 GN⁺ 2024-01-30 | 1件のコメント | WhatsAppで共有

GTKの新しいレンダラー

  • GTKにGLとVulkan向けの2つの新しいレンダラーが追加された。
  • これらは既存の名前である「ngl」と「vulkan」を再利用して命名されている。
  • 同じソースから構築されるため、「統合」レンダラーとも呼ばれる。

単一ソース

  • 2つのレンダラーは同一のソースから構築され、Vulkan APIに従うモデルとして設計されている。
  • VulkanとGLの違いを吸収するための抽象化を含んでいる。
  • シーングラフの走査、変換の維持、テクスチャおよびグリフのキャッシュなどのインフラを共有できる。
  • macOSのMetalベースのレンダラーやWindowsのDirectXベースのレンダラーへ拡張できる可能性がある。

実装の詳細

  • 既存のGLレンダラーは単純なシェーダーを使用し、複雑な内容についてはオフスクリーンレンダリングに依存している。
  • 統合レンダラーは各ノードごとのシェーダーを持ち、オフスクリーンの代わりにバッファ内のデータを解釈する複雑なシェーダーを使用する。
  • 統合レンダラーは最適化がまだ不十分だが、正確性と保守性を重視しており、より多様なレンダーノードツリーを正確に処理できる。

新機能

  • アンチエイリアシング: 既存のGLレンダラーには細部が失われる問題があったが、統合レンダラーはアンチエイリアシングによってこれを改善する。
  • 小数スケーリング: 統合レンダラーは小数スケールを適切に処理できる。
  • 任意のグラデーション: 統合レンダラーは無制限のカラーストップを持つグラデーションを処理できる。
  • Dmabufs: Vulkanレンダラーは render_texture APIを通じてテクスチャを生成する際にdmabufsを生成できる。

注意点

  • glshaderノードはもはやサポートされない。
  • 小数位置: 新しいレンダラーはオブジェクトを正確な位置に配置する。
  • ドライバーの問題: 新しいレンダラーはグラフィックスドライバーを新しく異なる方法で使用するため、問題が発生する可能性がある。

速度はより速いのか?

  • 現時点では新しいレンダラーのほうが速いわけではない。
  • 既存のGLレンダラーは速度向けに最適化されている一方、新しいレンダラーは新機能と正確性を提供する。
  • Vulkanレンダラーは非公式ベンチマークで既存のGLレンダラーと同程度の性能を示している。

新しいデフォルト

  • 最近公開された4.13.6スナップショットでは、nglレンダラーが新しいデフォルトとして設定された。
  • これは試験的な措置であり、問題が発生した場合は既存のGLレンダラーに戻すことができる。

今後の計画と可能性

  • 新しいレンダラーは、HDRを含む適切な色処理、GPUでのパスレンダリング、メインスレッド外でのレンダリング、性能向上などを実装するための良い基盤となる。

要約

  • 新しいレンダラーには興味深い機能があり、今後さらに多くの機能が追加される予定である。
  • 新しいレンダラーを試し、動作するかどうかについてのフィードバックを求めている。

GN⁺の意見

  • 新しいレンダラーは、開発者により正確で多様なレンダリングオプションを提供する重要な進展である。
  • VulkanとGLの統合アプローチは、今後さまざまなプラットフォームにおけるレンダリング互換性を向上させる潜在力を持つ。
  • このような技術的進歩はユーザー体験を改善し、アプリケーションの視覚品質を高めることに寄与するだろう.

1件のコメント

 
GN⁺ 2024-01-30
Hacker Newsのコメント
  • 2010年ごろ、HTMLとCSSだけを使ってブラウザ上でGTKアプリケーションのUIを実装できる実験的なHTMLレンダラーがあった。当時はAtom、VS Code、Electron、そしておそらくNodeJSが登場する前で、非常に印象的だった。現在そのHTMLレンダラーが存在するかどうかは不明。
  • GTKがタイトルバーにウィジェットを許可する流れに従っていることへの残念さ。一部はドラッグ可能で一部は不可能なため、アプリケーション名やファイル名に割り当てられる領域が狭くなる。これはGTKだけに限った問題ではない。
  • Linuxのデスクトップ環境がどう動いているのかについての理解不足。ますます複雑化し、継ぎ足されてきたように感じられる。
  • ピクセル単位で精密な分数スケーリングへの興奮。
  • wgpu.rs を使えばDirectXとMetalを無料で手に入れられるという言及。
  • ANSIテキストレンダラーへの関心。これによりxterm内でGTKプログラムを実行できる。必要に応じてsixel機能も追加できるかもしれない。
  • 性能低下が受け入れられている理由への疑問。古いハードウェアで大半のコンピューティングを行っており、こうした機能は無効化されるか、GPUでサポートされていない可能性もある。
  • GTKの作業は楽しくてクールに見える。アンチエイリアシングへの言及や、ゲームエンジンでフォントレンダリングに使われる符号付き距離場技術の適用可能性への期待。ゲームレンダラーで使われるさまざまな技術はGUIコードにも有用かもしれない。
  • オープンソースのGUIツールキットレンダラーより何世代も先を行くレンダラーを開発したグラフィックスエンジン開発者は多いが、その大半はゲーム開発会社で働いており、オープンソースのスタックに貢献する時間がない。コミュニティが定期的な予算を組んでこうした開発者に報酬を支払えれば、オープンソースデスクトップでかなりのレンダリングやツールキットの更新が見られるだろう。
  • 特定のコメントが通報され、内容が非表示になっている。