This is the documentation for Enlighten.

6.6. 実装サンプル


基本的な Enlighten 間接ライティングの実装方法を説明するため、ゲーム エンジンなどの実際のアプリケーションをきわめて単純化した例を提供します。

典型的なゲーム エンジンは、ソース シーン データから、ゲーム ランタイムで使用されるランタイム シーン データを生成するビルドパイプラインを含んでいます。ビルド パイプラインは開発マシンで実行されるのに対し、ゲーム ラインタイムはターゲット ハードウェアで実行されます。

パイプラインとランタイムを明確に区別するため、実装サンプルは 2 つの部分、Sample Pipeline と Sample Runtime に分けられています。

サンプルの実行

Sample Pipeline と Sample Runtime アプリケーション用に事前にビルドされた実行ファイルは、Bin\Win64* にあります。完全なソース コードは、Src\Samples\Programs にあります。

以下の Sample Pipeline を使用して、ソース シーン データ MinimalExample.fbx からランタイム シーン データ MinimalExample.rss を生成します。

SamplePipeline.exe Resources\MinimalExample.fbx

SamplePipeline.exe Resources\MinimalExample.fbx

以下のサンプル ランタイムを使用して、ランタイム シーン データ MinimalExample.rss のロードと表示を行います。

SampleRuntime.exe build\Output\MinimalExample\MinimalExample.rss

ソースの確認

サンプル アプリケーションは、サンプル フレームワーク ライブラリ GeoBaseGeoCoreGeoAppGeoRender を使用して単純な Windows アプリケーションを実装します。

実装サンプルの一部は、サンプル フレームワーク ライブラリ GeoPipelineGeoRuntime に分けられており、他のサンプル アプリケーションとの共有が可能になっています。

この実装サンプルは、効率性や堅牢性よりも簡素であることを重視しており、本番環境レベルの実装を意図していません。

本番のコードでは、GeoPipelineGeoRuntime ライブラリの使用はお勧めしません。

以下の  (star)  で強調された項目は、エンジンにすでに存在している機能を示します。

エンジンに Enlighten を実装する際、ソース シーン データランタイム シーン データにはエンジンの既存のソリューションを使用することをお勧めします。

Sample Pipeline

このアプリケーションは、典型的なゲーム エンジンのビルド パイプラインを表します。この実装は、プリコンピュートを実行するために Pipeline ライブラリを使用します。

ソースコードは、以下に示すとおり構成されています。

Sample Runtime

このアプリケーションは、典型的なゲーム エンジンの最終ゲーム ランタイムを表します。実装では、高レベル ランタイムを使用してラジオシティ更新を実施します。

Main.cpp で Enlighten 間接ライティングを有効にするための部分は、#if ENLIGHTEN 条件付きブロックでラップされています。

Enlighten 間接ライティングなしで実装サンプルをビルドするには、Main.cpp で ENLIGHTEN が 0 になるよう定義します。

ソースコードは、以下に示すとおり構成されています。