Commit Graph

199 Commits (520e65f82205480a6286d6c51129c0715ec13149)

Author SHA1 Message Date
scrawl c921620ef3 Compile the drawables of a composite map one by one to avoid frame drops for larger maps 8 years ago
scrawl 47ca8aeee5 Use the time elapsed instead of # compiled as limit 8 years ago
scrawl 8a6d909b22 Fix composite map being compiled twice 8 years ago
scrawl 683e625c6c Rewrite CompositeMapRenderer to be based on Drawable and share the FBO 8 years ago
scrawl 4baa795152 Add preloading implementation to QuadTreeWorld 8 years ago
scrawl 9db71e3f62 Recompute the LOD stitching when the view changes 8 years ago
scrawl ef704db877 Fix reset of changed flag 8 years ago
scrawl 1c15686353 Remove non required use of WorkQueue 8 years ago
scrawl 433900fca5 Fix waiting on initial quad tree build 8 years ago
scrawl 4dbd224249 Hide the terrain in non-exterior cells 8 years ago
scrawl 2580de11a4 Refactor ownership of ViewDataMap 8 years ago
scrawl 5a3c645c89 Enable lazy compiling of composite maps 8 years ago
scrawl 99e18f0d68 Clear the ViewData on exit 8 years ago
scrawl bb991850da Add LOD stitches 8 years ago
scrawl 6bd286d924 Fix unnecessary resizing in ViewData 8 years ago
scrawl 8c151364df Add special handling for CullVisitor to QuadTreeWorld.
- Cull only against bounding box, not bounding sphere, as this appears to perform better.
- Also traverse into non visible nodes to compute their LOD, this is to avoid nodes having to be loaded in when the player turns the view around, and will avoid unnecessary refs/unrefs of rendering data in the View. This should probably be turned off at some point for static cameras, such as the local maps.
8 years ago
scrawl f19a88be9d Reject QuadTreeNodes with invalid bounds 8 years ago
scrawl 7d004bf757 Preliminary rendering of QuadTreeWorld 8 years ago
scrawl e36bdb490e Add view data structure for efficient collection of LOD nodes to use for a given camera/intersection 8 years ago
scrawl 0efc54c749 Subdivide the composite maps 8 years ago
scrawl 819860081f Remove custom bounding box 8 years ago
scrawl ce8c4ad4f5 Add quad tree implementation (no rendering yet) 8 years ago
scrawl 14225a42c6 Remove unused pointer to IncrementalCompileOperation 8 years ago
scrawl c487df0abb Move updateTextureFiltering and material into the base class 8 years ago
scrawl 5eff286c71 Use separate node mask and parent for CompositeMapRenderer to allow the loading screen to pre compile composite maps. 8 years ago
scrawl 7e4450da55 Change the renderOrder of composite maps to ensure they are updated before water reflections or other cameras that may be using it. 8 years ago
scrawl b1d4bb5708 Add CompositeMapRenderer
Temporarily render all terrain using composite maps for testing purposes
8 years ago
scrawl e323b2fa7b Use the SceneManager's ShaderManager 8 years ago
scrawl 051c17a184 Make reportStats const 8 years ago
scrawl 16b5cadd9e Fix order of operations w.r.t clearing cache 8 years ago
scrawl 2c68ed4fb4 Remove no longer required use of UnrefQueue as the new resource manager will naturally clear the cache from the worker thread 8 years ago
scrawl 35d53acc65 Factor out terrain chunk loading/caching into a new resource manager 8 years ago
scrawl 274690f790 Refactor BufferCache to allow caching buffers of different sizes 8 years ago
scrawl 804f873649 terrain: factor out texture caching into a separate class 8 years ago
scrawl eef63a880a terrain: use a custom drawable for multi-pass render instead of osgFX::Effect
osgFX::Effect is awkward to use because of the lazy-definition of passes, no support for compileGLObjects, useless 'Technique' abstraction and having to define silly methods like 'effectAuthor()'

Handling the multi-pass rendering inside the Drawable also avoids redundant culling tests against the same bounding box for each pass.
8 years ago
scrawl 62cc091414 Fix incorrect setting of TexMat in terrain material 8 years ago
scrawl 8f79fa3d72 Add resource statistics panel opened with F4 8 years ago
scrawl c5f8ff6e0e Add names to several nodes for debugging purposes 8 years ago
Allofich 0f20312012 Fix MSVC warnings 8 years ago
scrawl 4322e76cb6 Fix shadowing warnings 8 years ago
scrawl 157c11398d Add terrain parallax mapping 9 years ago
scrawl 3f08cbff71 Share the state attributes for terrain techniques
Reduces the total amount of GL calls / frame by about 14% - 50% depending on the scene.
9 years ago
scrawl f898bf493f Don't use Geodes 9 years ago
scrawl 8f81df2bd3 Cleanup 9 years ago
scrawl 0db7163363 Add specular mapping for terrain 9 years ago
scrawl 6a0ac824bd Fix terrain error in OpenCS 9 years ago
scrawl 7071d286e8 Fix inverted check for 16-bit indices 9 years ago
scrawl ca0e1fe0e0 Set the osg::Material on the terrain root node 9 years ago
scrawl 6000e48bba Add terrain shaders and normal map support
Textures with _n filename suffix are automatically recognized as terrain normal maps.
9 years ago
scrawl e05d975020 Change the way that texture filtering settings are applied at runtime 9 years ago
scrawl 5824619a95 Clean up includes 9 years ago
scrawl 8b596dfcbe Remove support for OSG 3.2
Since commit e8662bea31, we're using OSG functionality that contains an unfixed crash bug in version 3.2. The bug is fixed in version 3.4 (OSG commit 6351e5020371b0b72b300088a5c6772f58379b84)
9 years ago
scrawl 5e876b1379 Add missing include 9 years ago
scrawl 98c5e072f2 Swap the terrain cache update order to make more sense 9 years ago
scrawl 0865cea211 Preload terrain 9 years ago
scrawl 8aba74e6ee Remove GridElement 9 years ago
scrawl d11c2864df Introduce UnrefQueue to handle the deleting of no longer needed objects in the background thread 9 years ago
scrawl c3ad4dad75 Fix applying of filter settings on terrain textures 9 years ago
scrawl 9e5225bb6f Do not unref a Texture's image data after applying it 9 years ago
scrawl 9e53e12c70 More renaming of TextureManager -> ImageManager 9 years ago
scrawl f99f403dda Rename TextureManager to ImageManager 9 years ago
scrawl 6ef848b7c5 Remove TextureManager::getTexture2D
Instead use getImage and let the caller create the Texture. Sharing of textures is then handled in post by the SharedStateManager.

