Wonderland Engine 1.4.0 - GI プローブボリューム、Reverse-Z、配列プロパティ
スパースグローバルイルミネーションプローブボリューム、Reverse-Z、新しいカスタムコンポーネントのパラメータタイプ (配列とレコード)。変更履歴全文はこちらを参照してください。
スパースグローバルイルミネーションプローブボリューム
このリリースのハイライトは、プローブボリュームの高性能実装です。我々の手法は、シーンをボクセル化し、球面調和拡散光プローブを シーンに配置し、表面付近に光プローブを分配します。この結果、GPUとダウンロード時間の両方で負担が少なく、必要な箇所にのみプローブを配置し、 データを効率的に使用できます。
プローブはエディタから直接ベイクされます。間接照明は動的およびスキン付きオブジェクトにも適用されます。
上記のシーンには約52,000プローブがあり、約2.5MBのGIデータがダウンロードされます。
Reverse Z
この機能は Playko のスポンサー提供です。

32ビット浮動小数点数がゼロに近いほど高い精度を持つため、従来のNDC座標(投影結果)の精度範囲は-1から1であり、 これは最適ではなく、近距離と遠距離で強いz-ファイティングアーティファクトを生成する可能性があります。 極端に近いまたは遠いクリッピング平面距離の設定は、この効果を増幅します。
Reverse-Z は、NDCスペースおよび投影行列を設定し、32ビット浮動小数点の精度分布を最適化して使用し、 通常のz-ファイティングアーティファクトなしで非常に近いおよび非常に遠いオブジェクトをレンダリングできるようにします。
常にSIMD
WebAssembly SIMDの広範な普及により、ランタイムの非SIMDバリアントをすべて削除しました。これにより、ランタイム名には
もはや -simd サフィックスが使用されず、暗示されることになります。
1.0.0より古いプロジェクトのサポート
Wonderland Engine 1.0.0 がリリースされてからほぼ2年が経過したことを信じるのは難しいです。
1.4.0では、1.0.0より古いバージョンで書かれたプロジェクトファイルを更新する38の個別のプロジェクトファイル移行を削除しました。 これだけ多くの移行が存在したことは、後方互換性をどれほど真剣に考えているかを明示しています。
1.0.0より古いプロジェクトファイルを1.4.0で引き続き作業したい場合は、最初に1.3.4またはそれ以前のバージョンのWonderland Engineを使用して、 最初に1.0.0以降のバージョンに移行することが可能です。
変更履歴
エディタ
- プロジェクト設定に新しいグローバルイルミネーションセクションを追加してプローブボリュームを作成および設定。
- 削除されたシーンファイルのインポートによる古いファイル内容のインスタンス化の修正。
- リソースビュー > 画像に画像圧縮品質とレート歪み最適化(RDO)設定を公開。
- Linux: クラッシュレポートを有効にしました。
- パスワードマネージャーへのアクセスのため、ブラウザからのログインを優先する形に 改善されたインエディターログイン画面。
- 様々なクラッシュの修正。
エンジン
EXT_clip_controlが利用可能な場合はReverse-Zを使用。- スパースGIプローブボリュームによる新しいベイクされたグローバルイルミネーション。
- mediumpフロートに対して無効なEPSILON_F定数の修正により、低スペックのAndroidデバイスでの問題を解決。
- meshoptimizer 0.23にアップデート(メッシュのファイルサイズが約5〜10%改善の可能性)。
- プラグインのホットリロードによりプラグインビューに余分なプラグインエントリが発生する可能性のある問題の修正。
- 低スペックデバイスでのタイルフィードバックバッファの評価を最適化。
- 点光源の影のアーティファクトの修正。
ランタイム
- WebAssemblyランタイムの非SIMDバリアントの削除。
- ImageBitmapを使用した非圧縮テクスチャアップロードの最適化。
- ImageBitmapからのテクスチャへのアップロードを許可。
ランタイムAPI
Property.array()とProperty.record()の追加。
Dockerイメージ
- ベースイメージをUbuntu 20.04から22.04に切り替え。
プラグインAPI
- プラグインの
package.jsonに"wonderlandengine"キーが存在することが必須に。 - 実験的に
tools.computeMeshBounds(mesh)の追加。 ui.inputTextMultiline()の追加。