マルチスレッド
概要
Effekseerはカリング機能を搭載しています。画面外に存在しているエフェクトを描画しないようにできます。なお、この機能を使用する場合、エフェクトにカリングの設定がされている必要があります。カリングが設定されていないエフェクトは常に描画されます。
フリップ
サンプルは「RuntimeSample/Culling.sln」です。
「::Effekseer::Manager::CreateCullingWorld」でカリングを有効にします。この関数は高速でカリングを実行できる範囲を指定します。layerCountが大きいほどカリングが早くなりますがメモリも消費します。最大でも6程度です。
「Effekseer::Manager::CalcCulling」をエフェクトを描画する前に実行することで視界に存在するエフェクトのみが描画されるようになります。引数にはカメラプロジェクション行列とOpenGLの環境で実行しているかを指定します。
// カリングを行う範囲を設定
g_manager->CreateCullingWorld( 1000.0f, 1000.0f, 1000.0f, 5);
// エフェクト生成等
// 描画
// カリングの計算
g_manager->CalcCulling( g_renderer->GetCameraProjectionMatrix(), false );