Chris Robinson
03785f3ecd
Handle NiVertexColorProperty
2013-03-02 16:28:32 -08:00
Chris Robinson
fdfcd5bb47
Material properties are accumulative along the node tree
2013-03-02 12:23:29 -08:00
Chris Robinson
e3fd4b8429
Fix restoring the original texture name when the DDS check fails
2013-03-01 17:57:34 -08:00
Chris Robinson
e6b547b9ba
Merge remote-tracking branch 'zini/master' into transparency-fixes
2013-03-01 13:32:30 -08:00
Chris Robinson
166d529c50
Ensure the material is properly built after creating it
2013-03-01 13:26:31 -08:00
Chris Robinson
2c05a7477c
Improve checks for texture resource names that include the "textures\" prefix
2013-02-28 17:16:28 -08:00
Chris Robinson
eaa6813917
Workaround for meshes without any vertices
2013-02-28 13:54:53 -08:00
Chris Robinson
1168f15361
Don't disable depth writes when blending is enabled
2013-02-28 12:17:58 -08:00
Chris Robinson
a7220518b6
Merge remote-tracking branch 'zini/master' into skeleton-fixes
2013-02-27 13:22:33 -08:00
Chris Robinson
3ed0bf97a8
Share the space with the parent entity only when there's real skinned meshes
...
The existence of a base skeleton doesn't mean it shares the same bone
structure. If there isn't an actual skinned entity besides the base, simply
attach it to the bone like unskinned meshes should be.
2013-02-27 13:16:27 -08:00
Chris Robinson
bfe80bb8dc
Avoid duplicating skeletons due to casing issues
...
Manually created resource names are apparently always case sensitive, causing
some skeletons to get loaded multiple times.
2013-02-27 12:33:36 -08:00
Sergey Shambir
03ca7f6123
NIF: added NiStencilProperty record handling
...
NiStencilProperty appears in Better Clothes plugin. If it not handled,
some parts of NPCs bodies will be not rendered.
2013-02-27 23:45:09 +04:00
Chris Robinson
b4b20622c6
Properly handle NiAlphaProperty values
2013-02-26 15:24:20 -08:00
Marc Zinnschlag
70b6b68005
Merge remote-tracking branch 'sergeyshambir/BBfix'
2013-02-26 22:37:45 +01:00
Chris Robinson
aefd12dfe0
Don't create meshes for collision shapes
2013-02-25 15:44:59 -08:00
Chris Robinson
429bc23cf6
Convert the 0-1 glossiness parameter to 0-255 for shininess
2013-02-25 13:08:40 -08:00
Chris Robinson
ff1ecb85c6
Don't bother storing the shape name for the submesh name
...
The submesh name Ogre has is completely useless to us
2013-02-25 08:22:57 -08:00
Chris Robinson
53eb553c57
Be a little more aggressive when looking to skip generating a skeleton
...
This is needed to handle the insane number of nodes and trishapes in
in_prison_ship.nif, as Ogre has a 256-bone limit for skeletons. This is a bit
sketchy, but it works.
2013-02-24 18:12:15 -08:00
Sergey Shambir
b1381ddd69
Nif loader: workaround for missed textures in BB/BH
...
Works for Better Bodies / Better Heads addons.
2013-02-25 04:12:41 +04:00
Chris Robinson
c60e858b02
Create bones for NiTriShape nodes, and attach the entities to them
...
Otherwise some models don't connect properly. NiTriShapes are more guaranteed
to have unique names than their parent nodes.
2013-02-24 12:42:32 -08:00
Chris Robinson
da5f11700f
Warn about unhandled node types before the controllers
2013-02-13 00:45:00 -08:00
Chris Robinson
5b2ca6fa7d
Don't complain about RootCollisionNode, it's handled in nifbullet
2013-02-13 00:43:29 -08:00
Chris Robinson
f4e587c72c
Always create a skeleton from a NIF when there's more than one NiNode
2013-02-09 17:48:23 -08:00
Chris Robinson
8b1e7b95ba
Attempt to load the skeleton source if it doesn't yet exist
2013-02-05 17:55:12 -08:00
Chris Robinson
bec538bfa1
Always declare operator<< for using a TextKeyMap with Ogre::Any
2013-02-04 09:19:59 -08:00
Chris Robinson
c45b4d6072
Clean up some NIF warning reports
2013-02-02 22:27:08 -08:00
Chris Robinson
e6e7c69013
Fix handling of filtered entities
2013-02-02 05:26:52 -08:00
Chris Robinson
c6a9ea5007
Use the skeleton as defined in the NIF model
...
The avoids having to duplicate models that get attached to different character
skeletons.
2013-01-30 22:37:39 -08:00
Chris Robinson
b6354c6282
Don't share skeleton instances between bounded parts on an NPC
...
However, a skeleton instance will still be shared between entities in an entity
list.
2013-01-30 09:29:16 -08:00
Chris Robinson
0853fa335c
Avoid redundant string concatenations
2013-01-29 01:36:17 -08:00
Chris Robinson
487c83e943
Rename nonaccum to animroot
2013-01-28 22:09:41 -08:00
Chris Robinson
e1d3933145
Remove an unused struct
2013-01-28 01:27:12 -08:00
Chris Robinson
b1ffdf855f
Reset the initial state of animated nodes on the skeleton instances
...
This is so the animation specifies node keyframe data based on the node's
parent. This will also be necessary for applying animations from different
skeleton sources, as they can have different binding positions (even native
.skeleton resources will need to specify animation data this way).
2013-01-26 04:48:53 -08:00
Chris Robinson
d836b3d0ff
Don't try to create animations if there's no text keys and nonaccum node.
...
Such meshes apparently use NiBSAnimationNode, a Bethesda-specific extension
which has animation-related info in its flags (values currently unknown).
2013-01-22 00:24:57 -08:00
Chris Robinson
6905bd18ba
Filter out the group name from the text keys
...
It's already in the animation name, and the text keys are animation-specific
anyway.
2013-01-21 02:59:12 -08:00
Chris Robinson
8e8900e422
Use the first bone with text keys as the nonaccum root.
2013-01-20 22:51:39 -08:00
Chris Robinson
536f8104e6
Do not create an 'all' animation.
2013-01-20 17:24:43 -08:00
Chris Robinson
94e30199d1
Merge remote-tracking branch 'zini/master' into animation2
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
2013-01-15 14:59:30 -08:00
Chris Robinson
b23fcb260c
Use the record index for finding the NiTriShape instead of the name
2013-01-13 08:00:04 -08:00
Nathan Jeffords
d5ebd6654d
cache loaded NIF files to eliminate reloads
...
Created a NIF file caching mechanism to prevent the system from
reloading a NIF during a startup and cell changes.
2013-01-10 21:47:02 -08:00
Nathan Jeffords
0989b44b41
spread some const around NIF loading
2013-01-10 21:32:47 -08:00
Chris Robinson
23ac1c2de5
Merge remote-tracking branch 'zini/master' into animation2
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
2013-01-09 20:52:12 -08:00
eduard
2dc0064cc2
more string lowercase
2013-01-09 20:51:52 +01:00
Chris Robinson
c4c8295e0b
Rename NIFLoader to Loader, and update some comments
2013-01-09 09:10:59 -08:00
Chris Robinson
4b7cc1372f
Some cleanup
2013-01-09 06:32:31 -08:00
Chris Robinson
a9bcbfd8d3
Use Node::_getFullTransform instead of building the matrix manually
2013-01-09 05:11:32 -08:00
Chris Robinson
015bb0bf1f
Use the calculated max time for the "all" animation
2013-01-09 04:30:32 -08:00
Chris Robinson
465fd9c8af
Offset animation times to start at 0
2013-01-09 04:21:56 -08:00
Chris Robinson
4054934f16
Store text keys for each animation
2013-01-09 02:51:25 -08:00
Chris Robinson
bb98542c5a
Build separate animations for each group
2013-01-09 01:40:38 -08:00