Commit Graph

81 Commits (master)

Author SHA1 Message Date
Alexei Kotov 0f4e0ac818 Precompute bone matrices during skinning 1 month ago
Alexei Kotov c1088e5f70 Streamline passing influence data to skinning 1 year ago
Alexei Kotov 76939aae45 Refurbish RigGeometry
Restructure/untangle influence data
Don't store the input influence data
Overall cleanup
1 year ago
Alexei Dobrohotov 20e799dadc Use Rig/MorphGeometry state for its child geometry
Cherry-pick of ed44095cdc from 0.48 branch
2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
psi29a b551e69b6f #5534 remove OSG 3.4 support and require at least 3.6.5 support 2 years ago
Bo Svensson c9c8d02332
fixes a crash (#3183)
This PR fixes a crash caused by the improperly ensured lifetime of RigGeometry::mSourceGeometry. mSourceGeometry was not adequate to ensure mSourceGeometry would outlive mGeometry because we extend mGeometrys lifetime beyond this lifetime by passing mGeometry to the draw traversal instead of this.
In addition,

We add important comments.
We detect and prevent generally unsafe operations in high level code.
We add a sprinkling of const to help clarify intentions.
3 years ago
Dan Church 42bd10f356
Fix FTBFS against older versions of osg
Bring back osg version guard.

Drawable::dirtyGLObjects wasn't available until OpenSceneGraph-3.5.10.
3 years ago
Bo Svensson b0132be53f
do not dirty unchanged arrays (#3164)
This PR proposes a simple change to `RigGeometry` `dirtyGLObjects` logic.

1. We will avoid dirtying unmodified arrays.
2. We can drop an osg version guard since `Drawable::dirtyGLObjects` is not nearly as harmful as `Geometry::dirtyGLObjects`.
3. We will avoid crashes in an as yet unfinished future PR concerning `Array` sharing improvements.
3 years ago
Bo Svensson c2d836c6c4
optimises riggeometry.cpp (#3165)
We skip this during node path iterations. this is not a node we are interested in.
We avoid allocating a new mGeomToSkelMatrix per frame and avoid a ref_ptr associated with its update.
We speed up a search for the Skeleton node by adding a continue; condition prior to an expensive dynamic_cast.
3 years ago
Alexei Dobrohotov 9f08dc9968 Revert "Merge branch 'skinning' into 'master'"
This reverts merge request !327
4 years ago
Alexei Dobrohotov 6be808e301 RigGeometry: convert some pairs to structs 4 years ago
bzzt lost a hitlab login 26ab176389 profiling
Signed-off-by: Bret Curtis <psi29a@gmail.com>
5 years ago
bzzt d684f1a78f terrainbased objectpaging
Signed-off-by: Bret Curtis <psi29a@gmail.com>
5 years ago
bzzt 4ab93aeffe Do not allocate empty callbacks in the RigGeometry 6 years ago
Andrei Kortunov 3032b177a1 Remove redundant includes 6 years ago
Chris Djali cb5a57e41b
Merge pull request #1547 from AnyOldName3/osgshadow-test-vdsm
Shadows
6 years ago
Andrei Kortunov 60c9806d62 Share RigGeometry node data 6 years ago
AnyOldName3 8482236a82 Merge remote-tracking branch 'upstream/master' into osgshadow-test-vdsm 6 years ago
Andrei Kortunov 8e6fd348d1 RigGeometry optimization: optimize geometry optimization 6 years ago
Andrei Kortunov 254f01b89d RigGeometry optimization: vector iteration is more cheap than map iteration 6 years ago
AnyOldName3 53188f61fc Fix animation bug with VAOs 6 years ago
Bret Curtis fc19c842cf
Revert "fix a rig bug visible with OSG_VERTEX_BUFFER_HINT=VAO" 6 years ago
mp3butcher 7a85e10d2f fix a rig bug visible with OSG_VERTEX_BUFFER_HINT=VAO 6 years ago
AnyOldName3 0124be5713 Merge upstream/master 6 years ago
Andrei Kortunov e06f0b797a Replace all NULLs to nullptr 6 years ago
Andrei Kortunov 87394f2ebb Revert "Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437)"
This reverts commit 09427d3f5e since the
fix is not entirely correct.
6 years ago
Andrei Kortunov 09427d3f5e Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437) 6 years ago
Andrei Kortunov ff241fb787 Optimize skinning (task #4605) 6 years ago
AnyOldName3 80082308f0 Merge upstream (shadermanager log system revamp) 6 years ago
Andrei Kortunov 1452684d9e Use new logging system for components 6 years ago
AnyOldName3 6286f5a1d4 Ensure RigGeometry child geometries have sensible bounds without actually computing them. 6 years ago
scrawl 2e58024f1c Fix intersections with Rig/MorphGeometry, was caused by an issue in the LineSegmentIntersector not respecting the cullingActive flag of a drawable. 7 years ago
scrawl 5e790b567e Fix node path issue
Needs to be set so that the 'cullingActive' flag of the node path's end can be checked
7 years ago
scrawl 4bef8260ab Add const qualifiers 7 years ago
scrawl 209e139aa8 Move double buffering implementation inside RigGeometry
The double buffering is an implementation detail so it should be handled as such, rather than mandating the scene graph to be structured in a certain way.

Override accept(NodeVisitor&) instead of using callbacks.
7 years ago
scrawl 29556a1802 More consistent wording of errors/warnings
A Warning indicates a potential problem in the content file(s) that the user told OpenMW to load. E.g. this might cause an object to not display at all or as intended, however the rest of the game will run fine.

An Error, however, is more likely to be a bug with the engine itself - it means that basic assumptions have been violated and the engine might not run correctly anymore.

The above mostly applies to errors/warnings during game-play; startup issues are handled differently: when a file is completely invalid/corrupted to the point that the engine can not start, that might cause messages that are worded as Error due to the severity of the issue but are not necessarily the engine's fault.

Hopefully, being a little more consistent here will alleviate confusion among users as to when a log message should be reported and to whom.
8 years ago
scrawl 30b101b175 Fix build error in OSG_USE_FLOAT_MATRIX=OFF mode due to a double implicit conversion to double (pun doubly intended) 8 years ago
scrawl 84a92e665c Improve performance in RigGeometry by optimizing for the most common case of identity geomToSkelMatrix 8 years ago
scrawl eae35af13d Check if the bounding box changed before calling dirtyBound() 8 years ago
scrawl c0faeea938 RigGeometry check if mesh has normals (Fixes #3667) 8 years ago
scrawl d5f497c47d Pass the node path instead of the node visitor 9 years ago
scrawl 6fa95e72c5 Pass the traversal number instead of the node visitor 9 years ago
scrawl 824cd3be22 Do not set _boundingBoxComputed which is no longer used 9 years ago
scrawl 8052225460 Remove leftover call to setTexCoordArrayList 9 years ago
scrawl cc0afe901f Store a pointer to tangents array to avoid potential type casting issue 9 years ago
scrawl d1f6169889 Add special handling of RigGeometry tangents in ShaderVisitor 9 years ago
scrawl 95e80e7eff RigGeometry: don't directly modify the primitive set list
This is to ensure that an element buffer object will be assigned to the primitive sets if necessary.
9 years ago
scrawl c73ec71123 Revert "Store the RigGeometry's source vertices and normals directly"
This reverts commit 7a347e3483.
9 years ago
scrawl 60c8c4fdda Revert "Animate tangents in RigGeometry"
This reverts commit 9cf963b751.
9 years ago