
このブログでは、今まで公開された記事の中で、Unreal Engineに関する記事を取り上げ、UE4ガベージコレクション実装原理や実際の応用、そしてUE5の新機能LumenとNaniteの簡単紹介と実装原理、などの記事をまとめます。
まずはUE4ガベージコレクション、この記事の著者は南京周潤發で、今は杭州某ゲーム会社のクライアント開発を従事しています。2017年にゲーム開発業界に参入し、MMOやバトルロイヤルゲームの制作に参加。現在、UE4 のモバイル ゲーム開発に携わっており、技術的な学習が大好きで、UE4 と Lua の両方について研究しています。
著者の分析に従って、一緒にUE4ガベージコレクションの実装原理を深く分析しましょう。
この記事では主に UE4 のガベージ コレクション システムの実現原理を紹介しました。 UE4 は C++ でオブジェクト システムをカプセル化し、リフレクションを追加して C++ ベースのガベージ コレクションを実装します。そのため、開発者は、UObject を使用するときにメモリを手動で管理する必要はありません。効率と利便性を考慮しました、
UE4は「Mark Sweep」というGCアルゴリズムを採用していますが、記事ではまず「Mark Sweep」の基本原理を紹介します。 UE4 の GC アルゴリズムは、マーキングとスイープの 2 つの段階に分けることができます。
1) マーキングステージ
マーキングは、GC アルゴリズムの重要な部分です。 UE4 は「ルート セット」から開始し、参照関係に従ってメモリ内の到達可能なすべての UObject を検索します。検索を高速化するために、一方ではマルチスレッド テクノロジを使用して並列に検索し、他方では ReferenceTokenStream をリフレクションによって生成して、UObject 参照関係をトラバースする効率を向上させます。
2) スイープステージ
到達可能なすべての UObject はマーキング段階で収集され、残りの到達不能な UObject はガベージと見なされ、UE によって削除され、メモリが解放されます。ガベージの後に到達可能になることは不可能であるため、UE はフレームごとにそれらをクリーンアップして、ストールを回避できます。
この記事は中級コースであり、UE4 開発に関心のある読者に適しています。
関連コース:
「Unreal Insights 機能詳細解説」(中国語注意)
説明:
- 全文は約5,500ワード、読了時間は約40分です。
- コースのリリース時間: 2020 年 11 月 4 日。
適した読者:
- UE4開発に携わるプログラマー
- C++の知識があり、C++をベースにGCを実装したい開発者
- UE4 オブジェクト システムとリフレクションに関心のある読者
得られる知見
- UE4 GC 原理の分析
- 関連コードの詳細説明
- UE4の使用スキルとプログラミングスキル
目次:
理論的な記事の以外、以下のような実用的な記事もあります。
投稿者:落月満江樹
著者のホームページ: https://www.zhihu.com/people/luo-yue-man-jiang-shu-38
UE5に関する記事は以下のよう示します。
投稿者:洛城
現在 Tencent のゲーム R&D 効率部のエンジンミドルプラットフォーム部門で働いています。
著者のホームページ: https://www.zhihu.com/people/luo-cheng-11-75、
投稿者:Jiff
著者のホームページ: https://www.zhihu.com/people/jeff-wong-92
今まで公開されたUnreal Engineに関する記事は以上です。これからもより多く有益な記事を共有しますから、期待してください。
UWA公式サイト:https://jp.uwa4d.com
UWA公式ブログ:https://blog.jp.uwa4d.com
UWA公式Q&Aコミュニティ(中国語注意):https://answer.uwa4d.com
これも興味あるかも
-
原理から応用まで ゲームでの動的解像度
January 4, 2023 -
Unityゲームの使用メモリを最適化しよう
December 21, 2022 -
ASTC テクスチャ圧縮形式の紹介
December 14, 2022