OROCHI
 
Loading...
Searching...
No Matches
GxSysLight Class Reference

ライトシステムクラス More...

#include <GxSysLight.h>

Inheritance diagram for GxSysLight:
Collaboration diagram for GxSysLight:

Public Member Functions

初期化
 GxSysLight (void)
 デフォルトコンストラクタ
 
 ~GxSysLight (void) override
 デストラクタ
 
b32 initialize (const GxClassBase *pInitialInformation=nullptr) override
 初期化
 
void terminate (void) override
 終了処理
 
操作
void update (void) override
 更新
 
- Public Member Functions inherited from GxSysLightBase
 GxSysLightBase (void)
 コンストラクタ
 
 ~GxSysLightBase (void) override
 デストラクタ
 
void update (void) override
 更新
 
void registerLight (GxUnitLightBase *pLight)
 ライトを登録
 
- Public Member Functions inherited from GxSysBase
template<typename T >
T * getModule (void) const
 モジュールを取得
 
 GxSysBase (void)
 デフォルトコンストラクタ
 
 ~GxSysBase (void) override
 デストラクタ
 
b32 isLocked (void)
 クリティカルセクションのロック状態を確認する
 
void sleep (f32 time)
 スリープ(スクリプト用)
 
- Public Member Functions inherited from GxClassBase
constexpr GxClassBase (void)
 コンストラクタ
 
