Commit Graph

442 Commits (08484a46c7e8ed17202eb28d1cbf4f43799e5320)

Author SHA1 Message Date
scrawl 5b300c1052 Handle controllers for the root node. Fixes #1147 (incorrect dwemer crossbow rotation) 11 years ago
scrawl 305a471c5a Fix VisController in ascended sleeper's death animation 11 years ago
scrawl bd34b61f2a Set all keyframe-controlled bones as manually controlled 11 years ago
scrawl 264736c139 Remove hopelessly outdated nifogre tests 11 years ago
scrawl d0500e8124 Some unneeded includes cleanup 11 years ago
scrawl bfdca3b738 Fix needTangents not being set for cached/shared materials 11 years ago
scrawl aa855e9524 Include some required Ogre headers explicitely 11 years ago
scrawl 4ad43fdf92 Closes #1088: Quick&dirty fix for NIF filters not working properly with some mods 11 years ago
scrawl b8e9343764 Extend NifOverrides to allow material overrides, useful for texture modding e.g. adding normal maps without having to edit the affected meshes 11 years ago
scrawl 29acc3f722 Fix particles being too small. Looks like this should actually be size*2. 11 years ago
scrawl 86b2211932 Don't warn about NiFlipController (already implemented) 11 years ago
scrawl 764ec9bc5f Closes #716: Use the particle controller's size instead of NiAutoNormalParticlesData particle radius. Same as NifSkope now. 11 years ago
scrawl 07a9b7623a Enable skeleton-based bounding boxes added in Ogre 1.10 11 years ago
scrawl f3a7321a43 Closes #856: More aggressive supression of skeleton base: only create for keyframe controllers, not any controllers 11 years ago
scrawl c0dba2834b Closes #855: Don't try to look up bone if there's no skeleton 11 years ago
scrawl 6d47d710a0 Reimplement NiGeomMorpherController using Ogre's pose animation system 11 years ago
scrawl a9526622b1 Particle improvements: particle systems now move with the particle bone, not the scene node. This difference is not noticable if the particle bone is static, but it makes the code *much* nicer and mirrors more closely what NifSkope does. 11 years ago
scrawl 9877db413c Connect particle systems to the particle node, not the emitter node 11 years ago
scrawl eab2c89346 Issue #983: Fix controllers to affect objects attached to the base node 11 years ago
scrawl 5931fdcbde Implement NiBillboardNode. Flags not handled yet. 11 years ago
scrawl e68e2f82a2 Implement DarkTexture slot. Fix an issue with incorrect transparency override when base texture is empty. 11 years ago
scrawl 0050e6e67b Support materials with no base (diffuse) texture (should be white). Support alternate UV set for diffuse texture. 11 years ago
scrawl c5c3248376 Compile fixes for Ogre 1.10 11 years ago
scrawl 6d27ebabb6 Integrate AddGlow with material controllers 11 years ago
scrawl 19e5978a01 Merge branch 'master' of https://github.com/zinnschlag/openmw
Conflicts:
	apps/openmw/main.cpp
