scrawl
d0500e8124
Some unneeded includes cleanup
2014-01-15 14:53:28 +01:00
scrawl
bfdca3b738
Fix needTangents not being set for cached/shared materials
2014-01-09 23:13:31 +01:00
scrawl
aa855e9524
Include some required Ogre headers explicitely
2014-01-09 20:56:24 +01:00
scrawl
4ad43fdf92
Closes #1088 : Quick&dirty fix for NIF filters not working properly with some mods
2014-01-06 19:01:05 +01:00
scrawl
b8e9343764
Extend NifOverrides to allow material overrides, useful for texture modding e.g. adding normal maps without having to edit the affected meshes
2014-01-05 18:09:50 +01:00
scrawl
29acc3f722
Fix particles being too small. Looks like this should actually be size*2.
2014-01-02 16:56:31 +01:00
scrawl
86b2211932
Don't warn about NiFlipController (already implemented)
2013-12-31 17:33:15 +01:00
scrawl
764ec9bc5f
Closes #716 : Use the particle controller's size instead of NiAutoNormalParticlesData particle radius. Same as NifSkope now.
2013-12-31 15:50:27 +01:00
scrawl
07a9b7623a
Enable skeleton-based bounding boxes added in Ogre 1.10
2013-12-31 13:22:57 +01:00
scrawl
f3a7321a43
Closes #856 : More aggressive supression of skeleton base: only create for keyframe controllers, not any controllers
2013-12-30 16:44:07 +01:00
scrawl
c0dba2834b
Closes #855 : Don't try to look up bone if there's no skeleton
2013-12-29 01:20:57 +01:00
scrawl
6d47d710a0
Reimplement NiGeomMorpherController using Ogre's pose animation system
2013-12-28 00:51:09 +01:00
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.
2013-12-27 18:58:24 +01:00
scrawl
9877db413c
Connect particle systems to the particle node, not the emitter node
2013-12-26 20:53:52 +01:00
scrawl
eab2c89346
Issue #983 : Fix controllers to affect objects attached to the base node
2013-12-26 20:53:52 +01:00
scrawl
5931fdcbde
Implement NiBillboardNode. Flags not handled yet.
2013-12-26 20:53:52 +01:00
scrawl
e68e2f82a2
Implement DarkTexture slot. Fix an issue with incorrect transparency override when base texture is empty.
2013-12-26 20:53:51 +01:00
scrawl
0050e6e67b
Support materials with no base (diffuse) texture (should be white). Support alternate UV set for diffuse texture.
2013-12-26 20:53:51 +01:00
scrawl
c5c3248376
Compile fixes for Ogre 1.10
2013-12-26 20:53:51 +01:00
scrawl
6d27ebabb6
Integrate AddGlow with material controllers
2013-12-26 20:53:45 +01:00
scrawl
19e5978a01
Merge branch 'master' of https://github.com/zinnschlag/openmw
...
Conflicts:
apps/openmw/main.cpp
2013-12-16 13:35:31 +01:00
scrawl
0c3c3ed8e9
Fix wind gravity affector
2013-12-11 15:15:30 +01:00
Marc Zinnschlag
77a2179d1e
Merge remote-tracking branch 'scrawl/master'
2013-12-09 18:39:34 +01:00
scrawl
57a33c957e
Add possibly missing include
2013-12-09 14:26:08 +01:00
scrawl
37a7ee8fcd
Set alpha value of character animations according to Invisibility / Chameleon effects.
2013-12-08 23:05:21 +01:00
scrawl
9fcb4fad5c
Implement NiFlipController
2013-12-08 18:51:56 +01:00
scrawl
51a9f0111c
Implement NiAlphaController and NiMaterialColorController
2013-12-08 16:38:13 +01:00
scrawl
1624e0fd8a
Rename ObjectList to ObjectScene. Wrap it in a SharedPtr so we can automate the destruction routine.
2013-12-07 20:15:39 +01:00
Marc Zinnschlag
ef8c0fab73
Merge remote-tracking branch 'scrawl/master'
2013-12-07 16:26:52 +01:00
scrawl
c5e543b91b
Implement NiGeomMorpherController
2013-12-07 14:10:33 +01:00
Marc Zinnschlag
07f692bdd2
Merge remote-tracking branch 'scrawl/master'
2013-12-05 16:04:50 +01:00
scrawl
062ea627b3
Add parallax mapping for objects
2013-12-05 15:51:07 +01:00
Alexander "Ace" Olofsson
47c60a7037
Fix C4716 (Must return a value) error on Windows MSVC
2013-12-04 21:48:25 +01:00
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.
2013-11-25 13:50:33 +01:00
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.
2013-11-17 23:31:08 +01:00
scrawl
ffdb91bb21
Add particles for Cast + Hit. Not looking quite right yet.
2013-11-11 23:43:28 +01:00
scrawl
636d399c7f
Refactored Ogre initialisation into a component
2013-10-30 14:04:33 +01:00
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.
2013-08-06 19:49:01 -07:00
Chris Robinson
b7e81dbc5b
Ignore controllers on the root NiNode
...
I wonder if we should ignore the root NiNode completely.
2013-07-28 04:20:33 -07:00
Chris Robinson
8e24cab935
Strip trailing whitespace from textkeys
2013-07-24 23:21:19 -07:00
Chris Robinson
eb4daaf512
Build a skeleton for Nifs that have a matching .kf file
2013-05-08 01:03:57 -07:00
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.
2013-05-07 18:26:22 -07:00
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.
2013-05-07 16:59:32 -07:00
Chris Robinson
6a3ba41170
Don't store camera nodes, we don't need them.
2013-05-06 21:46:11 -07:00
Chris Robinson
68a9a4de5f
Fix setting and getting KeyframeController transforms
2013-04-24 04:12:27 -07:00
Chris Robinson
26cc86ffdc
Use the Nif node's transform for skinned fixups
2013-04-24 00:42:45 -07:00
Chris Robinson
6f0b9a5f2c
Avoid unnecessary multimap copies
2013-04-23 21:42:59 -07:00
Chris Robinson
512ff3687a
Don't create Ogre animations for skeletons
2013-04-23 20:42:54 -07:00
Chris Robinson
634b0fd067
Fix for controller delta time going below start time
2013-04-23 17:57:40 -07:00
Chris Robinson
020bc410bf
Merge remote-tracking branch 'zini/master' into nifogre
2013-04-23 16:57:59 -07:00
scrawl
44ac0a7c18
Use one vertex buffer for all UV coordinates
2013-04-23 22:47:57 +02:00
Chris Robinson
adc6a948c7
Add methods to get the rotation, translation, and scale from a NodeTargetValue
2013-04-22 03:41:38 -07:00
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.
2013-04-22 03:24:02 -07:00
Chris Robinson
d936291dbf
Remove an unused ostream operator<<
2013-04-22 02:53:32 -07:00
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.
2013-04-22 00:01:30 -07:00
Chris Robinson
2345b5e8b3
Avoid storing text keys for each animation
2013-04-21 22:56:40 -07:00
Chris Robinson
7d59340ed6
Don't clip out the group name from the textkeys
2013-04-21 22:13:49 -07:00
Chris Robinson
ace7d647e5
Add a method to apply a NodeTargetValue-based controller to a specified node.
2013-04-20 15:35:19 -07:00
Chris Robinson
f37a71f025
Use a separate method to build node-based controllers
2013-04-19 23:56:47 -07:00
Chris Robinson
3def2a0f45
Treat the particle random values as the max differential
2013-04-16 19:16:45 -07:00
Chris Robinson
36170c5374
Use flag enums instead of hard-coded hex values
2013-04-16 01:20:32 -07:00
Chris Robinson
1b1f9f7921
Allow multiple ObjectLists to be created for Animations.
...
addObjectList may not currently be called outside of the related constructor.
2013-04-15 18:55:28 -07:00
Chris Robinson
7000a1aa3e
Add a ParticleSystemController
2013-04-14 13:50:55 -07:00
Chris Robinson
bf8bc989fc
Recognize and partly handle NiBSParticleNode
2013-04-14 12:52:20 -07:00
Chris Robinson
f4695ec4ac
Cleanup NIFObjectLoader some
2013-04-14 00:06:40 -07:00
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.
2013-04-13 22:54:32 -07:00
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.
2013-04-13 16:42:32 -07:00
Chris Robinson
80a4345787
Keep particles in local space
2013-04-13 16:26:34 -07:00
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.
2013-04-13 16:16:57 -07:00
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.
2013-04-13 14:36:24 -07:00
Chris Robinson
07c24e0382
Don't create entities and particles when only the skeleton base is needed
2013-04-13 13:13:09 -07:00
Chris Robinson
4a42f89e08
Merge remote-tracking branch 'zini/master' into nifogre
2013-04-13 13:04:41 -07:00
Chris Robinson
5b30677e41
Add the start of a custom gravity affector
2013-04-12 14:39:06 -07:00
scrawl
23b477a938
Fix normal maps with spaces in filename not getting loaded
2013-04-12 04:36:28 +02:00
Chris Robinson
d26ffe9de0
Move a method to the Node class
2013-04-10 23:19:47 -07:00
Chris Robinson
62e0abd945
Move the mesh loader to its own source file
2013-04-10 22:38:46 -07:00
Chris Robinson
75489b1e9d
Move NIFMaterialLoader to a separate file
2013-04-10 20:24:44 -07:00
Chris Robinson
caff28e20a
Move NIFSkeletonLoader to a separate file
2013-04-10 19:58:17 -07:00
Chris Robinson
6c6750342c
Specified particle size is actually the radius
2013-04-10 13:37:20 -07:00
Chris Robinson
973fdeb2e0
Improve particle system placement when no emitters are specified
2013-04-08 15:21:28 -07:00
Chris Robinson
e7c0f2a211
Minor cleanup to loading texture UV coords
2013-04-08 14:54:13 -07:00
Chris Robinson
01a1a0b846
Merge remote-tracking branch 'zini/master' into nifogre
...
Conflicts:
components/nifogre/ogrenifloader.cpp
2013-04-08 11:46:57 -07:00
scrawl
343e2027af
Support NIF detail maps
2013-04-08 15:17:30 +02:00
scrawl
a5c868c9f5
Create a separate vertex buffer for each UV set
2013-04-08 14:54:19 +02:00
Chris Robinson
dba7308248
Recognize NiParticleRotation
2013-04-07 17:16:49 -07:00
Chris Robinson
3c633e275e
Don't create a controller for empty keyframe data
2013-04-07 15:42:07 -07:00
Chris Robinson
261ea1fe5e
Implement a KeyframeController
2013-04-07 14:56:23 -07:00
Chris Robinson
f69a8259e1
Update animation source controller targets
2013-04-07 13:51:04 -07:00
Chris Robinson
44a59e1b87
Fix a couple messages
2013-04-07 13:03:41 -07:00
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.
2013-04-07 12:41:27 -07:00
Chris Robinson
399394ff10
Don't restrict animations to the keyframe time limits
2013-04-07 10:03:13 -07:00
Chris Robinson
ab5980ae18
Let the default controller function use absolute input
...
And convert the VisController to use it.
2013-04-07 08:29:56 -07:00
Chris Robinson
fe9a7f12b6
Material fixes
2013-04-07 07:53:01 -07:00
Chris Robinson
2e067e95a9
Handle NiWireframeProperty
2013-04-07 07:12:52 -07:00
Chris Robinson
ebff64a7a4
Fix UVController and add warn about unhandled material controllers
2013-04-07 06:56:12 -07:00
Chris Robinson
be419bc891
Handle NiCamera nodes
2013-04-07 02:28:15 -07:00
Chris Robinson
2db72ae607
Rename EntityList to ObjectList
2013-04-07 01:52:35 -07:00
Chris Robinson
834a6a1f00
Remove old, unused code
2013-04-07 01:14:26 -07:00
Chris Robinson
d97b341dc6
Rename NIFMeshLoader to NIFObjectLoader
2013-04-07 01:02:21 -07:00
Chris Robinson
63cbf7ddeb
Specify a default return for failed lookups
2013-04-06 12:41:40 -07:00