Comments (2)
Actually, I did that so my open world engine would stream a huge parts of world.
DetourNavMesh.cpp :
255 - m_saltBits = dtMin((unsigned int)31, 32 - m_tileBits - m_polyBits);
255 + m_saltBits = dtMin((unsigned int)sizeof( dtPolyRef )*8 - 1, sizeof( dtPolyRef ) * 8 - m_tileBits - m_polyBits);
DetourNavMesh.h
30 -typedef unsigned int dtPolyRef;
30 +typedef unsigned long long dtPolyRef;
34 -typedef unsigned int dtTileRef;
34 +typedef unsigned long long dtTileRef;
It doesnt change the m_tileBits m_polyBits politicy, bu adds 64bit poly refID. It dynamicly scales salt Bits also. Thanks to that in my project I can use like ~30k tile meshes each one with a couple of K polys.
But it brokes the saving to data and readig from buffor ready tiles ( in case You saves ready tile meshes somewhere - not compatable with 32bit poly ref ID ).
from recastnavigation.
Added a #define support for compiling Detour with 64bit dtPolyRefs, check the latest version. Let me know if you ran into any problems with it.
With the change, the bits used for tiles, polygons, and salt are fixed (as there are so many bits to spare), you don't need to specify max polygons when you init the navmesh, but you'll need to define max tiles at it is also used for allocating the tile stubs.
As noted, you will need to rebuild all your tiles when you change to 64bit indices as some of the fields in the tile data use polyrefs. Yes, I do regret this choice :)
--mikko
from recastnavigation.
Related Issues (20)
- Inconsistent naming of HeightField and Heightfield across the codebase
- Typedef integer flag types as appropriate
- Why use dtMathFloorf to calculate tx1/ty1 (max_x/max_y) but not dtMathCeilf in dtTileCache::queryTiles HOT 1
- Bug when culling out off-mesh start locations?
- Infinite loop in triangulateHull when detailSampleDist == 0
- Small optimizations for CalculateDistanceField() in RecastRegion.cpp HOT 1
- Nullptr dereference leading to a crash in closestPointOnDetailEdges<true> HOT 2
- TempObstacles problem on stair HOT 1
- Can I add Android, IOS, and Linux libraries?
- The "min region size" does not take effect when constructing the navmesh using the TempObstacles mode. HOT 2
- Triangles looks strange. HOT 2
- [Detour] Incorrect layout of tile links in DT_POLYREF64 mode HOT 3
- cannot load new geometry file in RecastDemo HOT 1
- rcFilterLowHangingWalkableObstacles Study HOT 2
- Add revision to the generated navmesh HOT 1
- maxTiles value in the navmesh initialization parameters HOT 1
- dividePoly crashes on the attempt to add 8th point HOT 2
- Bug while loading vertices/indices HOT 4
- [Github Action] Segmentation fault, process completed with exit code 139 HOT 2
- Unable to Export Off-Mesh Links in recastdemo Temp Obstacles HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from recastnavigation.