11 years ago
scrawl 0c3c3ed8e9 Fix wind gravity affector 11 years ago
Marc Zinnschlag 77a2179d1e Merge remote-tracking branch 'scrawl/master' 11 years ago
scrawl 57a33c957e Add possibly missing include 11 years ago
scrawl 37a7ee8fcd Set alpha value of character animations according to Invisibility / Chameleon effects. 11 years ago
scrawl 9fcb4fad5c Implement NiFlipController 11 years ago
scrawl 51a9f0111c Implement NiAlphaController and NiMaterialColorController 11 years ago
scrawl 1624e0fd8a Rename ObjectList to ObjectScene. Wrap it in a SharedPtr so we can automate the destruction routine. 11 years ago
Marc Zinnschlag ef8c0fab73 Merge remote-tracking branch 'scrawl/master' 11 years ago
scrawl c5e543b91b Implement NiGeomMorpherController 11 years ago
Marc Zinnschlag 07f692bdd2 Merge remote-tracking branch 'scrawl/master' 11 years ago
scrawl 062ea627b3 Add parallax mapping for objects 11 years ago
Alexander "Ace" Olofsson 47c60a7037 Fix C4716 (Must return a value) error on Windows MSVC 11 years ago
scrawl 6b81fd78f1 Particle improvements: Handle LocalSpace flag. Attach particle systems to the base node, since they need to be relative to that when LocalSpace is enabled. Get the bone in emitters/affectors so that resulting particle positions are the same. TODO: Fix Controllers to affect particle systems. 11 years ago
scrawl 7fd5f1df83 Change setKeepParticlesInLocalSpace to false. Not correct for all particles, but the opposite isn't either. Plus it breaks pretty much all magic VFX. 11 years ago
scrawl ffdb91bb21 Add particles for Cast + Hit. Not looking quite right yet. 11 years ago
scrawl 636d399c7f Refactored Ogre initialisation into a component 11 years ago
Chris Robinson 57fb065a86 Add Ogre::Light objects to the object list
Note that NIFs actually have NiLight-based light records which could be
used to create Ogre::Light objects. However, no Morrowind NIF uses them,
as far as I can tell.
12 years ago
Chris Robinson b7e81dbc5b Ignore controllers on the root NiNode
I wonder if we should ignore the root NiNode completely.
12 years ago
Chris Robinson 8e24cab935 Strip trailing whitespace from textkeys 12 years ago
Chris Robinson eb4daaf512 Build a skeleton for Nifs that have a matching .kf file 12 years ago
Chris Robinson bf94ffb839 Only support NiSequenceStreamHelper as a Kf root
Newer versions of the Nif foramt may have other record types, but we don't
support those.
12 years ago
Chris Robinson 8e38dc410f Allow loading multiple animation sources
Animation sources are treated differently from base objects. When given
"path\file.nif", base objects will look for "path\xfile.nif" and use that
if it exists (falling back to the original name if not found). Animation
sources will instead use "path\xfile.kf", ignoring it if the file doesn't
exist.
12 years ago
Chris Robinson 6a3ba41170 Don't store camera nodes, we don't need them. 12 years ago
Chris Robinson 68a9a4de5f Fix setting and getting KeyframeController transforms 12 years ago
Chris Robinson 26cc86ffdc Use the Nif node's transform for skinned fixups 12 years ago
Chris Robinson 6f0b9a5f2c Avoid unnecessary multimap copies 12 years ago
Chris Robinson 512ff3687a Don't create Ogre animations for skeletons 12 years ago
Chris Robinson 634b0fd067 Fix for controller delta time going below start time 12 years ago
Chris Robinson 020bc410bf Merge remote-tracking branch 'zini/master' into nifogre 12 years ago
scrawl 44ac0a7c18 Use one vertex buffer for all UV coordinates 12 years ago
Chris Robinson adc6a948c7 Add methods to get the rotation, translation, and scale from a NodeTargetValue 12 years ago
Chris Robinson 59137d93c9 Partially handle NiGeomMorpherController
The morphs aren't actually applied yet, but the Ogre controller is set up so
all that has to be done is to implement the setValue method.
12 years ago
Chris Robinson d936291dbf Remove an unused ostream operator<< 12 years ago
Chris Robinson a3511c62cf Don't store textkeys in user object bindings
It's a bit unwieldy to have them stored in the 'skeleton master' instead
of the skeleton instance. And although the text keys are extracted for
each created instance now, this shouldn't be much worse than the
multimap copying going on before.

