From ee5edc4d5e55d7f27f9c5bc844bd916fb1a99b07 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 17 Aug 2020 20:31:56 +0800 Subject: [PATCH] 1 --- server/gameserver/navmeshbuilder.cc | 12 ++++++++++++ server/gameserver/navmeshhelper.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/server/gameserver/navmeshbuilder.cc b/server/gameserver/navmeshbuilder.cc index 9b4f5a3..7572ef3 100644 --- a/server/gameserver/navmeshbuilder.cc +++ b/server/gameserver/navmeshbuilder.cc @@ -68,8 +68,20 @@ void NavMeshBuilder::InitNavMeshParams(BuilderParams& builder_params, dtNavMeshP rcVcopy(params.orig, builder_params.gemo->GetMeshBoundsMin()); params.tileWidth = 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.maxPolys = builder_params.kMaxPolysPerTile; + #endif } void NavMeshBuilder::BuildTiles(BuilderParams& builder_params) diff --git a/server/gameserver/navmeshhelper.h b/server/gameserver/navmeshhelper.h index f99cb14..6dd6a4b 100644 --- a/server/gameserver/navmeshhelper.h +++ b/server/gameserver/navmeshhelper.h @@ -269,8 +269,10 @@ struct BuilderParams const float kDetailSampleDist = 6; const float kDetailSampleMaxError = 1; + #if 0 const int kMaxTiles = 0; const int kMaxPolysPerTile = 0; + #endif const bool kFilterLowHangingObstacles = false; const bool kFilterLedgeSpans = false;