Commit Graph

424 Commits (loadfix)

Author SHA1 Message Date
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
scrawl a095572205 fixed some textures, started with sky 13 years ago
scrawl 33c48b9481 update 13 years ago
scrawl 8e683c2e05 vertex colors 13 years ago
scrawl 9bd888d9a1 transparency 13 years ago
scrawl 19ecc7f890 fix performance 13 years ago
scrawl 4ea6530772 hello world. 13 years ago
Marc Zinnschlag c85aaafac2 more include cleanup (most removing Ogre.h) 13 years ago
Jason Hooks fbde798968 merge 13 years ago
Jason Hooks 5028f9926d Bullet scale solution 13 years ago
scrawl c85c794c86 fixed some cppcheck issues 13 years ago
scrawl ddb0a91994 addition to last commit 13 years ago
Marc Zinnschlag afa859a6a6 Merge remote branch 'jhooks/clothingarmor'
Conflicts:
	apps/openmw/mwrender/npcanimation.cpp
13 years ago
scrawl 95f87a8abf more or less complete list for morrowind.bsa (thanks to artorius) 13 years ago
scrawl a727bcd4a4 override nif transparency settings (part 1) 13 years ago
scrawl 2a4fcf42a3 basic shadows 13 years ago
Jason Hooks 74deb5588d Post merge 13 years ago
scrawl cdea19206c Revert "more accurate fog, TODO: apply this to the terrain"
This reverts commit 96c37d3e7c.
13 years ago
scrawl 96911ada95 restored render queue of transparent objects, they are now part of the mrt textures
this fixes some issues with transparent objects not visible in the refraction
13 years ago