Commit Graph

101 Commits

Author SHA1 Message Date
Bo Svensson 3f731cd102
attempts to fix spellcasting freezes (#3146)
Firstly, this PR reintroduces commit "Recreate a special case for IntersectionVisitor on QuadTreeWorld" we forgot to reapply while reverting a revert commit. Secondly, in cases we still need to build a view for an intersection visitor, we now use the available `osgUtil::IntersectionVisitor::getReferenceEyePoint` instead of falling back to the origin position that was previously causing long rebuild times.
2021-10-04 22:00:31 +02:00
Bret Curtis b7c1d9edb0 remove unnecessary includes 2021-09-29 17:13:40 +02:00
Bo Svensson d8707a763f
fixes build (#3134)
* quadtreeworld.cpp

* renderingmanager.cpp [ci skip]

* quadtreeworld.hpp

* cellborder.hpp

* cellborder.cpp
2021-09-29 17:10:58 +02:00
Bret Curtis 803195a05f add back some explicit includes 2021-09-29 16:29:10 +02:00
Bo Svensson 01cc61087b
improves paging preloader (#3126)
* Return check for distance when we try to reuse data

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* cellpreloader.cpp

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* [ci skip]

* quadtreeworld.cpp

* chunkmanager.cpp

* chunkmanager.cpp

* cellpreloader.cpp

* jvoisin

* whitespace

* whitespace
2021-09-27 21:32:18 +02:00
Bo Svensson 3f68ddd8f4
alternate debug chunks (#3127)
* quadtreeworld.cpp

* chunkmanager.cpp

* chunkmanager.hpp

* quadtreeworld.hpp

* chunkmanager.cpp

* quadtreeworld.cpp

* quadtreeworld.cpp

* quadtreeworld.cpp [ci skip]

* quadtreeworld.hpp

* quadtreeworld.cpp

* quadtreeworld.cpp

* quadtreeworld.cpp

* chunkmanager.cpp

* chunkmanager.cpp
2021-09-27 21:25:39 +02:00
Cédric Mocquillon 4b7d0bba53 Avoid adding redundant osg;;Group in non debug mode 2021-09-11 21:53:04 +02:00
Cédric Mocquillon 98a0819d52 Debug terrain chunks 2021-09-11 21:53:04 +02:00
Bo Svensson 9d661359a1
Groundcover consolidation (#3096)
* chunkmanager.hpp viewdistance

* chunkmanager.cpp viewdistance

* chunkmanager.hpp viewdistance

* quadtreeworld.cpp viewdistance

* quadtreeworld.cpp consolidate

* quadtreeworld.hpp consolidate

* renderingmanager.cpp groundcover consolidate

* renderingmanager.hpp groundcover consolidate

* renderingmanager.cpp updater move

* renderingmanager.hpp updater move

* groundcover.hpp activegrid consolidation

* groundcover.cpp activegrid consolidation

* settings-default.cfg dead settings remove

* viewdata.cpp revert

* wrong file paste mistake

* wrong file paste mistake

* wrong file paste mistake

* renderingmanager.cpp updatecallback fix

* renderingmanager.cpp namespace fix

* groundcover.hpp redefinition fix

* groundcover.cpp redefinition fix

* renderingmanager.cpp crash fix

* renderingmanager.cpp euclidean groundcover distance

* viewdata.hpp getreusedistance

* quadtreeworld.cpp reusedistance

* groundcover.rst [ci skip]
2021-09-09 23:10:22 +02:00
elsid 605cb8db7c
Make sync terrain preloading sleep free
This reduces average time spent on in. 5 milliseconds as a base precision is
quite a lot considering that for 60 FPS frame time is 1000/16 = ~16.67 ms
when it's a cell loading frame and there is more important work to do rather
than sleeping.
2021-09-07 14:52:42 +02:00
Bret Curtis 436c640da2 the old switch-a-roo because we shoudl only StopTraversal when the node size is larger than 1 and not the other way around 2021-08-09 22:56:04 +02:00
psi29a e94181b2b2 Merge branch 'constexpr' into 'master'
Sprinkle a couple of constexpr found by VS

See merge request OpenMW/openmw!800

(cherry picked from commit 5e8ea624bc85acebf457592dd10b790124ecf6ef)

5704b2ac Sprinkle a couple of constexpr found by VS
2021-05-04 21:09:20 +00:00
Andrei Kortunov 2d869ca9ff Fix node masks signed/unsigned mismatch 2021-04-20 10:52:51 +04:00
Andrei Kortunov 14cf0ce1dc Implement instanced groundcover 2021-01-26 22:29:41 +04:00
Andrei Kortunov 8ca3c3b123 Mark overrided methods by override keyword 2020-10-16 22:18:54 +04:00
elsid 40ad87bc4d
Replace OpenThreads by std types 2020-06-25 22:16:09 +02:00
bzzt lost a hitlab login 65cd2c77aa static intersections
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login c7fda6d280 activegrid paging = 2xfps
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login b4af2ac672 avoid blocking on pagerebuild
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login 17637c6575 pagerebuild on disable
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login ffbed7ee38 loadingscreen
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login b7b31926a8 fix map glitch + cleanup
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login 77b92aee9c fix shadowsglitch by bounds overflow
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login cf439581e1 comply by elsid review
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
bzzt lost a hitlab login ce505a9bb3 crashfix + optimiziation
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
bzzt d684f1a78f terrainbased objectpaging
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
Capostrophic 1bf2ddac4d Cleanup
Move static variable declaration out of the loop
Remove redundant boolean argument from applyDrawableProperties()
Improve HeightCullCallback class formatting
2020-05-07 18:54:09 +03:00
Bret Curtis 756ec7117b make mGrid (and friends) private again, create accessor method to return bool of mGrid.empty() 2020-04-23 17:40:10 +02:00
Bret Curtis 48713915cb re-use bzzts waterplane overlay for debug; makes it easier to test. To use this, set the env OPENMW_WATER_CULLING_DEBUG=1; You will see blue rectangles corresponding to water outlines. Once there are no more outlines, water is culled. You can further see this by pressing F3 3 times to check the the amount of quads. Before culling it should be around 1600, after culling it should drop to 0. 2020-04-23 11:12:10 +02:00
Bret Curtis 407fbe320e cleanup and use C++ version of FLT_MAX 2020-04-23 10:10:50 +02:00
bzzt ed20d869b4 waterculling for both terrain 2020-04-23 08:53:21 +02:00
Bret Curtis 8a8107e837 as it says; revert vismask and uncomplicate openmw 2020-04-20 20:57:38 +02:00
fredzio 39a55318b0 Remove unused variable 2020-04-10 22:50:28 +02:00
Andrei Kortunov 84979fa8b7 Move VisMask to components 2020-02-16 16:03:35 +04:00
Andrei Kortunov f4291ea948 Fix intersector usage (bug #5283) 2020-02-10 22:31:20 +04:00
elsid d42b5fd28e
Fix warning -Woverloaded-virtual
In file included from openmw/components/terrain/quadtreeworld.cpp:10:
openmw/components/terrain/quadtreenode.hpp:95:14: warning: 'Terrain::QuadTreeNode::traverse' hides overloaded virtual function [-Woverloaded-virtual]
        void traverse(ViewData* vd, const osg::Vec3f& viewPoint, LodCallback* lodCallback, float maxDist);
             ^
OpenSceneGraph/build/clang/release/include/osg/Group:43:22: note: hidden overloaded virtual function 'osg::Group::traverse' declared here: different number of parameters (1 vs 4)
        virtual void traverse(NodeVisitor& nv);
                     ^
1 warning generated.
2019-11-05 09:31:38 +01:00
elsid 751accad0f
Remove unused field QuadTreeBuilder::mLodFactor 2019-09-28 14:26:52 +02:00
bzzt a730365ea1 Creanup Distant Terrain code
- Cull terrain in the stock osg::CullVisitor
- Do not compile composite maps for shadow camera
- Do not abuse userdata for composite maps
2019-06-05 19:09:57 +04:00
bzzt e4ba6ecf15 Do not store a LOD callback in the every QuadTreeNode 2019-06-05 18:27:37 +04:00
bzzt a61c0aaee1 Do not load height data to the qued tree since we do not need it now 2019-06-05 18:27:37 +04:00
bzzt ebcf8ca062 Do not store a ViewDataMap in the every QuadTreeNode 2019-06-05 18:27:37 +04:00
bzzt cb6d27fb12 Use the custom LineSegmentIntersector for QuadTree to simplify traversal
code
2019-06-05 18:27:37 +04:00
bzzt ce4e8be9ac Move traverse methods to the QuadTreeNode 2019-06-05 18:27:37 +04:00
bzzt 391f6faffb Remove unused defaultViewer / defaultViewPoint 2019-04-07 11:21:09 +04:00
Andrei Kortunov 489e5c6cce Store preloaded terrain view in the main thread 2019-04-07 11:15:21 +04:00
bzzt 63ab7345be Reuse traversal result for different traversal with same view point
Rename eyePoint to viewPoint to match OSG conventions (eyePoint is the camera position, viewPoint is for LOD handling)
2019-04-07 11:14:37 +04:00
Bret Curtis d56733149c
Merge pull request #2201 from akortunov/optimize_terrain
Optimize terrain
2019-03-18 08:59:10 +01:00
bzzt 6029ed4ecc Reject empty quad tree nodes at the cell level without land data 2019-03-18 10:27:29 +04:00
bzzt 36fa51b6ad Fix bounding box calculation for terrain shapes 2019-03-18 10:27:09 +04:00
Andrei Kortunov 12f9184d00 Allow to interrupt terrain preloading 2019-03-09 13:15:23 +04:00