Chris Robinson
2db72ae607
Rename EntityList to ObjectList
12 years ago
Chris Robinson
834a6a1f00
Remove old, unused code
12 years ago
Chris Robinson
d97b341dc6
Rename NIFMeshLoader to NIFObjectLoader
12 years ago
Chris Robinson
63cbf7ddeb
Specify a default return for failed lookups
12 years ago
Chris Robinson
ca289a317c
Separate the UVController function out and make it generic
...
Also fix a timing bug in it.
12 years ago
Chris Robinson
6b151be3f4
Create particle systems even when MRK was specified
12 years ago
Chris Robinson
c283991126
Remove an unneeded method
12 years ago
Chris Robinson
ebcb4c66c3
Properly read and use the NIF root record list
12 years ago
Chris Robinson
59f1d4b047
Add support for NiUVController on meshes
12 years ago
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.
12 years ago
Chris Robinson
95730cc127
Create entities and particle systems for hidden objects
...
They're set as (in)visible as appropriate.
12 years ago
Chris Robinson
f764f243d2
Fix the particle quota
12 years ago
Chris Robinson
41ce5464c9
Recognize NiBSAnimationNode as a record type
...
And don't warn about animated nodes without textkeys
12 years ago
Chris Robinson
99b915e652
Fix some material warnings
12 years ago
Chris Robinson
af756bfa9c
Merge remote-tracking branch 'zini/master' into nifogre
12 years ago
Chris Robinson
b5017e0543
Implement NiParticleGrowFade
12 years ago
Chris Robinson
aa9df818a5
Add support for NiVisController
12 years ago
Chris Robinson
0631b28646
Prepare for supporting controller objects
12 years ago
scrawl
75b462b974
If alpha rejection was forced, we also need to force depth_write and depth_check
12 years ago
Chris Robinson
12fada2862
Don't offset the animation time to 0
12 years ago
Chris Robinson
dc9f5f93e7
Use a helper function to get node properties
12 years ago
Chris Robinson
b5719e0ec7
Create particle systems for NiAutoNormalParticles and NiRotatingParticles nodes
...
Very incomplete, but it's something to work with.
12 years ago
Chris Robinson
77ba0fbe73
Prepare for creating particles
...
This adds a vector of ParticleSystems to the EntityList, and modifies
corresponding code to handle it. It also loads the ParticleFX plugin so
particles can be created (although they aren't yet).
12 years ago
Chris Robinson
97d617d43f
Use more appropriate VBO settings
...
Unskinned meshes don't need dynamic VBOs; they aren't rewritten since their
transformations are handled by the modelview matrix. They also don't need the
local RAM copy (the "shadow buffer") since it's really only useful for skinning
purposes (though this means the VBO has to be readable for static geometry to
work).
12 years ago
scrawl
a9b56eedc3
Support NIF "glow maps", which are basically an emissive channel.
12 years ago
scrawl
5625d73d84
Bump texture support
12 years ago
Chris Robinson
095daca058
Create entities when iterating through the NIF
12 years ago
Chris Robinson
512534be11
Read the correct texture resource for other layers
12 years ago
Chris Robinson
f6f165852d
Better handle material texture layers
12 years ago
scrawl
6c1ff8caca
Merge branch 'master' into next
...
Conflicts:
apps/openmw/mwworld/weather.cpp
components/fileorderlist/model/datafilesmodel.cpp
12 years ago
scrawl
e30af28860
Markers should still have collision if they have a NiRootCollisionNode
12 years ago
scrawl
599207a92d
Transparency sorting should be enabled only when alpha blending is enabled
12 years ago
scrawl
7f8d659f3c
Fix transparency sorting
12 years ago
scrawl
2486ec6cb9
Material fixes (vertex colors, alpha)
12 years ago
Chris Robinson
2f14f26b96
Use the full unique mesh name for the material instead of the NIF name
12 years ago
Chris Robinson
4e1e0eaf62
Merge remote-tracking branch 'zini/master' into material-fix
...
Conflicts:
components/nifogre/ogrenifloader.cpp
12 years ago
Chris Robinson
5e50436a94
Convert some BooleanValues to StringValues
12 years ago
scrawl
05bd94effb
Merge branch 'master' of git://github.com/zinnschlag/openmw into graphics
12 years ago
scrawl
0f6fd80294
Merge branch 'master' of git://github.com/zinnschlag/openmw into graphics
...
Conflicts:
apps/openmw/mwgui/windowmanagerimp.cpp
apps/openmw/mwrender/npcanimation.cpp
files/mygui/openmw_settings_window.layout
12 years ago
Chris Robinson
21e2c287eb
Fix/workaround specular issues
...
The glossiness should not be multiplied by 255, however the values set in many
of Bloodmoon's meshes would look horrible otherwise. Now we can let the
NiSpecularProperty specify when to enable specular (which is supposed to
default to on, but due to the aforementioned meshes, we default to off).
12 years ago
Chris Robinson
7930aa82b2
Add missing depthFlags to the hash
12 years ago
Chris Robinson
8e35159ad4
Handle NiSpecularProperty
12 years ago
Chris Robinson
8c0326a49c
Handle NiZBufferProperty
12 years ago
Chris Robinson
03785f3ecd
Handle NiVertexColorProperty
12 years ago
Nathan Jeffords
109dff2d29
renamed high level NIF files...
12 years ago
Chris Robinson
fdfcd5bb47
Material properties are accumulative along the node tree
12 years ago
Chris Robinson
e3fd4b8429
Fix restoring the original texture name when the DDS check fails
12 years ago
Chris Robinson
e6b547b9ba
Merge remote-tracking branch 'zini/master' into transparency-fixes
12 years ago
Chris Robinson
166d529c50
Ensure the material is properly built after creating it
12 years ago
Chris Robinson
2c05a7477c
Improve checks for texture resource names that include the "textures\" prefix
12 years ago
Chris Robinson
eaa6813917
Workaround for meshes without any vertices
12 years ago
Chris Robinson
1168f15361
Don't disable depth writes when blending is enabled
12 years ago
Chris Robinson
a7220518b6
Merge remote-tracking branch 'zini/master' into skeleton-fixes
12 years ago
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.
12 years ago
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.
12 years ago
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.
12 years ago
scrawl
b82ee4872d
Merge branch 'master' of https://github.com/zinnschlag/openmw into graphics
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
12 years ago
scrawl
369f881170
Merge branch 'master' of https://github.com/zinnschlag/openmw into graphics
12 years ago
Chris Robinson
b4b20622c6
Properly handle NiAlphaProperty values
12 years ago
Marc Zinnschlag
70b6b68005
Merge remote-tracking branch 'sergeyshambir/BBfix'
12 years ago
Chris Robinson
aefd12dfe0
Don't create meshes for collision shapes
12 years ago
Chris Robinson
429bc23cf6
Convert the 0-1 glossiness parameter to 0-255 for shininess
12 years ago
Chris Robinson
ff1ecb85c6
Don't bother storing the shape name for the submesh name
...
The submesh name Ogre has is completely useless to us
12 years ago
scrawl
cacdb33b42
Merge branch 'master' into graphics
...
Conflicts:
apps/openmw/CMakeLists.txt
apps/openmw/mwrender/npcanimation.cpp
apps/openmw/mwrender/sky.cpp
12 years ago
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.
12 years ago
Sergey Shambir
b1381ddd69
Nif loader: workaround for missed textures in BB/BH
...
Works for Better Bodies / Better Heads addons.
12 years ago
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.
12 years ago
scrawl
2e6c63d9cd
Disable specular on NIF's
12 years ago
Chris Robinson
da5f11700f
Warn about unhandled node types before the controllers
12 years ago
Chris Robinson
5b2ca6fa7d
Don't complain about RootCollisionNode, it's handled in nifbullet
12 years ago
Chris Robinson
f4e587c72c
Always create a skeleton from a NIF when there's more than one NiNode
12 years ago
Chris Robinson
8b1e7b95ba
Attempt to load the skeleton source if it doesn't yet exist
12 years ago
Chris Robinson
bec538bfa1
Always declare operator<< for using a TextKeyMap with Ogre::Any
12 years ago
Chris Robinson
c45b4d6072
Clean up some NIF warning reports
12 years ago
Chris Robinson
e6e7c69013
Fix handling of filtered entities
12 years ago
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.
12 years ago
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.
12 years ago
Chris Robinson
0853fa335c
Avoid redundant string concatenations
12 years ago
Chris Robinson
487c83e943
Rename nonaccum to animroot
12 years ago
Chris Robinson
e1d3933145
Remove an unused struct
12 years ago
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).
12 years ago
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).
12 years ago
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.
12 years ago
Chris Robinson
8e8900e422
Use the first bone with text keys as the nonaccum root.
12 years ago
Chris Robinson
536f8104e6
Do not create an 'all' animation.
12 years ago
Chris Robinson
94e30199d1
Merge remote-tracking branch 'zini/master' into animation2
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
12 years ago
scrawl
6c6ce4a05c
Merge branch 'master' of https://github.com/zinnschlag/openmw into graphics
12 years ago
Chris Robinson
b23fcb260c
Use the record index for finding the NiTriShape instead of the name
12 years ago
scrawl
52516ca4b4
Merge branch 'master' into graphics
12 years ago
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.
12 years ago
Nathan Jeffords
0989b44b41
spread some const around NIF loading
12 years ago
scrawl
6ef85c46fd
Merge branch 'master' of https://github.com/zinnschlag/openmw into graphics
12 years ago
Chris Robinson
23ac1c2de5
Merge remote-tracking branch 'zini/master' into animation2
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
12 years ago
scrawl
455ec0996d
Shaders & textures are now loaded upon loading the NIF, instead of when the object becomes visible in the camera frustum. Should improve responsiveness.
12 years ago
eduard
2dc0064cc2
more string lowercase
12 years ago
Chris Robinson
c4c8295e0b
Rename NIFLoader to Loader, and update some comments
12 years ago
Chris Robinson
4b7cc1372f
Some cleanup
12 years ago
Chris Robinson
a9bcbfd8d3
Use Node::_getFullTransform instead of building the matrix manually
12 years ago
Chris Robinson
015bb0bf1f
Use the calculated max time for the "all" animation
12 years ago
Chris Robinson
465fd9c8af
Offset animation times to start at 0
12 years ago
Chris Robinson
4054934f16
Store text keys for each animation
12 years ago
Chris Robinson
bb98542c5a
Build separate animations for each group
12 years ago
Chris Robinson
e44729cd43
Make the text keys lower-case when extracting them
...
I think it's safe to assume all text keys are treated in a case-insensitive
manner. So far the only known NiTextKeyExtraData records are for animation
keys, which effectively are.
12 years ago
Chris Robinson
14d814d1d3
Avoid creating bones for NiTriShape nodes
...
The offset specified for them can be just as easilly handled by the tag point
they get connected to, and as such it's just needless extra nodes.
12 years ago
Chris Robinson
7ba09ff025
Catch errors from buildBones
12 years ago
Chris Robinson
8ebf49a35b
Only lower-case the model name
...
The skeleton name will already be lower-case
12 years ago
Chris Robinson
18389c7b04
Set non-bone nodes as manually controlled
12 years ago
Chris Robinson
e5ce55b6a4
Remove a hack
12 years ago
Chris Robinson
58d35dbfcf
Have createEntities' caller retrieve the text keys as needed
12 years ago
Chris Robinson
761914bdaa
Use a separate method to build the animation
12 years ago
Chris Robinson
8a086e3afb
Cache the mesh names from the mesh/skeleton pairs
12 years ago
Chris Robinson
3131e8dae6
Don't get the text keys if they're not being requested
12 years ago
Chris Robinson
683ced54a0
Store and retrieve the node text keys in the bones' user object bindings
12 years ago
Chris Robinson
a3d33db415
Store a NiNode's NiTextKeyExtraData in a user object binding on Ogre::Bone
12 years ago
Chris Robinson
1d4d67f811
Avoid underflows if the texture name doesn't include a '.'
12 years ago
Chris Robinson
3f19b13695
Merge remote-tracking branch 'zini/master' into animation2
12 years ago
Nathan Jeffords
2181393518
change texture renaming logic to increase performance
...
ResourceGroupManager::resourceExistsInAnyGroup is slow (at least on
windows) if the tested path does not exist, but is fast if it does (due
to finding it in the index). This change tries the '.dds' version of the
name first, and reverts to the original if the '.dds' version was not
found.
12 years ago
Chris Robinson
61ad8bb3dd
Use a list of mesh names instead of mesh objects
12 years ago
Chris Robinson
019893b5c6
Get rid of some unnecessary case-insensitive compares
12 years ago
Chris Robinson
cd8515396a
Use a multimap to store the text keys
12 years ago
Chris Robinson
9b491edbf8
Small cleanup for loading animation keyframes
12 years ago
scrawl
906d290935
Markers are actually hidden now. Inspecting the markers in NifSkope revealed why it didn't work previously: the flag that is being looked for is not present in any of the markers, nor any other flag or extra data to identify them. However, the root node name always starts with "marker", making it possible to do a string search.
12 years ago
Marc Zinnschlag
e3d893b001
Merge remote-tracking branch 'jhooks/animationsmooth'
13 years ago
scrawl
4f1bcb749f
turned off redundant edge list building
13 years ago
Jason Hooks
5202b11235
just moving a comment
13 years ago
Jason Hooks
4a219404fc
Super smooth animations; 100 PERCENT COMPLETE
13 years ago
Jason Hooks
f21df64808
changing a few things around
13 years ago
Jason Hooks
cc776810e2
smoother animations
13 years ago
Marc Zinnschlag
1da56e2832
removed some unused variables
13 years ago
Jason Hooks
d14cc5a435
update master
13 years ago
scrawl
281e15f58e
consider all material properties for nif material sharing, instead of just the texture
13 years ago
Chris Robinson
4f46c8a8db
Use a functor for the mismatch compare function
13 years ago
Chris Robinson
36be1536d9
Return text keys from NIFs when creating entities
13 years ago
scrawl
f8d6a36196
Merge branch 'master' into nif-cleanup
...
Conflicts:
apps/openmw/mwrender/sky.cpp
apps/openmw/mwrender/sky.hpp
components/nifogre/ogre_nif_loader.cpp
components/nifogre/ogre_nif_loader.hpp
13 years ago
Chris Robinson
4035d7370e
Fix name/filter comparison
13 years ago
Chris Robinson
d8cb685543
Interpolate keyframes when creating them
...
Probably not fully correct, but better than nothing.
13 years ago
Chris Robinson
c5b9098517
Remove an unused field from EntityList
13 years ago
Chris Robinson
4bc93ecd1a
Use the skeleton name for the main animation
13 years ago
Chris Robinson
4210880c06
Load the animation tracks into Ogre
13 years ago
Chris Robinson
0986cd5962
Get the animation controller target names
13 years ago
Chris Robinson
c2acf47d88
Store the list of keyframe controllers when building the bones
13 years ago
Chris Robinson
f6c837468f
Load the proper NIF skeleton
13 years ago
Chris Robinson
e760219953
Use a unique loader for each skeleton resource
13 years ago
Chris Robinson
c9b1f72d81
Use a case-insensitive compare for the part filter
13 years ago
Chris Robinson
bd74ab027a
Mirror left-sided parts
13 years ago
Chris Robinson
4af1bce659
Restore and fix some missing parts
13 years ago
Chris Robinson
d9b64b77ec
Attach skinned parts to the scene node instead of the named bone
13 years ago
Chris Robinson
5154188110
Allow specifying an alternate skeleton for mesh skinning
13 years ago
Chris Robinson
626dcd54dc
Store the skeleton name with the mesh resource loader instead of a flag
13 years ago
Chris Robinson
04b244cf9e
Use the mesh's skeleton to transform shapes into "bind pose" instead of the NIF nodes
13 years ago
Chris Robinson
2890904fb5
Use lowercase names for the mesh and skeleton resources
...
To reduce the risk of duplicates due to different capitalizations.
13 years ago
Chris Robinson
e8ff304562
Fix the initial normal vector for vertex fixups
13 years ago
Chris Robinson
3b29d280b9
Filter out skinned shapes that don't match the bone name
13 years ago
Chris Robinson
db948969c9
Attach NPC parts to the proper bone
13 years ago
Chris Robinson
a32740cf5e
Remove an unused parameter
13 years ago
Chris Robinson
b04c3cbcac
Store the entities' root node in the EntityList
13 years ago
Chris Robinson
92546ca18d
Move the last bits of code to createEntities
13 years ago
Chris Robinson
1c544682d5
Stub handling for NiTextKeyExtraData to suppress some spam
13 years ago
Chris Robinson
496343b714
Use the proper member for the NIF type string
13 years ago
Chris Robinson
3efd2030e2
Create entities when loading NIFs for creatures
13 years ago
Chris Robinson
3dedac5cb1
Create mesh entities for objects when loading the NIF
13 years ago
Chris Robinson
6047dc6a0c
Merge remote branch 'zini/master' into nif-cleanup
...
Conflicts:
apps/openmw/mwrender/animation.cpp
apps/openmw/mwrender/animation.hpp
apps/openmw/mwrender/creatureanimation.cpp
apps/openmw/mwrender/npcanimation.cpp
apps/openmw/mwrender/npcanimation.hpp
components/nifogre/ogre_nif_loader.hpp
13 years ago
scrawl
4434fb640e
Merge branch 'master' into shadersystem
13 years ago
Chris Robinson
93f0043afc
Set the mesh's attach point as the NiTriShape's node
13 years ago
guidoj
0549e949ba
Mostly removal of unnecessary #include's and a little clean up
13 years ago
Chris Robinson
65c20f128f
Build bones for non-NiNode nodes (NiTriShapes, etc)
13 years ago
Chris Robinson
fefbf86531
Use Ogre's matrix ops to transform normals
13 years ago
Chris Robinson
bf26f029f9
Fix some skinning-related transformations
13 years ago
Chris Robinson
df76c324a4
Handle the MRK text string marker
13 years ago
Chris Robinson
12f1785882
Use default bone names for duplicate names
13 years ago
Chris Robinson
75ce10c580
Don't load data for hidden meshes
13 years ago
Chris Robinson
ad75b47472
Build and set up a skeleton for meshes
13 years ago
Chris Robinson
b1f7fd9f7b
Pre-transform the mesh vertices when there's no skinning or skeleton
13 years ago
Chris Robinson
441a5c2da2
Load NiTriShapes into Ogre meshes
13 years ago
Chris Robinson
3029c221ef
Create materials when creating meshes
13 years ago
scrawl
509e9d7034
Merge branch 'master' into shadersystem
13 years ago
Chris Robinson
b4c8375f3c
Merge remote branch 'zini/master' into nif-cleanup
...
Conflicts:
components/bsa/bsa_archive.cpp
13 years ago
Chris Robinson
9028cfe83c
Look for the NiTriShape when the mesh resource wants to load
...
It's still not loaded yet.
13 years ago
Chris Robinson
69ed73399a
Avoid exposing the NIF mesh resource loading class
13 years ago
Chris Robinson
300730a834
Create the skeleton resource from NIFs
...
Note they are not loaded yet.
13 years ago
Chris Robinson
bd68f7bd33
Remove final direct uses of Mangle::Stream
13 years ago
Chris Robinson
6a447c88fb
Create meshes from the NiTriShapes in the NIF.
...
This doesn't actually load them yet. It's also very slow for certain NIFs.
13 years ago
scrawl
d41050fb79
merge
13 years ago
scrawl
7d5b94709d
Merge branch 'master' into shadersystem
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
13 years ago
Chris Robinson
939d0d2fc5
Return a list of meshes and the skeleton from NIFLoader::load
13 years ago
Chris Robinson
fdfe40a55a
Use a different loader object for each NIF mesh
13 years ago
Chris Robinson
386ac56bda
Remove the NIF loader and code to manually transform the vertices
...
This currently breaks just about everything. They should come back as it's all
reimplemented, though.
13 years ago
Chris Robinson
3f11b6b1ae
Cleanup a couple unneeded misc component references
13 years ago
Chris Robinson
86b37c6c11
Move the velocity out of the transformation object
13 years ago
Chris Robinson
645b507ba0
Return a reference to the RecordPtr from operator[] for consistency
...
RecordListT is supposed to be a list of RecordPtrT objects.
13 years ago
Chris Robinson
348b5fa207
Merge remote branch 'zini/master' into nif-cleanup
...
Conflicts:
components/nifbullet/bullet_nif_loader.cpp
13 years ago
Chris Robinson
ca37706b34
Use Ogre types for Matrix and Vector objects
13 years ago
Chris Robinson
98ae7168b1
Fix double-incrementing a pointer
13 years ago
Chris Robinson
b3aa453f9a
Use Ogre data streams for loading NIFs
13 years ago
Chris Robinson
0143cacd2b
Avoid returning pointers from NIFFile
13 years ago
Chris Robinson
d3a31a24ce
Use proper strings and vectors instead of slice arrays for NIF files
...
Slice arrays use pre-allocated pointers whose memory is managed externally. This is
unnecessary and ultimately detrimental since it prevents any kind of data fixup
(e.g. little endian to big endian, p[adding handling), and it also makes it difficult
to use Ogre data streams.
13 years ago
scrawl
b803d0e949
converted shadow caster shader
13 years ago
scrawl
81d30ff63a
temp commit
13 years ago
gugus
03f7740474
Merge branch 'master' of https://github.com/zinnschlag/openmw.git into objectRotationScaling
...
Conflicts:
apps/openmw/mwclass/npc.cpp
apps/openmw/mwscript/docs/vmformat.txt
apps/openmw/mwworld/worldimp.hpp
13 years ago
scrawl
e517e75d09
update
13 years ago