13#pragma warning(disable:4263 4264)
16GX_SHADER_NAMESPACE_BEGIN()
37 static const GX_CSTR LIGHT_PROBE_TEXTURE_SUFFIX[
static_cast<u32
>(LIGHT_PROBE_TEXTURE::MAX)];
43 static const u32 SPHERICAL_HARMONICS_DIMENSION_MAX = 2;
45 static const u32 SPHERICAL_HARMONICS_DIMENSION_MAX = 3;
49 static const u32 SPHERICAL_HARMONICS_COUNT[SPHERICAL_HARMONICS_DIMENSION_MAX];
67 b32 initialize(
const GxClassBase* pInitialInformation =
nullptr)
override;
69 void terminate(
void)
override;
78 void update(
void)
override;
88 GX_FORCE_INLINE u32
getLightList(u32 lightTypeMask, u32 lightGroup,
GxUnitLightBase** ppLightList, u32 count)
override {
return Super::getLightList(lightTypeMask, lightGroup, ppLightList, count); }
94 void updateLightListCache(
void);
115 u32 getLightProbeCount(
void)
const;
117 constexpr f32
getLightProbePower(
void)
const {
return _enableGlobalIllumination ? _lightProbePower : 0.0f; }
134 void clearLightListCache(
void);
142 struct LightChacheParam
148 LightChacheParam* _pLightListCache;
149 u32 _lightListCacheCount;
150 u32 _lightListMaxCount;
152 b32 _enableGlobalIllumination;
153 GxRenderTexture* _pTextureLightProbe[
static_cast<u32
>(LIGHT_PROBE_TEXTURE::MAX)];
154 u32 _lightProbeResolution;
155 u32 _lightProbeResolutionDownScale;
156 u32 _sphericalHarmonicsDimension;
157 f32 _lightProbePower;
158 u32 _lightProbeBounce;
164GX_FORCE_INLINE
GxSysLight* getGxSysLight(
void){
return static_cast<GxSysLight*
>(getGxSysLightBase()); }
166GX_SHADER_NAMESPACE_END()
169#pragma warning(default:4263 4264)
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
RENDER_VIEW
描画優先度(ビュー)
Definition GxRender.h:442
@ POSITION
位置データ(VS入力,VS出力)
@ COLOR
4D パック済み 正規化される u8(GxColor形式)
オブジェクト基底クラス
Definition GxBase.h:88
static GX_FORCE_INLINE T getRoundUp(T value, u32 alignment)
数値切り上げ
Definition GxMath.h:513
static GX_FORCE_INLINE T getClamp(const T value, const T min, const T max)
最小値・最大値で切り落とす
Definition GxMath.h:170
static constexpr u32 VALUE_2
2
Definition GxMath.h:120
static constexpr u32 VALUE_1
1
Definition GxMath.h:119
static constexpr u32 VALUE_4K
4K
Definition GxMath.h:131
static constexpr u32 VALUE_64
64
Definition GxMath.h:125
テクスチャクラス
Definition GxRenderTexture.h:19
ライトシステムクラス
Definition GxSysLightBase.h:19
ライトシステムクラス
Definition GxSysLight.h:22
constexpr void setTextureProbe(LIGHT_PROBE_TEXTURE type, GxRenderTexture *pTexture)
ライトプローブテクスチャを設定
Definition GxSysLight.h:103
~GxSysLight(void) override
デストラクタ
Definition GxSysLight.h:65
constexpr GxRenderTexture * getTextureProbe(LIGHT_PROBE_TEXTURE type) const
ライトプローブテクスチャを取得
Definition GxSysLight.h:101
constexpr u32 getSphericalHarmonicsCount(void) const
球面調和関数の項数を取得
Definition GxSysLight.h:129
GX_FORCE_INLINE void setSphericalHarmonicsDimension(u32 dimension)
球面調和関数の次数を設定
Definition GxSysLight.h:127
constexpr u32 getLightProbeResolutionDownScale(void) const
ライトプローブテクスチャの解像度を取得
Definition GxSysLight.h:109
constexpr u32 getLightProbeBounce(void) const
ライトプローブの反射回数を取得
Definition GxSysLight.h:121
GX_FORCE_INLINE void setLightProbeResolution(u32 resolution)
ライトプローブテクスチャの解像度を設定
Definition GxSysLight.h:107
constexpr u32 getSphericalHarmonicsDimension(void) const
球面調和関数の次数を取得
Definition GxSysLight.h:125
constexpr u32 getLightProbeResolution(void) const
ライトプローブテクスチャの解像度を取得
Definition GxSysLight.h:105
GX_FORCE_INLINE u32 getLightList(u32 lightTypeMask, u32 lightGroup, GxUnitLightBase **ppLightList, u32 count) override
指定個数のライトを取得
Definition GxSysLight.h:88
constexpr f32 getLightProbePower(void) const
ライトプローブの強さを取得
Definition GxSysLight.h:117
GX_FORCE_INLINE u32 getSphericalHarmonicsTextureCount(void) const
球面調和関数のテクスチャ枚数を取得
Definition GxSysLight.h:131
LIGHT_PROBE_TEXTURE
ライトプローブテクスチャ定義
Definition GxSysLight.h:30
GX_FORCE_INLINE b32 isEnableGlobalIllumination(void) const
GIの有効判定
Definition GxSysLight.h:97
GX_FORCE_INLINE void setLightProbePower(f32 power)
ライトプローブの強さを設定
Definition GxSysLight.h:119
GX_FORCE_INLINE void setEnableGlobalIllumination(b32 enable)
GIの有効設定
Definition GxSysLight.h:99
GX_FORCE_INLINE void setLightProbeBounce(u32 bounce)
ライトプローブの反射回数を設定
Definition GxSysLight.h:123
GX_FORCE_INLINE void setLightProbeResolutionDownScale(u32 resolution)
ライトプローブテクスチャの解像度を設定
Definition GxSysLight.h:111
カメラ基礎クラス
Definition GxUnitCameraBase.h:20
ライト基礎クラス
Definition GxUnitLightBase.h:19
TYPE
ライトタイプ
Definition GxUnitLightBase.h:33
ポイントライトクラス
Definition GxUnitLight.h:197
ライトプローブクラス
Definition GxUnitLightProbe.h:18
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173