Bevy 0.20は、Rustで書かれたオープンソースゲームエンジンの最新リリースであり、レンダリングの忠実度、開発者エクスペリエンス、ツールの向上を目的とした機能スイートを提供します。このアップデートでは、リアルタイムパストレースレンダラーのSolari、シーンシステムのBSN、Feathers UIツールキット、シェーダー言語サポート、その他様々なコンポーネントに触れ、エンジン貢献者の継続的な作業を反映しています。
Solariレンダラーは、画質とパフォーマンスの両方で顕著な進歩を見せています。ReSTIR実装の改善により、レンダリングはほぼバイアスがなくなり、より正確な照明、移動中のオブジェクトでのラグのあるシャドウの除去、非金属材料でのきらめきの少ない反射がもたらされます。パフォーマンスの向上は、ReSTIRをオプション(デフォルトで無効)にし、Solariのシーン管理コードを最適化することにより実現されており、これは以前のバージョンのレテンディングレンダーワールド最適化に似ており、CPUコストが大幅に削減されます。ユーザーは、SolariLightingの新しいフィールド(ワールドキャッシュサイズ、ピクセルごとのライトサンプル数、時間的蓄積、パストレースバウンス count)を通じて動作を微調整できます。互換性は、カメラでのAtmosphereおよびEnvironmentMapLightソースからの照明を含むように拡張され、既存のDirectionalLightおよびエミッシブメッシュサポートと並んでおり、将来的にはPointLight、SpotLight、RectLightの追加が計画されています。さらに、dlss_wgpuクレートは最新のDLSS-RR 4.5をサポートするように更新され、ノイズ除去品質が向上していますが、macOSユーザーは現在Solari用の組み込みノイズ除去機能がなく、MetalFX Ray Reconstructionが将来的な解決策として提案されています。

この画像は、Bevy 0.20のSolariレンダラーの進歩を示しており、特に2段落で述べられたReSTIR最適化による画質とパフォーマンスの向上を示しています。
シーン構成の分野では、BSN構文が洗練され、エルゴノミクスと可読性が向上しました。シーン参照は now @ プレフィックスを必要とし、コンポーネント値、関数、式周りの template_value ラッパーが不要になりました。Default と Clone を実装するenumは、VariantDefaults や FromTemplate なしで直接使用できるようになりましたが、この変更により、BSN で使用する際にはすべてのenum フィールドを明示的に指定する必要があります。ビルダー パターンとチェーンメソッドも template_value ラッパーを必要としなくなり、リスト エンティティはカンマや括弧の代わりに -- で区切られるようになり、構文ノイズが減少し視覚的に際立つようになりました。新しい Ready イベントは、エンティティとそのすべての子が生成された後にトリガーされ、完全にロードされたシーン階層に依存するロジックを可能にします。
シーン構文を超えて、Bevy 0.20はFeathers UIツールキットを拡張し、ポップアップカラーホイールとスライダーを備えたカラー入力セレクター、スクロール可能な選択可能なリストビュー、ドロップダウン選択フィールド、インタラクションに応じて生成と消去を行うラジーメニュー、およびハードリミットとソフトリミットを設定可能なテキスト入力とスクラビング/ドラッグをサポートする数値入力ウィジェットを追加しました。ヘッドレスタブウィジェットは、TabListとTabコンポーネントを提供し、外部で管理される選択に対応し、Bevyのフォーカス、インタラクション、アクセシビリティシステムと統合されます。

この画像は、Bevy 0.20のFeathers UIツールキットに追加されたカラー入力ウィジェットを示しており、ポップアップカラーホイールとスライダーを含む4段落で述べられています。

この画像は、Bevy 0.20のFeathers UIツールキットに導入されたラジーメニュー ウィジェットを示しており、ユーザーのインタラクションに応じて生成と消去を行うと述べられている4段落に対応しています。
エンジンはまた、シェーダー開発のためにWGSLの標準化された拡張であるWESLを採用し、モジュール、インポート、条件コンパイルをもたらし、wgsl-analyzerによるIDEツールを可能にしています。その一方で、レガシーなカスタムBevy WGSLシェーダーをWESL形式に変換する必要があります。

この画像は、フォグシェーダーにWESL(WGSLの拡張)が使用されている様子を示し、Bevy 0.20がシェーダー開発で採用しているモジュール、インポート、条件コンパイルの新機能を強調しており、これは5段落で説明されています。