12GX_CORE_NAMESPACE_BEGIN()
48 void resetCullingFlags(
void);
50 void frustumCulling(
void* pFrustum);
52 void forceSetCullingFlag(u32 value);
61 static void setCullingStepWidth(
const u32& value);
83 static b32 _testDrawBoundingBox;
177 struct GxCullingMeshParam;
179 class GxCullingOctant;
271 (_pGlobalMeshAriasList ==
nullptr || _pGlobalMeshAriasList->
getCount() == 0) ||
272 (_pGlobalInstanceAriasList ==
nullptr || _pGlobalInstanceAriasList->
getCount() == 0);}
283 b32 _isJudgePartsFlag;
284 GxHQeryParam* _pParameter[8];
285 GxArray* _pGlobalMeshAriasList;
286 GxArray* _pGlobalInstanceAriasList;
403 void clearMeshes(
void);
448GX_CORE_NAMESPACE_END()
ALLOCATOR_TYPE
アロケータ定義
Definition GxAllocator.h:355
配列クラス
Definition GxArray.h:18
constexpr u32 getCount(void) const
配列数を取得
Definition GxArray.h:132
オブジェクト基底クラス
Definition GxBase.h:88
カリングする際に、フラグと本体が別々なので、それにアクセスする為に使う
Definition GxOtFrustumCulling.h:91
u32 _state
カリング用ステータス変数
Definition GxOtFrustumCulling.h:144
void forceSetCullingFlag(u32 value)
強制カリング
Definition GxOtFrustumCulling.cpp:173
void frustumCulling(void *pFrustum)
カリング処理
Definition GxOtFrustumCulling.cpp:139
void resetCullingFlags(void)
カリングステータスの初期化
Definition GxOtFrustumCulling.cpp:129
static GX_FORCE_INLINE u32 getCullingStepWidth(void)
メッシュをグループ単位でカリングする場合のグループサイズを取得
Definition GxOtFrustumCulling.h:133
static void setCullingStepWidth(const u32 &value)
メッシュをグループ単位でカリングする場合のグループサイズを設定
Definition GxOtFrustumCulling.cpp:117
GxCullingInstanceAlias(void)
デフォルトコンストラクタ
Definition GxOtFrustumCulling.h:107
u32 _beginIndex
オブジェく内部でのメッシュのインデックス
Definition GxOtFrustumCulling.h:145
GxUnitModelBase * _pModel
メッシュが所属するオブジェクトへのポインタ
Definition GxOtFrustumCulling.h:143
GxShapeSphere _worldSphere
ワールド座標でのバウンディングボックス
Definition GxOtFrustumCulling.h:148
u8 *** _pppCullingFlag8
オブジェく内部でのメッシュのカリングフラグ
Definition GxOtFrustumCulling.h:149
b32 _doneCulling
カリング終了フラグ
Definition GxOtFrustumCulling.h:150
~GxCullingInstanceAlias(void) override
デストラクタ
Definition GxOtFrustumCulling.h:109
u32 _endIndex
オブジェく内部でのメッシュのインデックス
Definition GxOtFrustumCulling.h:146
GxMatrixAffine * _pInstanceMatrix
マトリクス
Definition GxOtFrustumCulling.h:142
static u32 _stepWidth
ステップ幅
Definition GxOtFrustumCulling.h:141
カリングする際に、フラグと本体が別々なので、それにアクセスする為に使う
Definition GxOtFrustumCulling.h:21
u32 _state
カリング用ステータス変数
Definition GxOtFrustumCulling.h:74
GxResModel::GxMesh * _pBeginMesh
先頭メッシュへのポインタ
Definition GxOtFrustumCulling.h:72
u32 _endIndex
オブジェクト内部でのメッシュのインデックス
Definition GxOtFrustumCulling.h:76
GxCullingMeshGroupAlias(void)
デフォルトコンストラクタ
Definition GxOtFrustumCulling.h:37
static GX_FORCE_INLINE u32 getCullingStepWidth(void)
メッシュをグループ単位でカリングする場合のグループサイズを取得
Definition GxOtFrustumCulling.h:63
b32 _doneCulling
カリング終了フラグ
Definition GxOtFrustumCulling.h:78
GxUnitModelBase * _pModel
メッシュが所属するオブジェクトへのポインタ
Definition GxOtFrustumCulling.h:73
static u32 _stepWidth
メッシュをグループ単位でカリングする場合のグループサイズ
Definition GxOtFrustumCulling.h:71
u8 *** _pppCullingFlagU8
オブジェクト内部でのメッシュのカリングフラグ
Definition GxOtFrustumCulling.h:77
~GxCullingMeshGroupAlias(void) override
デストラクタ
Definition GxOtFrustumCulling.h:39
u32 _beginIndex
オブジェクト内部でのメッシュのインデックス
Definition GxOtFrustumCulling.h:75
GxShapeBox _worldBoundingBox
ワールド座標でのバウンディングボックス
Definition GxOtFrustumCulling.h:80
8分木ノードクラス
Definition GxOctree.h:265
constexpr GxArray * getObjectList(void) const
Definition GxOctree.h:328
8分木クラス
Definition GxOctree.h:39
GxArray * _pGlobalObjectList
インスタンスグローバルリスト
Definition GxOctree.h:236
カリング用オクツリーのオクタント
Definition GxOtFrustumCulling.h:366
GxArray * _pMeshList
メッシュリスト
Definition GxOtFrustumCulling.h:442
b32 addInstance(GxCullingInstanceAlias *pObject)
インスタンスオブジェクトを追加
Definition GxOtFrustumCulling.cpp:1213
~GxCullingOctant(void) override
デストラクタ
Definition GxOtFrustumCulling.cpp:1176
b32 deleteInstance(GxMatrixAffine *pMatrix)
インスタンスオブジェクトの削除
Definition GxOtFrustumCulling.cpp:1235
GX_FORCE_INLINE b32 isEmpty(void) const override
ノードにオブジェクトが含まれているか
Definition GxOtFrustumCulling.h:427
GxArray * _pInstanceList
インスタンスリスト
Definition GxOtFrustumCulling.h:443
void clearInstances(void)
全ての登録オブジェクトの削除
Definition GxOtFrustumCulling.cpp:1267
b32 addMesh(GxCullingMeshGroupAlias *pObject)
メッシュ・オブジェクトを追加
Definition GxOtFrustumCulling.cpp:1323
constexpr GxArray * getMeshList(void) const
Definition GxOtFrustumCulling.h:431
b32 findMesh(GxResModel::GxMesh *pMesh, u32 beginIndex, u32 endIndex) const
メッシュ・オブジェクトを検索
Definition GxOtFrustumCulling.cpp:1298
void resetCullingFlags(void)
カリングのフラグをリセットする
Definition GxOtFrustumCulling.cpp:1402
constexpr GxArray * getInstanceList(void) const
Definition GxOtFrustumCulling.h:435
GxCullingOctant(void)
デフォルトコンストラクタ
Definition GxOtFrustumCulling.cpp:1164
b32 findInstance(GxMatrixAffine *pMatrix) const
インスタンスオブジェクトを検索
Definition GxOtFrustumCulling.cpp:1191
b32 deleteMesh(GxResModel::GxMesh *pMesh)
メッシュ・オブジェクトの削除
Definition GxOtFrustumCulling.cpp:1344
カリング用オクツリー、階層的カリングを行う
Definition GxOtFrustumCulling.h:159
GX_FORCE_INLINE b32 isJudgePartsFlagState(void) const
パーツフラグがOFFのメッシュならツリーに追加しないかどうかを判定
Definition GxOtFrustumCulling.h:265
constexpr GxArray * getGlobalMeshList(void) const
グローバルなメッシュリストを取得
Definition GxOtFrustumCulling.h:261
constexpr GxArray * getGlobalInstanceList(void) const
グローバルなインスタンスリストを取得
Definition GxOtFrustumCulling.h:263
OCTANT
オクタントステータス
Definition GxOtFrustumCulling.h:167
@ OCTANT_CROSS
フラスタムの境界をまたいでいる
Definition GxOtFrustumCulling.h:169
@ OCTANT_OUTSIDE
フラスタムの外
Definition GxOtFrustumCulling.h:170
@ OCTANT_INSIDE
フラスタムの内側
Definition GxOtFrustumCulling.h:168
@ OCTANT_INIT
初期値
Definition GxOtFrustumCulling.h:173
@ OCTANT_IGNORE
無視
Definition GxOtFrustumCulling.h:172
@ OCTANT_FORCED
強制カリングされた
Definition GxOtFrustumCulling.h:171
void hierarchicalQueryForFrustum(GxArray &arvSpaces, b32 **ppState, const GxShapeFrustum &frustum)
フラスタムを使って、階層的にクエリを行う
Definition GxOtFrustumCulling.cpp:948
void eraseAllMeshes(void)
全てのオブジェクトを取り除く
Definition GxOtFrustumCulling.cpp:612
void assembleHitNodeArray(GxArray &arvSpaces, b32 **ppState)
階層カリングで交差判定が出たノードを取得
Definition GxOtFrustumCulling.cpp:905
GX_FORCE_INLINE void setJudgePartsFlagState(const b32 &value)
パーツフラグがOFFのメッシュならツリーに追加しないかどうかを設定
Definition GxOtFrustumCulling.h:267
b32 eraseInstance(GxMatrixAffine *pMatrix, u32 beginIndex, u32 endIndex, const GxVector3 &min, const GxVector3 &max)
オブジェクトをオクツリーから削除
Definition GxOtFrustumCulling.cpp:414
void cullingInstanceGroup(void *pArgument)
グループ単位でカリング処理(又はフラグ更新処理)
Definition GxOtFrustumCulling.cpp:1062
void cullingUnitGroup(void *pArgument)
グループ単位でカリング処理(又はフラグ更新処理)
Definition GxOtFrustumCulling.cpp:1092
b32 windowQueryForBB(GxArray &arvSpaces, const GxVector3 &min, const GxVector3 &max) override
ウインドウクエリを行う(階層カリング用)
Definition GxOtFrustumCulling.cpp:732
b32 addMesh(const GxResModel::GxMesh *pMesh, const GxUnitModelBase *pUnit, u32 beginIndex, u32 endIndex, u8 ***pppCullingFlag, const GxVector3 &min, const GxVector3 &max)
オブジェクトをオクツリーに追加
Definition GxOtFrustumCulling.cpp:506
b32 addInstance(const GxMatrixAffine *pMatrix, const GxUnitModelBase *pUnit, u32 beginIndex, u32 endIndex, u8 ***pppCullingFlag, const GxVector3 &min, const GxVector3 &max)
オブジェクトをオクツリーに追加
Definition GxOtFrustumCulling.cpp:366
b32 eraseMesh(const GxResModel::GxMesh *pMesh, u32 beginIndex, u32 endIndex, const GxVector3 &min, const GxVector3 &max)
オブジェクトをオクツリーから削除
Definition GxOtFrustumCulling.cpp:565
GX_FORCE_INLINE b32 isEmpty(void) const override
Definition GxOtFrustumCulling.h:270
void hierarchicalQueryForFrustumCB(void *pArgument)
フラスタムを使って階層的にクエリを行う
Definition GxOtFrustumCulling.cpp:645
void eraseAllInstances(void)
全てのオブジェクトを削除
Definition GxOtFrustumCulling.cpp:463
GxOtFrustumCulling(void)
デフォルトコンストラクタ
Definition GxOtFrustumCulling.cpp:200
GxOctree::GxNode * allocateNode(void) override
GxNodeのメモリ確保
Definition GxOtFrustumCulling.cpp:350
GxCullingInstanceAlias * findInstance(const GxMatrixAffine *pMatrix, u32 index)
インスタンスが既に登録済みか検索
Definition GxOtFrustumCulling.cpp:286
~GxOtFrustumCulling(void) override
デストラクタ
Definition GxOtFrustumCulling.cpp:235
void resetCullingFlags(void)
全てのオブジェクトのカリングフラグをリセット
Definition GxOtFrustumCulling.cpp:303
void eraseTree(void) override
ツリーの削除
Definition GxOtFrustumCulling.cpp:251
void cullingMeshGroup(void *pArgument)
グループ単位でカリング処理(又はフラグ更新処理)
Definition GxOtFrustumCulling.cpp:1021
GxCullingMeshGroupAlias * findMesh(const GxResModel::GxMesh *pMesh) const
メッシュが既に登録済みか検索
Definition GxOtFrustumCulling.cpp:263
箱形状クラス
Definition GxShape.h:333
角錐台
Definition GxShape.h:531
球形状クラス
Definition GxShape.h:240
モデル基礎クラス
Definition GxUnitModelBase.h:19
アフィン変換行列(行優先)
Definition GxMatrix.h:330
ジョブを投げる際に使うスレッド関数用のパラメータ
Definition GxOtFrustumCulling.h:295
GxShapeFrustum _frustum
フラスタム形状
Definition GxOtFrustumCulling.h:320
u32 _endIndex
終了インデックス
Definition GxOtFrustumCulling.h:319
GxCullingMeshParam(void)
デフォルトコンストラクタ
Definition GxOtFrustumCulling.h:310
u32 _startIndex
開始インデックス
Definition GxOtFrustumCulling.h:318
階層クエリの為のパラメータ
Definition GxOtFrustumCulling.h:329
GxShapeFrustum _frustum
フラスタム形状
Definition GxOtFrustumCulling.h:355
u32 _aunParentSpace
親の空間
Definition GxOtFrustumCulling.h:357
virtual ~GxHQeryParam(void)
デストラクタ
Definition GxOtFrustumCulling.cpp:1148
u32 _aunParentLevelN
親の低のレベル
Definition GxOtFrustumCulling.h:356
s32 * _pQueryArray
クエリ配列
Definition GxOtFrustumCulling.h:354
GxHQeryParam(void)
デフォルトコンストラクタ
Definition GxOtFrustumCulling.cpp:1141
モデルリソースメッシュ構造体
Definition GxResModel.h:122
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173