mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-04-28 21:07:59 +03:00
adding worldspace info to terrain data structures
Rendering manager can have multiple terrain, one for each queried worldspace Terrain::World has a worldspace member storage functions require a worldspace parameter.
This commit is contained in:
parent
93e7b0d946
commit
1b718f09c5
17 changed files with 185 additions and 125 deletions
|
@ -20,8 +20,9 @@ namespace Terrain
|
|||
{
|
||||
|
||||
ChunkManager::ChunkManager(Storage* storage, Resource::SceneManager* sceneMgr, TextureManager* textureManager,
|
||||
CompositeMapRenderer* renderer)
|
||||
CompositeMapRenderer* renderer, ESM::RefId worldspace)
|
||||
: GenericResourceManager<ChunkId>(nullptr)
|
||||
, QuadTreeWorld::ChunkManager(worldspace)
|
||||
, mStorage(storage)
|
||||
, mSceneManager(sceneMgr)
|
||||
, mTextureManager(textureManager)
|
||||
|
@ -153,7 +154,7 @@ namespace Terrain
|
|||
{
|
||||
std::vector<LayerInfo> layerList;
|
||||
std::vector<osg::ref_ptr<osg::Image>> blendmaps;
|
||||
mStorage->getBlendmaps(chunkSize, chunkCenter, blendmaps, layerList);
|
||||
mStorage->getBlendmaps(chunkSize, chunkCenter, blendmaps, layerList, mWorldspace);
|
||||
|
||||
bool useShaders = mSceneManager->getForceShaders();
|
||||
if (!mSceneManager->getClampLighting())
|
||||
|
@ -212,7 +213,7 @@ namespace Terrain
|
|||
osg::ref_ptr<osg::Vec4ubArray> colors(new osg::Vec4ubArray);
|
||||
colors->setNormalize(true);
|
||||
|
||||
mStorage->fillVertexBuffers(lod, chunkSize, chunkCenter, positions, normals, colors);
|
||||
mStorage->fillVertexBuffers(lod, chunkSize, chunkCenter, mWorldspace, positions, normals, colors);
|
||||
|
||||
osg::ref_ptr<osg::VertexBufferObject> vbo(new osg::VertexBufferObject);
|
||||
positions->setVertexBufferObject(vbo);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue