Commit Graph

362 Commits

Author SHA1 Message Date
Alexei Dobrohotov 46ec40fa92 Make sure NIFLoader avoids working further with empty geometry 2020-12-18 01:22:34 +03:00
Alexei Dobrohotov c0b9823372 Read BSShaderProperty and handle NiGeometry properties 2020-12-15 00:06:43 +03:00
Alexei Dobrohotov 42226533d8 Handle BSLODTriShape
Its levels of detail are currently not handled
2020-12-15 00:06:43 +03:00
Alexei Dobrohotov 8fd45d85ec Unify NiGeometry/NiGeometryData handling 2020-12-15 00:06:43 +03:00
Alexei Dobrohotov 8ca324af0a Handle emissive TexEnv creation in one place 2020-12-15 00:06:43 +03:00
Alexei Dobrohotov 5310dd6807 Clean up particle vertex handling 2020-12-15 00:06:43 +03:00
Alexei Dobrohotov db9c174ca8 Make NIF particle node handling more generic 2020-11-30 12:33:18 +03:00
AnyOldName3 86fad60c7d Merge branch 'roots' into 'master'
Handle multiple root nodes (bug #5604)

Closes #5604

See merge request OpenMW/openmw!428
2020-11-29 01:25:22 +00:00
Alexei Dobrohotov 5b6377b061 Handle multiple root nodes (bug #5604) 2020-11-28 13:25:39 +03:00
Nelsson Huotari f78a5d795c Separate keyframes logic to provide basis for osgAnimation integration. 2020-11-18 22:48:47 +02:00
Alexei Dobrohotov a46699fb1e Handle NiGeomMorpherController interpolator list 2020-11-10 23:23:11 +03:00
Alexei Dobrohotov f3f5dcb016 Read a few more NIF types
NiFloatInterpolator, NiPoint3Interpolator, NiTransformInterpolator, NiBoolInterpolator
Update a few existing controller records
Update NiSkinInstance
2020-11-10 22:37:39 +03:00
Alexei Dobrohotov c79f509652 Misc NIF loader improvements
Bullet NIF loader cleanup
Collect all extra records of a node
Remove code duplication in geometry type detection in OSG-side NIF loader
2020-11-08 13:23:18 +03:00
Alexei Dobrohotov 4fc5e22e9e NIF fixes and cleanup
Get rid of NodeIndexHolder
Use unsigned 32-bit type for NIF record index
Fix calculation of the number of UV sets
2020-10-26 02:51:25 +03:00
Alexei Dobrohotov 71056c6014 Clean up palettized NiPixelData loading 2020-10-25 14:37:29 +03:00
Andrei Kortunov 8ca3c3b123 Mark overrided methods by override keyword 2020-10-16 22:18:54 +04:00
Alexei Dobrohotov 9f08dc9968 Revert "Merge branch 'skinning' into 'master'"
This reverts merge request !327
2020-10-08 23:24:28 +00:00
Alexei Dobrohotov 6be808e301 RigGeometry: convert some pairs to structs 2020-10-08 03:05:59 +03:00
Alexei Dobrohotov 29ccb09da5 Introduce some extended NIF definitions 2020-10-04 13:18:56 +03:00
AnyOldName3 a338e8c561 Actually set the uvSet value
This got lost when uvSet was made into a local variable.
2020-09-24 17:13:09 +01:00
AnyOldName3 b2cb98d30e Fix NiFlipController
NiFlipControllers *always* affect the base texture, even if no base
texture is bound. When no base texture is bound, they default to UV set
zero and to having wrapped UV coordinates, instead of using the settings
for the disabled base texture.
2020-09-16 23:03:42 +01:00
Capostrophic 8c213cbfb1 Avoid optimizing animated shapes once again (regression #5565) 2020-08-05 22:39:48 +03:00
Capostrophic 46825e8a4d Move NIF record index back to a separate user object
This makes sure it's never erroneously optimized out. NodeIndexHolders don't need to be cloned as their record index is never supposed to be changed.
2020-07-26 09:57:43 +03:00
Capostrophic a61267f57d Replace NodeUserData with a custom transform node 2020-07-26 09:57:43 +03:00
Capostrophic 4c9cefefdd Get rid of NifOsg::CollisionSwitch 2020-07-26 09:57:43 +03:00
Bret Curtis 0c2fea8254
Merge pull request #2932 from elsid/replace_open_threads
Replace OpenThreads by std types
2020-07-04 13:11:23 +02:00
Frederic Chardon f268bc13f1 Do not set particle lifetime to 0 (#5472) 2020-07-01 11:04:18 +00:00
elsid 40ad87bc4d
Replace OpenThreads by std types 2020-06-25 22:16:09 +02:00
bzzt lost a hitlab login f12879a04c allow statesetupdater as cullcallback = faster + works in paging
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
Capostrophic 7aca18f92b Handle NiLines (feature #5445) 2020-05-30 19:09:34 +03:00
Capostrophic 74a74209ac Allow junk (data-less) NiParticleColorModifiers 2020-05-26 15:08:10 +03:00
Capostrophic 7a9403aeed Remove unnecessary casts 2020-05-26 15:01:26 +03:00
Capostrophic fc9a10ba48 Streamline node controller handling
Reduce code duplication
Allow non-animated nodes controlled by NiVisController to be optimized out
2020-05-26 15:00:47 +03:00
Capostrophic 89a2c69a61 Support particle node transformations 2020-05-25 23:51:15 +03:00
elsid a59e25e093
Optimize MWRender::Animation::hasAnimation
Use a set to check for group start existence.
Reduce time taken from 2.6% to 0.08% and
MWMechanics::MechanicsManager::update from 7% to 5%
in relative CPU time usage for a scene with ~100 actors.
2020-05-21 16:21:11 +02:00
Capostrophic b665fed8f2 Introduce NiGeometry abstraction 2020-05-14 10:52:27 +03:00
Capostrophic 30558c2434 Try to resolve CI concerns 2020-05-14 10:00:33 +03:00
Capostrophic 915ffe2241 Handle non-node roots more gracefully (bug #5416) 2020-05-14 00:57:00 +03:00
Capostrophic 30fc2e3e5e Add basic NiPathController support (movement only) 2020-05-13 18:01:22 +03:00
Capostrophic b91d0d889f Fix warning
/home/travis/build/OpenMW/openmw/components/nifosg/nifloader.cpp:615:42: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
                    if (hasVisController |= (ctrl->recType == Nif::RC_NiVisController))
                        ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/travis/build/OpenMW/openmw/components/nifosg/nifloader.cpp:615:42: note: place parentheses around the assignment to silence this warning
                    if (hasVisController |= (ctrl->recType == Nif::RC_NiVisController))
                                         ^
                        (                                                             )
2020-05-10 14:38:07 +03:00
Capostrophic 1bf2ddac4d Cleanup
Move static variable declaration out of the loop
Remove redundant boolean argument from applyDrawableProperties()
Improve HeightCullCallback class formatting
2020-05-07 18:54:09 +03:00
Bret Curtis f51476a3c5
Merge pull request #2816 from Capostrophic/switchlod
CollisionSwitch and Switch/LOD node fixes
2020-05-01 23:49:08 +02:00
Bret Curtis bf6daa7269
Merge pull request #2811 from Capostrophic/emitter
Allow particle emitters to be attached to an arbitrary node
2020-04-30 14:56:49 +02:00
Capostrophic 63fe02b1ba CollisionSwitch and Switch/LOD node fixes
Properly apply transformations to both switch and LOD nodes
Allow both NiSwitchNode and NiLODNode to be the root node
Properly add CollisionSwitch into the scene graph
2020-04-30 15:04:57 +03:00
Capostrophic 89282d14aa Fix collision switch node mask (again) 2020-04-29 17:18:39 +03:00
Capostrophic f516178ec9 Fix particle processor cloning
Extend emitter handling comment in NIF loader
2020-04-29 11:14:22 +03:00
Capostrophic c08f9e13af Allow emitters to be attached to nodes after particle systems 2020-04-29 11:13:45 +03:00
Capostrophic 3b7fb9ec09 Use pipe-equal operator 2020-04-28 10:00:46 +03:00
Capostrophic bbd15cccd5 Fix hidden node with NiVisController optimization 2020-04-27 00:21:34 +03:00
Bret Curtis 68549828b4 create static functions to set/get hidden node mask; compromise on magic numbers to make things easier to understand 2020-04-22 13:34:19 +02:00
Bret Curtis e1a5435531 Merge commit '8a8107e8' 2020-04-22 13:22:54 +02:00
Chris Djali 71c46204ec
Merge pull request #2781 from mp3butcher/partsysfix
Particle System shading and lighting (fixing bug#3676 and #4949)
2020-04-20 21:29:50 +01:00
Julien Valentin 886fd5efc9 enable particle shading and force particle normal to (0.3,0.3,0.3)
and update changelog
2020-04-20 22:15:34 +02:00
Bret Curtis 8a8107e837 as it says; revert vismask and uncomplicate openmw 2020-04-20 20:57:38 +02:00
Capostrophic c3cc8ee1e1 Disable specular lighting for 4.0.0.2 and earlier files 2020-04-17 14:08:29 +03:00
Julien Valentin 6e2a651252 fix particle alpha 2020-04-16 02:48:42 +02:00
Capostrophic e1d635cd71 Make extra sure groups with special behavior aren't optimized out 2020-04-10 18:11:21 +03:00
Capostrophic 80239235d3 Always create NiGeometry nodes as MatrixTransform 2020-03-31 13:04:03 +03:00
Capostrophic 7319eda54e Correct drawable property apply order (bug #5313) 2020-03-23 20:47:47 +03:00
Capostrophic 2b3ecff004 Remove broken fixed function pipeline support
Added by mistake
2020-03-03 21:50:50 +03:00
Capostrophic 6999f1fd28 Add an option to apply lighting to environment maps 2020-03-03 20:08:59 +03:00
Capostrophic 19a7245251 Add bump mapping support 2020-03-03 13:32:30 +03:00
Andrei Kortunov 8c177f0306 Take in account transformations of NiCollisionSwitch 2020-02-25 11:09:36 +04:00
Andrei Kortunov 77d6fe46ca Handle NiCollisionSwitch node 2020-02-19 12:14:21 +04:00
Andrei Kortunov 84979fa8b7 Move VisMask to components 2020-02-16 16:03:35 +04:00
Capostrophic e363d5df21 Some more minor NIF support fixes 2020-02-02 17:28:46 +03:00
capostrophic e654a52b70 More NIF adjustments
Constant interpolation support
2020-01-02 13:07:27 +03:00
Andrei Kortunov c41562fa27 Make TextureProperty warnings more informative 2019-12-15 13:56:20 +04:00
Capostrophic 909c8ef0ea Avoid working with empty controller data (bug #5229) 2019-12-14 20:35:23 +03:00
Andrei Kortunov 5b5c52d92e Handle NiKeyframeController for NiTriShape (feature #5224) 2019-12-10 16:20:27 +04:00
Andrei Kortunov 51cfd070c6 Use transformations of NiSwitchNode 2019-11-09 21:43:08 +04:00
Capostrophic 8056107c6e More minor NIF improvements 2019-10-16 01:36:43 +03:00
Capostrophic 83f61d1636 Support target color in NiMaterialColorController (bug #5159) 2019-09-16 22:31:18 +03:00
Capostrophic 8baddefdbd Refactor extra data and particle modifier handling
Objects no longer inherit from extra data class
"Controlled" harmful abstraction no longer exists
Introduced NiParticleModifier/NiParticleCollider abstractions
Extra data size reading moved into the base read() method
2019-09-13 20:26:22 +03:00
Capostrophic c0438a0c6b Avoid using getPtr on empty geometry data 2019-08-26 23:01:58 +03:00
Alexei Dobrohotov 64fde2d7c2
Fix crash when NiGeometry lacks NiGeometryData 2019-08-24 22:34:56 +03:00
capostrophic 9c7474f88c Implement NiPalette support (feature #4882) 2019-08-16 20:21:09 +03:00
capostrophic efa463af8f Fix non-tiling textures clamp mode (bug #5137) 2019-08-16 16:26:11 +03:00
Alexei Dobrohotov 3668473d6d
Fix comment 2019-08-10 19:22:46 +03:00
Alexei Dobrohotov eaedf34975
Fix ventriloquism 2019-08-10 19:21:36 +03:00
Alexei Dobrohotov 307e9ba666
Merge pull request #2413 from akortunov/weapon
Refactor weapon types behaviour
2019-08-09 20:02:10 +03:00
Andrei Kortunov f0cef772fa Refactor weapon types behaviour
1. Move weapon types behaviour from switches to the table (should allow
us to de-hardcode weapon types later)
2. Gereralize bones injection to actors skeletons (instead of using the
hardcoded xbase_anim_sh.nif)
2019-08-09 19:40:27 +04:00
capostrophic 9e93c9ecd2 Fix multiple-strip NiTriStrips loading 2019-08-08 22:48:24 +03:00
capostrophic 93f73fe87b Fix comparison 2019-08-08 20:41:46 +03:00
capostrophic 7fc3153f62 Reduce code duplication further 2019-08-08 20:29:45 +03:00
capostrophic 91efdf18a9 Reduce Bullet part code duplication 2019-08-08 19:02:08 +03:00
capostrophic ed154f0e2c Fix typo and replace failsave with an assert 2019-08-08 18:42:58 +03:00
capostrophic 7cc70ffb50 Reduce skinned shape code duplication 2019-08-08 18:37:42 +03:00
capostrophic bd6c455fd4 Reduce code duplication for non-skinned shapes 2019-08-08 18:12:46 +03:00
capostrophic b4f54651f8 Make sure strips have valid size 2019-08-08 17:15:33 +03:00
capostrophic adb06913f7 Add basic NiTriStrips rendering (no physics yet) 2019-08-08 17:09:06 +03:00
capostrophic 8efbdeaa57 Load NiTriStrips/NiTriStripsData (don't do anything yet) 2019-08-08 17:09:06 +03:00
capostrophic 6928adcee1 Prevent front() and operator[] from causing undefined behavior 2019-08-04 14:47:33 +03:00
AnyOldName3 bb72ed9744 Merge branch '9' into 'master'
IMPORTANT!! racingcrashfix #4766

See merge request OpenMW/openmw!119
2019-07-01 15:36:40 +00:00
Capostrophic e06178bf0f Make sure shadow shapes aren't visible (bug #5063) 2019-06-22 18:13:41 +03:00
Capostrophic 7c8360d0f3 Use NiSwitchNode initial index field 2019-06-09 01:58:02 +03:00
bzzt ffe8bbd2dd racingcrashfix #4766 2019-05-29 13:37:00 +00:00
Andrei Kortunov 861d41f4a4 Native graphics herbalism support (feature #5010) 2019-05-02 23:03:47 +04:00
bzzt a567111400 Use emplace instead of find-assign 2019-02-27 00:10:34 +03:00
Bret Curtis d4564a9be7
Merge pull request #2180 from akortunov/includes
Remove redundant includes
2019-02-24 01:14:16 +01:00