Plus, proper serialization can help for future optimizations.
12 years ago
Chris Robinson 2345b5e8b3 Avoid storing text keys for each animation 12 years ago
Chris Robinson 7d59340ed6 Don't clip out the group name from the textkeys 12 years ago
Chris Robinson ace7d647e5 Add a method to apply a NodeTargetValue-based controller to a specified node. 12 years ago
Chris Robinson f37a71f025 Use a separate method to build node-based controllers 12 years ago
Chris Robinson 3def2a0f45 Treat the particle random values as the max differential 12 years ago
Chris Robinson 36170c5374 Use flag enums instead of hard-coded hex values 12 years ago
Chris Robinson 1b1f9f7921 Allow multiple ObjectLists to be created for Animations.
addObjectList may not currently be called outside of the related constructor.
12 years ago
Chris Robinson 7000a1aa3e Add a ParticleSystemController 12 years ago
Chris Robinson bf8bc989fc Recognize and partly handle NiBSParticleNode 12 years ago
Chris Robinson f4695ec4ac Cleanup NIFObjectLoader some 12 years ago
Chris Robinson acb1b5f002 Try to handle NiBSAnimationNode
This is still incomplete guess work. Currently it seems as though flag 0x20
specifies whether the controllers auto-play (if on), rather than follow the
object's animation time.
12 years ago
Chris Robinson 0b363ba36e Handle NiParticleColorModifier with Ogre's ColourInterpolator
Note that Ogre's ColourInterpolator has a maximum of six color stages. This
seems to be fine so far, but if we want anything better, we'll need a custom
affector for it.
12 years ago
Chris Robinson 80a4345787 Keep particles in local space 12 years ago
Chris Robinson dd981077b9 Handle the vertical and horizontal parameters of Nif particles
Note that 'horizontal' is mapped to rotate around the Z axis, not Y. The Nif
particle parameters seem to be set up to expect a normal OpenGL (Direct3D?)
orientation, rather than the 90-degree pitch offset of the game.
12 years ago
Chris Robinson 7191f6ed2a Start a Nif-style particle emitter
Not complete yet (doesn't handle the vertical or horizontal direction/angle),
and should probably be renamed.
12 years ago
Chris Robinson 07c24e0382 Don't create entities and particles when only the skeleton base is needed 12 years ago
Chris Robinson 4a42f89e08 Merge remote-tracking branch 'zini/master' into nifogre 12 years ago
Chris Robinson 5b30677e41 Add the start of a custom gravity affector 12 years ago
scrawl 23b477a938 Fix normal maps with spaces in filename not getting loaded 12 years ago
Chris Robinson d26ffe9de0 Move a method to the Node class 12 years ago
Chris Robinson 62e0abd945 Move the mesh loader to its own source file 12 years ago
Chris Robinson 75489b1e9d Move NIFMaterialLoader to a separate file 12 years ago
Chris Robinson caff28e20a Move NIFSkeletonLoader to a separate file 12 years ago
Chris Robinson 6c6750342c Specified particle size is actually the radius 12 years ago
Chris Robinson 973fdeb2e0 Improve particle system placement when no emitters are specified 12 years ago
Chris Robinson e7c0f2a211 Minor cleanup to loading texture UV coords 12 years ago
Chris Robinson 01a1a0b846 Merge remote-tracking branch 'zini/master' into nifogre
Conflicts:
	components/nifogre/ogrenifloader.cpp
12 years ago
scrawl 343e2027af Support NIF detail maps 12 years ago
scrawl a5c868c9f5 Create a separate vertex buffer for each UV set 12 years ago
Chris Robinson dba7308248 Recognize NiParticleRotation 12 years ago
Chris Robinson 3c633e275e Don't create a controller for empty keyframe data 12 years ago
Chris Robinson 261ea1fe5e Implement a KeyframeController 12 years ago
Chris Robinson f69a8259e1 Update animation source controller targets 12 years ago
Chris Robinson 44a59e1b87 Fix a couple messages 12 years ago
Chris Robinson 2362e920f3 Use an unconnected object list for animation sources
We'll want the controllers, as the plan is to use their keyframe controllers
to animate the actual skeleton used for the meshes.
12 years ago
Chris Robinson 399394ff10 Don't restrict animations to the keyframe time limits 12 years ago
Chris Robinson ab5980ae18 Let the default controller function use absolute input
And convert the VisController to use it.
12 years ago
Chris Robinson fe9a7f12b6 Material fixes 12 years ago
Chris Robinson 2e067e95a9 Handle NiWireframeProperty 12 years ago
Chris Robinson ebff64a7a4 Fix UVController and add warn about unhandled material controllers 12 years ago
Chris Robinson be419bc891 Handle NiCamera nodes 12 years ago