This commit is contained in:
aozhiwei 2020-08-17 20:31:56 +08:00
parent 999505efda
commit ee5edc4d5e
2 changed files with 14 additions and 0 deletions

View File

@ -68,8 +68,20 @@ void NavMeshBuilder::InitNavMeshParams(BuilderParams& builder_params, dtNavMeshP
rcVcopy(params.orig, builder_params.gemo->GetMeshBoundsMin()); rcVcopy(params.orig, builder_params.gemo->GetMeshBoundsMin());
params.tileWidth = builder_params.kTileSize * builder_params.kCellSize; params.tileWidth = builder_params.kTileSize * builder_params.kCellSize;
params.tileHeight = builder_params.kTileSize * builder_params.kCellSize; params.tileHeight = builder_params.kTileSize * builder_params.kCellSize;
#if 1
int tile_bits = rcMin((int)dtIlog2(
dtNextPow2(params.tileWidth*params.tileHeight*EXPECTED_LAYERS_PER_TILE)),
14);
if (tile_bits > 14) {
tile_bits = 14;
}
int poly_bits = 22 - tile_bits;
params.maxTiles = 1 << tile_bits;
params.maxPolys = 1 << poly_bits;
#else
params.maxTiles = builder_params.kMaxTiles; params.maxTiles = builder_params.kMaxTiles;
params.maxPolys = builder_params.kMaxPolysPerTile; params.maxPolys = builder_params.kMaxPolysPerTile;
#endif
} }
void NavMeshBuilder::BuildTiles(BuilderParams& builder_params) void NavMeshBuilder::BuildTiles(BuilderParams& builder_params)

View File

@ -269,8 +269,10 @@ struct BuilderParams
const float kDetailSampleDist = 6; const float kDetailSampleDist = 6;
const float kDetailSampleMaxError = 1; const float kDetailSampleMaxError = 1;
#if 0
const int kMaxTiles = 0; const int kMaxTiles = 0;
const int kMaxPolysPerTile = 0; const int kMaxPolysPerTile = 0;
#endif
const bool kFilterLowHangingObstacles = false; const bool kFilterLowHangingObstacles = false;
const bool kFilterLedgeSpans = false; const bool kFilterLedgeSpans = false;