Commit Graph

225 Commits (520e65f82205480a6286d6c51129c0715ec13149)

Author SHA1 Message Date
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
scrawl 68f93294da Port EffectManager 10 years ago
scrawl f7d2a28930 Port BoneOffset 10 years ago
scrawl edc5cad79e Port Animation::addEffect 10 years ago
scrawl 8f6d4fb3e0 Fix filtering bug 10 years ago
scrawl 57fd18b161 Fix frontface bug 10 years ago
scrawl c334a76a6f Fix skinning bug 10 years ago
scrawl c516e897ee Move Controller base classes to SceneUtil, add visitor to assign ControllerSources 10 years ago
scrawl de2c85e0f8 Port nifloader to the more efficient StateSetController 10 years ago
scrawl 5dd1ab24fe More efficient StateSetController, beginnings of sky rendering 10 years ago
scrawl 987e923790 LightManager optimization 10 years ago
scrawl 61aaf0cf70 Attach light lists to the object base nodes instead of each renderable
Apparently that is how Ogre worked (on the SceneNode) so let's roll with it for now. Have not tested yet what MW does.
10 years ago
scrawl c92592493e OpenMW: create a window and render the starting cell(s) 10 years ago
scrawl b0ea51a5c8 Colour conversion utility 10 years ago
scrawl 591a35b8d7 *very* early version of the LightManager 10 years ago
scrawl 5162e9c09e Add comment 10 years ago
scrawl a7272b73d0 Add utility for assembling body parts / equipment 10 years ago
scrawl 99e1720980 Add SceneManager and clone utility 10 years ago