Commit Graph

184 Commits (d3b623b5d32e8eba6c135ba62acfe049840040a4)

Author SHA1 Message Date
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
scrawl 7c9c0830a9 Fix errors due to BaseWhite material being removed 11 years ago
cc9cii 11ce093a9e Fix crashes caused when terrain materials don't get created (e.g. due to cg shader bug on Windows/D3D9). Should resolve Bug #1284. 11 years ago
slothlife f33559fead Fixes for MSVC warnings, less overall changes
Kept some fixes from the first round of review. Found out that several
targets weren't being built with the same basic warnings disabled.
Disabled a few warnings for external libraries specifically, rather than
applying them to all targets.
11 years ago
slothlife c160a04ede Revert "Fixes for warnings when building with MSVC"
This reverts commit 46eb20b98c.
11 years ago
slothlife 46eb20b98c Fixes for warnings when building with MSVC
Most warnings are innocuous (wrong type-specifier for forward
declarations, conversion of literals into unsigned integers, warnings
about methods optimized out), but I believe actual bugs were revealed in
vartypedelegate.cpp and combat.cpp.
11 years ago
scrawl 6f7fbc867f Fix several leaks 11 years ago
scrawl b0a1e1198a Yet another terrain fix 11 years ago
scrawl a9dcc90970 Another terrain fix 11 years ago
scrawl b8ca067730 Small fix for terrain 11 years ago
scrawl d0f98103e4 Terrain: re-added "distant land=off" path
Still a hack, but the overhead of building and traversing the quad tree appears negligible.
11 years ago
scrawl 1d926816b5 Terrain: background load blendmaps & layer textures. Refactor QuadTree update. 11 years ago
scrawl 4328e08162 Terrain: get rid of unneeded members 11 years ago
scrawl 6a002d19b3 Terrain: destroy no longer used materials 11 years ago
scrawl 97c3efb3ba Terrain: decoupled Chunk from QuadTreeNode. 11 years ago
scrawl edb5a54092 Include some more required Ogre headers explicitely. 11 years ago
scrawl 195071efc7 Terrain: geometry is now loaded in background threads.
TODO: background load layer textures and blendmaps.
"Distant land" setting has been removed for now (i.e. always enabled).
11 years ago
scrawl b3fed853ae Terrain: take cell world size into account for LOD selection 11 years ago
scrawl 6c863486e1 Terrain: fix an embarrassing copy&paste mistake. 11 years ago
scrawl 64c9932597 Terrain: remove hard dependency on shiny - can now be compiled without it (fixed function) 11 years ago
scrawl c9e349f60f Terrain: support alternate coordinate systems. Get rid of LoadingListener for now 11 years ago
scrawl 1fba5d1bb9 Terrain: change world bounds from AABB to 4 floats 11 years ago
scrawl 90f6cda4cc Moved includes to appropriate place 11 years ago
scrawl d4a755d1aa Fix some hardcoded literals 11 years ago
scrawl c6fb0f2d9b Removed terrain component's dependency on ESM 11 years ago
scrawl a1ac99463f Fix an uninitialized value 11 years ago
scrawl ce6aab89cf Fix a possible permutation issue 11 years ago
scrawl c64dc2c831 Terrain specular mapping: use a "_diffusespec" postfix to indicate specular information is present in the alpha channel. Use alpha directly instead of 1-alpha. 11 years ago
Lukasz Gromanowski 60fb75b03a Fixed valgrind warning about uninitialized variable:
==16814== Conditional jump or move depends on uninitialised value(s)
==16814==    at 0xA945B8: Terrain::QuadTreeNode::update(Ogre::Vector3 const&, Loading::Listener*) (quadtreenode.cpp:269)
==16814==    by 0xA94A77: Terrain::QuadTreeNode::update(Ogre::Vector3 const&, Loading::Listener*) (quadtreenode.cpp:354)
==16814==    by 0xA77541: Terrain::World::update(Ogre::Vector3 const&) (world.cpp:159)
==16814==    by 0x6EBA17: MWRender::RenderingManager::requestMap(MWWorld::CellStore*) (renderingmanager.cpp:649)
==16814==    by 0x8A25C4: MWWorld::Scene::loadCell(MWWorld::CellStore*, Loading::Listener*) (scene.cpp:157)
==16814==    by 0x8A2CEA: MWWorld::Scene::changeCell(int, int, ESM::Position const&, bool) (scene.cpp:296)
==16814==    by 0x8A2DE0: MWWorld::Scene::changeToExteriorCell(ESM::Position const&) (scene.cpp:440)
==16814==    by 0x85AC17: MWWorld::World::changeToExteriorCell(ESM::Position const&) (worldimp.cpp:761)
==16814==    by 0x927E38: OMW::Engine::prepareEngine(Settings::Manager&) (engine.cpp:436)
==16814==    by 0x92843D: OMW::Engine::go() (engine.cpp:483)
==16814==    by 0x6C6B3F: main (main.cpp:279)
==16814==  Uninitialised value was created by a heap allocation
==16814==    at 0x4C27CC2: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16814==    by 0xA93E60: Terrain::QuadTreeNode::createChild(Terrain::ChildDirection, float, Ogre::Vector2 const&) (quadtreenode.cpp:178)
==16814==    by 0xA7733E: Terrain::World::buildQuadTree(Terrain::QuadTreeNode*) (world.cpp:139)
==16814==    by 0xA76B18: Terrain::World::World(Loading::Listener*, Ogre::SceneManager*, Terrain::Storage*, int, bool, bool) (world.cpp:94)
==16814==    by 0x6EC6EB: MWRender::RenderingManager::enableTerrain(bool) (renderingmanager.cpp:1013)
==16814==    by 0x8A2A00: MWWorld::Scene::changeCell(int, int, ESM::Position const&, bool) (scene.cpp:206)
==16814==    by 0x8A2DE0: MWWorld::Scene::changeToExteriorCell(ESM::Position const&) (scene.cpp:440)
==16814==    by 0x85AC17: MWWorld::World::changeToExteriorCell(ESM::Position const&) (worldimp.cpp:761)
==16814==    by 0x927E38: OMW::Engine::prepareEngine(Settings::Manager&) (engine.cpp:436)
==16814==    by 0x92843D: OMW::Engine::go() (engine.cpp:483)
==16814==    by 0x6C6B3F: main (main.cpp:279)

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
11 years ago
scrawl 5fd98d7c3a Add an assertion 11 years ago
scrawl 18c002a21d Fix an awful typo. 11 years ago
scrawl 69c0bb1723 Add normal, specular & parallax mapping for terrain 11 years ago
scrawl 188df341c3 Replaced log2 to make VC happy 12 years ago
scrawl 839d251cc5 Renamed Terrain::Terrain to Terrain::World to make VC happy 12 years ago
scrawl d3d6dfbde8 Refactored loading screen
- Add loading progress for data files, global map, terrain
 - Refactored and improved cell loading progress