This is closer to what the OSG serializer does.

Streamlines the TextureManager and will make it easier to multithread.
9 years ago
scrawl fbd4ad9b0c Flip terrain textures 9 years ago
scrawl 31988ca4cc Add a dont_override_filter description for textures that should be left alone 9 years ago
scrawl b06730ac61 Fix terrain textureCompileDummy 9 years ago
scrawl 62169a7039 Use a single-precision PositionAttitudeTransform in speed critical places 9 years ago
scrawl 52901ec10c Do not create terrain geodes when built with OSG 3.4 9 years ago
scrawl 72252d4f32 Terrain: restore IncrementalCompileOperation 9 years ago
scrawl 7ca8e45d5d Terrain: remove debug code 9 years ago
scrawl ef18f4217f Terrain: create 4x4 terrain chunks per ESM::Cell to improve performance
Improves performance because the number of splatting layers per chunk is reduced, and finer grained frustum culling can be done.
9 years ago
scrawl 95cf13e3f2 Terrain: make the blendmapSize and layerTileSize in FixedFunctionTechnique configurable 9 years ago
scrawl b3f5ac5dbb Include cleanup 10 years ago
scrawl 98571148b0 Remove custom license for terrain code
Now that it's no longer a stand-alone component, there's not much point in custom licensing it.
10 years ago
scrawl db16cdad02 Add a comment 10 years ago
scrawl 5921e70625 Build a kdtree for terrain geometry
Improves intersection testing performance, shaving off ~2ms of frame time in exteriors.

Also increases terrain loading time by ~1ms per cell, so will have to look into background loading soon.
10 years ago
scrawl e046119487 Fix for unnecessary terrain texture coordinate arrays 10 years ago
scrawl cd47dff196 Minor cleanup 10 years ago
scrawl b978153edb Enable VBO sharing for terrain geometry 10 years ago
scrawl 5666e02546 Fix for dark terrain in some cases 10 years ago
scrawl cdd0623009 Terrain rendering 10 years ago
scrawl e1f4a7f647 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/openmw/engine.cpp
	apps/openmw/mwgui/mainmenu.cpp
	apps/openmw/mwgui/windowmanagerimp.cpp
	apps/openmw/mwinput/inputmanagerimp.cpp
	apps/openmw/mwrender/animation.cpp
	apps/openmw/mwrender/debugging.cpp
	apps/openmw/mwrender/npcanimation.cpp
	apps/openmw/mwrender/renderingmanager.cpp
	apps/openmw/mwrender/sky.cpp
	components/nif/nifkey.hpp
	components/nif/nifstream.hpp
	components/nifbullet/bulletnifloader.cpp
	components/nifogre/ogrenifloader.hpp
	libs/openengine/bullet/physic.cpp
	libs/openengine/gui/manager.cpp
10 years ago
Marc Zinnschlag 83a7eea2a9 Merge remote-tracking branch 'scrawl/master' 10 years ago
Rohit Nirmal 997347b01e Silence -Wreorder warnings. 10 years ago
scrawl 20af2b67a8 Change the triangle pattern used for terrain (Fixes #2459) 10 years ago
scrawl af67de73a5 Delete shiny 10 years ago
dteviot e197f5318b fixing MSVC 2013 warning C4244: & C4305
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
10 years ago
dteviot 45b6538820 fixed MSVC 2013 warning C4800
forcing value to bool 'true' or 'false'
10 years ago
jacmoe ee574e08ef MIT License header added to all terrain component files. 10 years ago
scrawl f8b4ff3004 Documentation fix 10 years ago
scrawl 7b4665c623 Terrain: documentation update 10 years ago
scrawl 261da8dd0a Terrain: use 32-bit indices if necessary 10 years ago
scrawl f7bac58b39 Terrain: change index buffer flags to unsigned 10 years ago
scrawl ccab8b1a92 Fix bug in TerrainGrid::getWorldBoundingBox (Fixes #2075) 10 years ago
scrawl eda296f1e3 Remove workaround for Ogre 1.8 (no longer supported) 10 years ago
scrawl 7252cb63a6 Fix cppcheck issues 10 years ago
scrawl 8c26f802e6 Move terrain grid implementation to a component so the editor can use it (Feature #1597) 11 years ago
scrawl 2a510573b8 Remove unused implementation file 11 years ago
scrawl e25fa6c157 Refactor non-distant land terrain path to a grid based implementation (Fixes #1562) 11 years ago
slothlife 9ea22324f7 Fix some MSVC warnings.
Several fixes are warnings about truncations on 64-bit, while others are
complaints about mixed signed / unsigned integer operations.
11 years ago
scrawl c018319940 Addition to 7c9c0830a96: don't create useless BaseWhite clones 11 years ago