circle-loader
by
300/ 0

このブログでは、今まで公開された記事の中で、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 機能詳細解説」(中国語注意)

説明:

  1. 全文は約5,500ワード、読了時間は約40分です。
  2. コースのリリース時間: 2020 年 11 月 4 日。

適した読者:

  1. UE4開発に携わるプログラマー
  2. C++の知識があり、C++をベースにGCを実装したい開発者
  3. UE4 オブジェクト システムとリフレクションに関心のある読者

得られる知見

  1. UE4 GC 原理の分析
  2. 関連コードの詳細説明
  3. UE4の使用スキルとプログラミングスキル

目次:

UE4GCの概要

UE4GCのプロセス

スイープのプロセス


理論的な記事の以外、以下のような実用的な記事もあります。

UE4でどのように漣の効果を作るか

どうやってUE4で透明な氷を作るか

投稿者:落月満江樹

著者のホームページ: https://www.zhihu.com/people/luo-yue-man-jiang-shu-38


UE5に関する記事は以下のよう示します。

UE5レンダリングの紹介:Nanite編

投稿者:洛城

現在 Tencent のゲーム R&D 効率部のエンジンミドルプラットフォーム部門で働いています。

著者のホームページ: https://www.zhihu.com/people/luo-cheng-11-75、

 

UE5 Lumen実装分析

投稿者:Jiff

著者のホームページ: https://www.zhihu.com/people/jeff-wong-92


今まで公開されたUnreal Engineに関する記事は以上です。これからもより多く有益な記事を共有しますから、期待してください。

UWA公式サイト:https://jp.uwa4d.com

UWA公式ブログ:https://blog.jp.uwa4d.com

UWA公式QAコミュニティ(中国語注意)https://answer.uwa4d.com