12 years ago
Nikolay Kasyanov dc6e15f38e Replaced std::pow with shift since clang doesn't like int as a first argument
(reports that call is ambiguous)
12 years ago
scrawl 5f7e6f7b10 Fix a material issue, layers per pass wasn't entirely correct 12 years ago
scrawl 43313437dc Fix composite map for cells without land data 12 years ago
scrawl ce5ea6d7d2 Use a proper node hierarchy; disconnect the root when entering interior 12 years ago
scrawl fa76d1631b Some terrain fixes 12 years ago
scrawl 8c8653160d Crash fix, material fix 12 years ago
scrawl b92da9ae93 Neighbour fix 12 years ago
scrawl ebf9debb80 Enabled terrain self shadows, implemented getHeightAt, some optimizations 12 years ago
scrawl e27437f8ed New terrain renderer - improvements:
- Consistent triangle alignment, fixes a noticable crack near the census and excise office. Note that alignment is still not the same as vanilla. Vanilla uses a weird diagonal pattern. I hope there aren't more trouble spots that will force us to replicate vanilla, but at least we can do that now.
 - Fixes several blending issues and cell border seams
 - Fix map render to use the terrain bounding box instead of an arbitrary height
 - Different LODs are now properly connected instead of using skirts
 - Support self shadowing
 - Normals and colors are stored in the vertices instead of a texture, this enables per-vertex lighting which should improve performance, fix compatibility issues due to the PS getting too large and mimic vanilla better
 - Support a fixed function fallback (though the splatting shader usually performs better)
 - Designed for distant land support - test: https://www.youtube.com/watch?v=2wnd9EuPJIY - we can't really enable this yet due to depth precision issues when using a large view distance
12 years ago
scrawl a41a23c90a Deleted old code 12 years ago
greye 1339787863 remove underscores from filenames in esm 12 years ago
guidoj a021165d9f Changed standard C lib includes to C++ format 13 years ago
Chris Robinson bd68f7bd33 Remove final direct uses of Mangle::Stream 13 years ago
Jan-Peter Nilsson 4dd76ff36e Remove no longer needed local .gitignore 14 years ago
Nicolay Korslund 255b0d03a9 Started early work on terrain code (no rendering yet.) 14 years ago