Commit Graph

100 Commits (openmw-37)

Author SHA1 Message Date
scrawl 966737f891 Set the particle scaleReferenceFrame to local space 9 years ago
scrawl 1edcb219a7 Leak fix 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 64abdbabe3 Small refactor of controllers handling, print warning messages for unhandled controllers 9 years ago
scrawl 35f5be680b Support for NiVisController on trishape nodes 9 years ago
scrawl 2ee6b41887 Handle NiAlphaProperty on a drawable basis
Removes the RenderBin nesting complication. Also results in leaner StateSets, so the cull phase should be a bit faster.
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 76fb68a9c0 Handle particle systems that don't have emitters
Fixes a crash in the Magic Diversity mod.
9 years ago
Arthur Moore 2d93a6f6cb Be more verbose when dealing with unhandled nif texture properties 10 years ago
scrawl ac1f64b559 Fix StencilProperty front face mixup (Fixes #2802) 10 years ago
scrawl 7a5f220ac5 GlowTexture keeps the alpha channel from the previous texture stage 10 years ago
scrawl 39539603bf Re-enable a warning message 10 years ago
scrawl a7c5beb7c5 Remove redundant allocations for NIF meshes 10 years ago
scrawl 81a4a6da6b Make better use of the available texture units (Bug #2702)
Nvidia drivers only support a maximum of 4 fixed function texture units. To resolve this problem, bind texture units in order instead of binding to the NiTexturingProperty::TextureType unit.
10 years ago
scrawl 934166a853 Ignore the alpha value for particle materials (Bug #2699) 10 years ago
scrawl d7a4a9fd66 Create NIF root nodes as Group instead of Transform when possible 10 years ago
scrawl b79ab1a3b8 Fix InverseWorldMatrix bug introduced by last commit 10 years ago
scrawl ec25f1da95 Fix ParticleSystem bug introduced by last commit 10 years ago
scrawl ad46ff7a98 Remove redundant Transform nodes for TriShapes/ParticleSystems with an identity transform 10 years ago
scrawl ab597f672e State the filename in NIF loader warning messages 10 years ago
scrawl 6a788c3462 Minor cleanup 10 years ago
scrawl a5b72a358b Prune empty nodes in RemoveDrawableVisitor
Gets rid of 28 useless transform nodes in base_anim.1st.nif.
10 years ago
scrawl 9e049894e8 Reduce the number of StateSets created for NIF scene graphs
The Material state is now set on the NiTriShape's node rather than the Geode, thus merged with other state like NiTexturingProperties, etc that are typically attached to the NiTriShape.

Effectively cuts in half the number of StatSets for a NIF file, resulting in big speedup (~10%) in the Cull and Draw phases.
10 years ago
scrawl 8d6620b074 Assign an initial bounding box to particle systems 10 years ago
scrawl b5099324d1 Enable ParticleSystem's FreezeOnCull, big speed-up in Vivec 10 years ago
scrawl 93ee11c5e7 Fix particlesystem nested RenderBin issue (Bug #2631) 10 years ago
scrawl 5edf457ab7 Build fix 10 years ago
scrawl 0a411cbd7c Enable particle lighting 10 years ago
scrawl 0f8f19958a NifLoader: Fix empty StateSets being created in some cases 10 years ago
scrawl 261ed1f4e5 Revert "Enable culling for particle emitters & programs"
This reverts commit 8b206e0aed.
10 years ago
scrawl 3dcb167066 Map rendering 10 years ago
scrawl 604580d75d Move toMatrix to Nif::Node 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 09742d5b95 Animation playback works, no movement accumulation yet 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 148c041a43 Nif loader cleanup - forcing a skeleton is no longer needed 10 years ago
scrawl 28643660d3 Change triangle indices to unsigned 10 years ago
scrawl 10644544ab Dead code removal 10 years ago
scrawl eaa4316ff8 Move skinning code to SceneUtil 10 years ago
scrawl 111e3eb6db Slightly improve bounding box for skinned meshes 10 years ago
scrawl 4ea6d4aa01 Rewrite of skinning code
Goals:
- get rid of the mesh pre-transform (this requires supporting different bind matrices for each mesh)
- bounding box should be relative to the bone the mesh is attached to, ideally we can then get rid of the expensive skeleton-based bounding boxes
- update bone matrices in CullCallback instead of UpdateCallback

Works OK, though the bounding boxes are not correct yet.
10 years ago
scrawl c334a76a6f Fix skinning bug 10 years ago
scrawl f7da979669 Add FrameSwitch (geometry "double buffering") for efficient updates of RigGeometry & MorphGeometry 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 a0b43f426e Avoid setting DYNAMIC DataVariance on StateSets 10 years ago
scrawl 591a35b8d7 *very* early version of the LightManager 10 years ago
scrawl 433e29f297 MorphGeometry optimizations: static bounding box and vertices updated during cull traversal 10 years ago
scrawl 8b206e0aed Enable culling for particle emitters & programs
Big speedup, though might cause timing inconsistencies that we should fix at some point.
10 years ago