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
5b30677e41
Add the start of a custom gravity affector
2013-04-12 14:39:06 -07: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
Chris Robinson
ca289a317c
Separate the UVController function out and make it generic
...
Also fix a timing bug in it.
2013-04-06 12:26:58 -07:00
Chris Robinson
6b151be3f4
Create particle systems even when MRK was specified
2013-04-06 11:26:51 -07:00
Chris Robinson
c283991126
Remove an unneeded method
2013-04-06 10:33:07 -07:00
Chris Robinson
ebcb4c66c3
Properly read and use the NIF root record list
2013-04-06 10:17:09 -07:00
Chris Robinson
59f1d4b047
Add support for NiUVController on meshes
2013-04-06 09:44:10 -07:00
Chris Robinson
e0da265972
Use accurate bone lookups for attaching objects
...
NIFs don't requires nodes to have unique names, which means looking up a
bone by name may get the wrong one. Instead, use a NifIndex:BoneHandle
map to make sure we can get the proper bone from a given Nif::Node.
2013-04-06 08:15:12 -07:00
Chris Robinson
95730cc127
Create entities and particle systems for hidden objects
...
They're set as (in)visible as appropriate.
2013-04-06 06:53:08 -07:00
Chris Robinson
f764f243d2
Fix the particle quota
2013-04-06 06:44:34 -07:00
Chris Robinson
41ce5464c9
Recognize NiBSAnimationNode as a record type
...
And don't warn about animated nodes without textkeys
2013-04-06 05:00:19 -07:00
Chris Robinson
99b915e652
Fix some material warnings
2013-04-06 00:54:53 -07:00