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
5d524a6a10
Add custom version of MorphGeometry replacing osgAnimation
...
Double buffering, custom bounding box and the update in the cull visitor (instead of update) are now all handled internally rather than needing hacks and/or callbacks.
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
45f7563a55
Revert "Revert "Check for a Geometry node when attaching bodyparts""
...
Issue with shaders has been fixed with b9931fb71c
This reverts commit a1e3fb7604
.
7 years ago
scrawl
a1e3fb7604
Revert "Check for a Geometry node when attaching bodyparts"
...
This reverts commit 3fc8634206
.
7 years ago
scrawl
3fc8634206
Check for a Geometry node when attaching bodyparts ( Fixes #3957 )
7 years ago
Allofich
42402976e3
Fixes for building in MSVC
8 years ago
Bret Curtis
f0b21cca22
use own inline hash_combine function
8 years ago
Bret Curtis
154d7cffa2
replace and purge boost::function
8 years ago
Bret Curtis
07f75e1104
replace boost::shared_ptr in extern and components
8 years ago
Ewan Higgs
38a2de3c51
convert std::autor_ptr to std::unique_ptr, originally by Ewan Higgs and updated by Bret Curtis
8 years ago
scrawl
8d84869432
Fix commit 8f71b65d38
(don't overwrite the previous user data)
...
This resulted in a crash/corruption because the KeyframeController, for performance reasons, does not check that the expected user data is there and of correct type.
(Fixes #3829 )
8 years ago
scrawl
8f71b65d38
sceneutil/attach: inherit the UserDataContainer to avoid the resource cache from being cleared incorrectly
8 years ago
scrawl
3d58ba7301
Fix boolean test
8 years ago
scrawl
34130fc5cc
Fix handling in LightListCallback when the node is not a Group
8 years ago
scrawl
b78a9f89af
Refactor LightListCallback to allow for integration in custom Drawables.
8 years ago
scrawl
13a6070629
Remove warning spam in skeleton.cpp
...
If the root bone is missing, that is caused by all bones being missing which will have been logged already.
8 years ago
scrawl
c1b1d502ee
Fix up commit 330e5fefd1
8 years ago
scrawl
4051018862
optimizer: fix FlattenStaticTransformsVisitor not respecting the is permissible callback
8 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
706ac45c76
Fix missing particles caused by shallow copy of ParticleSystemController
8 years ago
scrawl
5caf53b6a3
optimizer: avoid reordering nodes
...
Fixes an osgParticle cloning issue.
(Fixes #3773 )
8 years ago
scrawl
a95773beef
Fix unnecessary copy of ParticleSystem in SceneUtil::CopyOp
8 years ago
scrawl
48e0f098ff
Add missing copy of callbacks when a Transform is replaced by Group
...
(Fixes #3770 )
8 years ago
scrawl
330e5fefd1
optimizer: consider a Group with more than one child redundant as well
...
While there could be some value in this hierarchy (i.e. improved culling), we don't know if this is being used sensibly; and using a 'flat' hierarchy helps other optimizations.
8 years ago
scrawl
e4c12e5e56
optimizer: don't merge Geometry that has transparency sorting enabled
8 years ago
scrawl
ebfd845eae
optimizer: run MERGE_GEOMETRY after removing redundant nodes
8 years ago
scrawl
43f31d6e54
optimizer: fix MERGE_GEOMETRY to work with Geometries not attached to a Geode
8 years ago
scrawl
f2a323238f
optimizer: merge groups as part of REMOVE_REDUNDANT_NODES
8 years ago
scrawl
af716d4b61
optimizer: remove hardcoded condition in RemoveRedundantNodesVisitor
8 years ago
scrawl
698738c649
optimizer: use asXYZ() instead of dynamic_cast
8 years ago
scrawl
f7cb4bd245
optimizer: remove some cruft
8 years ago
scrawl
e33829d493
Add fork of osgUtil::Optimizer with backported fixes that have not been released yet
...
Remove optimizers that won't be used.
8 years ago
scrawl
305cccd263
Don't print Geometry data (vertices, triangles, etc.) in showscenegraph
8 years ago
scrawl
c231b06320
Remove boneOffset node after using it
8 years ago
scrawl
8f79fa3d72
Add resource statistics panel opened with F4
8 years ago
scrawl
4aa40d16bc
Increase the importance of light radius when sorting lights (Bug #2759 )
8 years ago
scrawl
67e4a7e37b
Change some osg::clone's to direct copy constructor to avoid dynamic_cast overhead
8 years ago
scrawl
839928e210
Fix light data being reset for the wrong light
8 years ago
scrawl
a46593fa74
Add PreloadItem::abort() to avoid no longer required cells from blocking the work thread
8 years ago
scrawl
c00532d82d
Add LightStateCache to avoid redundantly setting the same gl_Light
...
Normally, osg::State would do this for us (via lastAppliedAttribute), but since we're using a custom StateAttribute to apply all lights at once, we have to track ourselves.
Further reduction of GL calls in a typical scene by ~2%
8 years ago
scrawl
4d4dc1b9c1
Add specialized DisableLight state attribute for more efficient undoing of light state
...
Seems to reduce # of GL calls by 10-15% in a typical scene.
8 years ago
scrawl
a1069dce3c
Change UnrefQueue to accept osg::Referenced instead of osg::Object
8 years ago
scrawl
33e654f94d
Add explicit handling of most commonly used nodes to NodeVisitors to avoid excessive virtual function calls
8 years ago
scrawl
767eba941f
Speed up finding of attachment node by using the cached nodeMap
8 years ago
scrawl
a76d693627
Speed up ControllerVisitor by skipping sub graphs that have no ChildrenRequiringUpdateTraversal()
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
53e4db8a8f
Add dummy serializer for CameraRelativeTransform to allow serializing content of Sky Root
8 years ago
scrawl
34deb6e7b1
Add 'showSceneGraph' command to export the scene or a particular object to .osgt for debugging purposes
8 years ago
scrawl
eae35af13d
Check if the bounding box changed before calling dirtyBound()
8 years ago
scrawl
cca75499ee
Clear the Skeleton's bone cache when a node is added/removed ( Fixes #3663 )
8 years ago
scrawl
c0faeea938
RigGeometry check if mesh has normals ( Fixes #3667 )
8 years ago
MiroslavR
11565b5966
Make actors with non-portable lights in inventory glow ( Closes #2042 , #3338 )
8 years ago
scrawl
513e1da8a3
Remove unneeded casts
9 years ago
Aesylwinn
5753f52b47
Move water mesh + simple state generation to components library.
9 years ago
scrawl
8f62ea2e80
Fix for "RigGeometry rendering with no skeleton" errors
9 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
Aesylwinn
b83f522ecd
Changes to color scheme, slight change to drag indicator,
...
change tooltip description.
9 years ago
Aesylwinn
1781aaaa27
Drag indicator.
9 years ago
Aesylwinn
32ba5bf8b8
Initial pathgrid editting, support for selection and movement.
9 years ago
scrawl
17a0353a85
Fix forward declaration mismatch
9 years ago
Aesylwinn
14ae232938
Remove now unnecessary factory class.
...
It was originally used for storing normals, but that functionality
was removed.
9 years ago
Aesylwinn
b11f5b2717
Make edges differently colored.
9 years ago
Aesylwinn
0eb863d8fc
Change color to blue to match the pathgrid visibility selector in the
...
editor and slightly increase the scaling.
9 years ago
Aesylwinn
7f0cc6e583
Add a color gradiant to pathgrid nodes to make them less of an eyesore.
9 years ago
Aesylwinn
3d26ff08c4
Get rid of lighting.
9 years ago
Aesylwinn
d141672b53
Pathgrid geometry creator
9 years ago
scrawl
2f8be401cc
Add the unref work items to the front of the workqueue (Bug #3273 )
...
Ensures that memory still gets freed even if the workqueue is overloaded.
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
scrawl
9cf963b751
Animate tangents in RigGeometry
9 years ago
scrawl
7a347e3483
Store the RigGeometry's source vertices and normals directly
9 years ago
scrawl
d986b1a48b
Add comment
9 years ago
scrawl
1abb77f8a1
Cleanup
9 years ago
scrawl
9f03982e0b
Use a dedicated VBO for RigGeometry's vertices and normals
...
The VBO used by the source geometry's arrays may be unintentionally shared with other RigGeometries.
The vertices and normals are the only attributes that are modified at all, so using a dedicated VBO for these should improve performance further.
9 years ago
scrawl
50b8260a39
Disable VBOs in RigGeometry while investigating a crash possibly related to commit cda8a88f0d
9 years ago
scrawl
4eb090a8d0
Set the RigGeometry vertex buffer object usage to GL_DYNAMIC_DRAW
9 years ago
scrawl
174dd82894
Manually apply the osg::Light state
...
Reduce the amount of virtual function calls. Don't use the osg::Light's lightNum. Don't set spotlight state that we're not using (yet).
9 years ago
scrawl
58e0e8bd4e
Enable vertex buffer objects in RigGeometry
9 years ago
scrawl
f898bf493f
Don't use Geodes
9 years ago
scrawl
137dde7cf8
Include cleanup
9 years ago
scrawl
0df975a4d7
Properly detach nodes in CopyRigVisitor ( Fixes #3234 )
9 years ago
scrawl
563807ee53
Share the StateSet used to invert front face
9 years ago
scrawl
8791063110
Fix "RigGeometry rendering with no skeleton" warnings in rare cases
9 years ago
scrawl
1e5b4bea0a
Don't create an unnecessary osg::Group when copying over a rig
9 years ago
scrawl
90a99991d1
Use empty() instead of !size()
9 years ago
scrawl
3e854a84a2
Slightly more efficient applying of light state
9 years ago
scrawl
f93b7ec943
Fix light state issue
...
GLSL does not respect gl_Disable(GL_LIGHTX), so we have to set unused lights to zero.
Sadly, this change makes the applying of the modelView matrix less efficient. So far I couldn't find a better solution, osg's state tracker keeps getting in the way. :(
9 years ago
scrawl
9376811213
Vertex lighting shader
9 years ago
scrawl
c4d38bb42d
Fix clang analyzer warnings
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
Marc Zinnschlag
da6dcfc49e
Merge remote-tracking branch 'scrawl/resource'
9 years ago
scrawl
afe533e670
Accept a const Object in UnrefQueue
9 years ago
scrawl
40a6e05e17
Use a deque instead of vector in UnrefQueue
9 years ago
scrawl
d11c2864df
Introduce UnrefQueue to handle the deleting of no longer needed objects in the background thread
9 years ago
scrawl
84f01b7527
Remove unneeded forward declaration
9 years ago
scrawl
b7e69cbc64
Refactor WorkQueue, merge WorkTicket and WorkItem
...
Allow the caller to hold on to the WorkItem. This makes it possible for a derived WorkItem to store the result of the work within the WorkItem itself.
9 years ago
scrawl
e02f35264f
Work around OSG 3.2 not respecting the DEEP_COPY_CALLBACK flag ( Fixes #3183 )
9 years ago
scrawl
8360cccce7
Don't clone Drawable UpdateCallbacks twice
...
The Drawable copy constructor takes care of that already.
9 years ago
scrawl
aec8c38461
Move observer_ptr include where it belongs
9 years ago
Tobias Kortkamp
0659687bfb
Some fixes for building on FreeBSD
9 years ago
scrawl
458a305bff
OpenCS: add lighting mask
9 years ago
scrawl
e1c7165bfb
Fix bounds calculation for addLight to a transform node
9 years ago
scrawl
93cc08a09c
Lighting fix for LightListCallbacks attached to a Transform node
9 years ago
scrawl
3089aeccc4
Factor out SceneUtil::addLight
9 years ago
scrawl
438b30d6f0
Move configureLight to a separate file
9 years ago
scrawl
daa94cc50e
Fix cppcheck warnings
9 years ago
scrawl
0597c8fd9c
Pass a Vec4f by reference
9 years ago
scrawl
624809c8dc
Minor fix for error handling in skeleton.cpp
9 years ago
scrawl
e39f49a88f
OSG extensions namespace fixes
9 years ago
scrawl
c60f4ba7bd
Make RigGeometry bone references case-insensitive ( Fixes #3058 )
9 years ago
scrawl
258f7a2b42
LightController fixes
9 years ago
scrawl
4a9b37aa53
Fix copy constructor issue
9 years ago
scrawl
c442af09c5
Write more documentation for the lighting system
9 years ago
scrawl
8e9571d155
Double buffer the light StateAttributes and StateSets
...
Fixes a race condition where the position of a light could jump a frame ahead.
9 years ago
scrawl
1f8ee9b8d1
StateSetUpdater: use the frameNumber
...
More robust in case a node is updated twice in the same frame (e.g. because it has multiple parents).
9 years ago
scrawl
eb458bf9c8
Fix inactive RigGeometry not rendering correctly
9 years ago
scrawl
1b77428c59
Use const reference, thanks ace13
9 years ago
scrawl
94e8560bf8
RigGeometry: do not allocate new NodePath every frame
9 years ago
scrawl
6d5aa272fc
RigGeometry: do not update the geomToSkelMatrix more than once per frame
9 years ago
scrawl
75a464f7ec
Fix a typo
9 years ago
scrawl
fc7456e0a1
Explicitely opt for float matrices in performance critical places
9 years ago
scrawl
62169a7039
Use a single-precision PositionAttitudeTransform in speed critical places
9 years ago
scrawl
3bd2aaddea
Adjust PulseSlow light controller ( Fixes #1963 )
9 years ago
scrawl
21e25f4756
Use the traversalNumber as frame number
9 years ago
scrawl
054c3eb24e
Do not deep copy PrimitiveSets when build with OSG 3.5
9 years ago
scrawl
0409e5a043
Use OSG_VERSION_GREATER_EQUAL / LESS_THAN rather than MIN_VERSION_REQUIRED (cosmetic change)
9 years ago
scrawl
f1ac408f35
Place Drawables directly in the scene graph when built with OSG 3.4
...
OSG 3.4 adds the ability to place Drawables directly in the scene graph, without a Geode decorating them. Leveraging this should give a small performance boost, because the redundant Geodes increase culling overhead.
There is still an oustanding issue with the RemoveDrawableVisitor no longer working correctly, because Drawables can have multiple parents.
9 years ago
scrawl
35459f20d5
Refactor lighting mask
9 years ago
scrawl
bd8332d2b0
Remove default copyop argument for nodecallback copy constructors
...
Works around a compiler warning with OSG 3.4:
warning: base class 'class osg::Callback' should be explicitly initialized in the copy constructor [-Wextra]
With no default argument for osg::CopyOp&, the compiler no longer sees the function as a real copy constructor and stops warning about the missing virtual initializations.
We don't care about this warning because there is nothing interesting to initialize in the osg::NodeCallback base anyway.
A proper fix for the warning would require to inserting OSG_VERSION conditional compiling all over the place, that is as long as we are still supporting OSG 3.2.
9 years ago
scrawl
1200ff9186
RigGeometry: fix incorrect bounding box in the first frame
...
The default computeBound() was overriding the manually set bounding box.
9 years ago
scrawl
0210b87ffc
Revert "Fix LightSource crash"
...
This reverts commit f336c6db87
.
Root cause should be fixed in next commit.
9 years ago
scrawl
c996702b56
Fix some uninitialised variables found by static analysis
9 years ago
scrawl
c23609e22b
Cache the light list in LightListCallback
...
When multiple cameras are rendering, the later cameras can reuse the light lists from the first camera.
9 years ago
scrawl
fd1ccd21ff
Disable freezeOnCull for weather particles
9 years ago
scrawl
5ca0ae5232
Don't add the same AlphaFader to multiple nodes
9 years ago
scrawl
f336c6db87
Fix LightSource crash
9 years ago
scrawl
49df6b7450
LightManager: fix incorrect view matrix for RELATIVE_RF cameras
9 years ago
scrawl
6dff11f847
Duplicate code fix
9 years ago
scrawl
8552a9d82c
Add multiple camera support to LightManager
9 years ago
scrawl
8e69c80bf6
Add framenumber checks in various cull callbacks, so we don't update more than once per frame when multiple cameras are used
9 years ago
scrawl
f7e5a40143
Fix typo
9 years ago
scrawl
e9acd135a6
Update todo comment
9 years ago
scrawl
cda8a88f0d
Use DEEP_COPY_PRIMITIVES to work around problem in osg::Geometry copy constructor (Bug #2754 )
9 years ago
scrawl
b3f5ac5dbb
Include cleanup
10 years ago
scrawl
49c07de773
Merge pull request #643 from ace13/win-build-fix
...
Fix build error and a pair of warnings
10 years ago
Alexander "Ace" Olofsson
aaaee74a4d
Fix the comments
10 years ago
scrawl
631cec7304
Take the radius of lights into account when sorting
10 years ago
scrawl
43f9c7f295
Skip the Update traversal for inactive skeletons
10 years ago
scrawl
aad8e7b6d0
Light culling fix
10 years ago
scrawl
18f4eaa8dc
Preliminary handling for overflowing light lists
10 years ago
scrawl
acf9fc2d37
Enable per-frame light list updates (Bug #2638 , Bug #2654 )
...
The performance impact isn't so big anymore since the last commit.
10 years ago
scrawl
1d198a5592
Keep the light list StateSet cache for more than one frame
10 years ago
scrawl
b204396b57
Minor fix
10 years ago
scrawl
a1e74a35a2
Revert "Use the WorkQueue to update skinning"
...
This reverts commit d52d0d9640
.
Moving to branch
10 years ago
scrawl
9c86d4f8bc
Race condition fix
10 years ago
scrawl
d52d0d9640
Use the WorkQueue to update skinning
10 years ago
scrawl
cc71e894e1
Add WorkQueue class
10 years ago
scrawl
9c9b83f8e2
Changes to compile with osg-svn 3.3.8
10 years ago
scrawl
5a7f2a4f1f
Restore light attenuation settings
10 years ago
scrawl
01944c33f5
Basic water rendering
10 years ago
scrawl
c85764b654
Wireframe mode
10 years ago
scrawl
fd50be0fb8
Restore various gameplay
10 years ago
scrawl
6231cd8557
RigGeometry clone fix
10 years ago
scrawl
a56d0e9cc3
ControllerVisitor fix
10 years ago
scrawl
668d365ef9
MorphGeometry copy fix
10 years ago
scrawl
5de24552a8
Leak fix
10 years ago
scrawl
3dcb167066
Map rendering
10 years ago
scrawl
da24e298ee
Fix -Wreorder warnings
10 years ago
scrawl
7882c3d7f0
Fix incorrect rotation for meshes with BoneOffset
10 years ago
scrawl
8d033f0558
Fix UpdateRigBounds not being copied properly
10 years ago
scrawl
8b768f4377
Minor fix for behaviour with non-existing LightManager
10 years ago
scrawl
b6cb73e6e8
Fix deep copying of controllers
...
This fixes the cell loading crash.
10 years ago
scrawl
65f0195c71
Readded animated collision shape support
10 years ago
scrawl
15bdb7db01
transformBoundingSphere optimization
10 years ago
scrawl
a98dc78cc5
Bounds fix
10 years ago
scrawl
83c6ba97c0
Disable skinning updates for actors beyond the AI processing distance
10 years ago
scrawl
63b69db617
Port skeleton based bounding boxes to the new skinning system
...
Not sure if going to keep this, there's a noticable performance impact.
10 years ago
scrawl
b4a06bd78d
Improve skinning performance
10 years ago
scrawl
09742d5b95
Animation playback works, no movement accumulation yet
10 years ago
scrawl
12f3198f68
Node name lookups should be case insensitive
...
Concerns "AttachLight", "BoneOffset" and equipment part attachment points, that are all case insensitive in vanilla MW.
10 years ago
scrawl
cd7808fc11
Cleanup in preparation for animation port
...
Scrapped previous idea for multiple animation sources, better approach incoming.
10 years ago
scrawl
8c810e3620
Move rng to components
10 years ago
scrawl
04accb7652
Add LightController
10 years ago
scrawl
5fbcf8a859
Mesh filtering fix
10 years ago
scrawl
a254877abe
Clone fix
10 years ago
scrawl
28643660d3
Change triangle indices to unsigned
10 years ago
scrawl
102eadf91c
Add some comments
10 years ago
scrawl
eaa4316ff8
Move skinning code to SceneUtil
10 years ago
scrawl
bd88758962
Use the new skinning system in OpenMW
10 years ago