constexpr GxClassBase (const GxClassBase &base)
 コピーコンストラクタ
 
 ~GxClassBase (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 
- Public Member Functions inherited from SingletonBase< GxSysLightBase >
 SingletonBase (void)
 コンストラクタ
 
 ~SingletonBase (void)
 デストラクタ
 

定義

enum class  LIGHT_PROBE_TEXTURE { COLOR , NORMAL , POSITION , MAX }
 ライトプローブテクスチャ定義 More...
 
static const GX_CSTR LIGHT_PROBE_TEXTURE_SUFFIX [static_cast< u32 >(LIGHT_PROBE_TEXTURE::MAX)]
 ライトプローブテクスチャのファイル名サフィックス
 
static const u32 LIGHT_PROBE_TEXTURE_RESOLUTION_MAX = GxMath::VALUE_4K
 ライトプローブテクスチャの解像度制限
 
static const u32 SPHERICAL_HARMONICS_DIMENSION_MAX = 3
 球面調和関数の最大次数
 

アクセサ

GX_FORCE_INLINE u32 getLightList (u32 lightTypeMask, u32 lightGroup, GxUnitLightBase **ppLightList, u32 count) override
 指定個数のライトを取得
 
virtual u32 getLightList (u32 lightTypeMask, u32 lightGroup, const GxVector3 &nearestTo, const GxUnitCameraBase *pCamera, b32 onlyShadowEnable, GxUnitLightBase **ppLightList, u32 count, RENDER_VIEW view)
 指定個数のライトを取得
 
virtual u32 getPointLightList (u32 lightGroup, const GxVector3 &nearestTo, const GxUnitCameraBase *pCamera, b32 onlyShadowEnable, GxUnitLightPoint **ppPointLightList, u32 count, RENDER_VIEW view)
 指定個数のポイントライトを取得
 
void updateLightListCache (void)
 ライトリストのキャッシュを更新
 
GX_FORCE_INLINE b32 isEnableGlobalIllumination (void) const
 GIの有効判定
 
GX_FORCE_INLINE void setEnableGlobalIllumination (b32 enable)
 GIの有効設定
 
constexpr GxRenderTexturegetTextureProbe (LIGHT_PROBE_TEXTURE type) const
 ライトプローブテクスチャを取得
 
constexpr void setTextureProbe (LIGHT_PROBE_TEXTURE type, GxRenderTexture *pTexture)
 ライトプローブテクスチャを設定
 
constexpr u32 getLightProbeResolution (void) const
 ライトプローブテクスチャの解像度を取得
 
GX_FORCE_INLINE void setLightProbeResolution (u32 resolution)
 ライトプローブテクスチャの解像度を設定
 
constexpr u32 getLightProbeResolutionDownScale (void) const
 ライトプローブテクスチャの解像度を取得
 
GX_FORCE_INLINE void setLightProbeResolutionDownScale (u32 resolution)
 ライトプローブテクスチャの解像度を設定
 
GxUnitLightProbegetLightProbeUnit (const GxVector3 &position) const
 ライトプローブユニットを取得
 
u32 getLightProbeCount (void) const
 ライトプローブの個数を取得
 
constexpr f32 getLightProbePower (void) const
 ライトプローブの強さを取得
 
GX_FORCE_INLINE void setLightProbePower (f32 power)
 ライトプローブの強さを設定
 
constexpr u32 getLightProbeBounce (void) const
 ライトプローブの反射回数を取得
 
GX_FORCE_INLINE void setLightProbeBounce (u32 bounce)
 ライトプローブの反射回数を設定
 
constexpr u32 getSphericalHarmonicsDimension (void) const
 球面調和関数の次数を取得
 
GX_FORCE_INLINE void setSphericalHarmonicsDimension (u32 dimension)
 球面調和関数の次数を設定
 
constexpr u32 getSphericalHarmonicsCount (void) const
 球面調和関数の項数を取得
 
GX_FORCE_INLINE u32 getSphericalHarmonicsTextureCount (void) const
 球面調和関数のテクスチャ枚数を取得
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Member Functions inherited from SingletonBase< GxSysLightBase >
static GX_FORCE_INLINE GxSysLightBasegetSingleton (void)
 参照を取得
 
static constexpr GxSysLightBasegetSingletonPointer (void)
 ポインタを取得
 
- Protected Types inherited from GxSysBase
enum class  LOCK_TYPE { SEQUENTIAL_THREAD_SAFE , THREAD_SAFE }
 ロックタイプ More...
 
- Protected Member Functions inherited from GxSysLightBase
GX_FORCE_INLINE GxListClassBasegetList (void)
 ライトリストを取得
 
- Protected Member Functions inherited from GxSysBase
void terminateGxModules (void)
 GXモジュールの終了処理
 
void lock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
 クリティカルセクションに入る
 
void unlock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
 クリティカルセクションを出る
 
template<typename T >
T * addModule (void)
 モジュールを作成
 
template<typename T >
void removeModule (void)
 モジュールを削除
 

Detailed Description

ライトシステムクラス

Member Enumeration Documentation

◆ LIGHT_PROBE_TEXTURE

ライトプローブテクスチャ定義

Enumerator
COLOR 

NORMAL 

法線

POSITION 

座標

MAX 

定義数

Member Function Documentation

◆ getLightList() [1/2]

u32 GxSysLight::getLightList ( u32 lightTypeMask,
u32 lightGroup,
const GxVector3 & nearestTo,
const GxUnitCameraBase * pCamera,
b32 onlyShadowEnable,
GxUnitLightBase ** ppLightList,
u32 count,
RENDER_VIEW view )
virtual

指定個数のライトを取得

Parameters
lightTypeMask[in] ライトタイプのビットマスク
lightGroup[in] ライトグループ
nearestTo[in] この座標に近いライトから順にリストに入れられる
pCamera[in] 視推台カリングを行うカメラ(nullptrも可)
onlyShadowEnable[in] trueなら影付きのライトだけを取得
ppLightList[in,out] ライトのポインタ配列(count 分の GxUnitLightPoint* の配列)
count[in] ライト数
view[in] ビュー
Returns
リストに登録されたライト数
Here is the call graph for this function:

◆ getLightList() [2/2]

GX_FORCE_INLINE u32 GxSysLight::getLightList ( u32 lightTypeMask,
u32 lightGroup,
GxUnitLightBase ** ppLightList,
u32 count )
inlineoverridevirtual

指定個数のライトを取得

Reimplemented from GxSysLightBase.

Here is the caller graph for this function:

◆ getLightProbeCount()

u32 GxSysLight::getLightProbeCount ( void ) const

ライトプローブの個数を取得

Returns
個数
Here is the call graph for this function:

◆ getLightProbeUnit()

GxUnitLightProbe * GxSysLight::getLightProbeUnit ( const GxVector3 & position) const

ライトプローブユニットを取得

Parameters
position[in] ターゲット座標
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPointLightList()

u32 GxSysLight::getPointLightList ( u32 lightGroup,
const GxVector3 & nearestTo,
const GxUnitCameraBase * pCamera,
b32 onlyShadowEnable,
GxUnitLightPoint ** ppPointLightList,
u32 count,
RENDER_VIEW view )
virtual

指定個数のポイントライトを取得

Parameters
lightGroup[in] ライトグループ
nearestTo[in] この座標に近いライトから順にリストに入れられる
pCamera[in] 視推台カリングを行うカメラ(nullptrも可)
onlyShadowEnable[in] trueなら影付きのライトだけを取得
ppPointLightList[in,out] ライトのポインタ配列(count 分の GxUnitLightPoint* の配列)
count[in] ライト数
view[in] ビュー
Returns
リストに登録されたライト数
Here is the call graph for this function:

◆ initialize()

b32 GxSysLight::initialize ( const GxClassBase * pInitialInformation = nullptr)
overridevirtual

初期化

Parameters
pInitialInformation[in] 初期化情報
Returns
成功ならtrue

Reimplemented from GxSysBase.

◆ terminate()

void GxSysLight::terminate ( void )
overridevirtual

終了処理

Reimplemented from GxSysBase.

◆ update()

void GxSysLight::update ( void )
overridevirtual

更新

Reimplemented from GxSysBase.

Here is the call graph for this function:

Member Data Documentation

◆ LIGHT_PROBE_TEXTURE_SUFFIX

const GX_CSTR GxSysLight::LIGHT_PROBE_TEXTURE_SUFFIX
static
Initial value:
= {
"_color", "_normal", "_position"
}

ライトプローブテクスチャのファイル名サフィックス


The documentation for this class was generated from the following files: