psi29a
bb9884c024
Merge branch 'split_stringops' into 'master'
...
Split components/misc/stringops.hpp into multiple headers
See merge request OpenMW/openmw!2233
2022-08-09 18:06:40 +00:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
...
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
Alexei Kotov
014de72644
Use NiParticleSystemController's color for the initial particle color
2022-08-03 14:36:51 +03:00
Andrei Kortunov
c36c28e8f9
Move NIF implementation to cpp files
2022-07-21 15:54:52 +04:00
Andrei Kortunov
fe785ea788
Don't cast away const when we can avoid it
2022-07-03 16:36:41 +04:00
glassmancody.info
b09411d396
allow soft particles on meshes and add extra data extensions
2022-06-29 18:15:12 -07:00
Alexei Kotov
e673f9fa76
Clean up NIF flags
2022-06-22 01:58:16 +03:00
cody glassman
72fdf40e06
better support for particle arrays when spawning at node positions
2022-05-15 13:41:52 -07:00
elsid
4509b05bc8
Use std::make_shared instead of new
...
make_shared allocates single storage for ref counter and the object.
std::shared_ptr<T>(new T) allocates 2 storages.
2022-04-08 22:50:09 +02:00
psi29a
1ac7eaa6b0
Merge branch 'NiFltAnimationNode' into 'master'
...
Add NiFltAnimationNode support
Closes #6684
See merge request OpenMW/openmw!1732
2022-04-06 23:59:04 +00:00
Wolfgang Lieff
373776170d
refactor for NiFltAnimationNode
2022-04-07 00:49:08 +02:00
Bret Curtis
af41560c3f
reverse the reverse flag check; set duration to 0.2f which matches openmw to morrowind speed which is measured in 1/5 seconds
2022-04-07 00:09:11 +02:00
Bret Curtis
0db5415976
refactor to use mInternal, support Flag_Reverse and updated changelog/authors.md
2022-04-07 00:09:11 +02:00
Wolfgang Lieff
ead73fce31
initial NiFltAnimationNode support
2022-04-07 00:09:11 +02:00
Alexei Dobrohotov
eafa66ff40
Don't consider NiCollisionSwitch unoptimizeable
2022-04-06 06:42:06 +03:00
Alexei Dobrohotov
dd473d06df
Implement gloss-mapping (feature #6541 )
2022-02-18 06:24:06 +03:00
psi29a
b011809056
Merge branch 'master' into 'sort_me_baby_one_more_time'
...
# Conflicts:
# components/nif/niffile.cpp
2022-02-17 09:24:50 +00:00
elsid
2a87cf1720
Replace unordered_map by switch statement
...
Add handling for missing Nif::BSLightingShaderType::ShaderType_SkinTint. Use
string_view instead of string to avoid lifetime issues for returning value.
osg::Object::setUserValue will anyway copy string.
2022-02-11 22:12:39 +01:00
elsid
e1fe501013
Use proper type for Record::recType
2022-02-11 21:52:00 +01:00
glassmancody.info
712107de2d
nisortadjust support
2022-02-10 11:59:49 -08:00
psi29a
9183fa897e
Merge branch 'particle_vertex_palooza' into 'master'
...
Support vertex emitters (#6592 )
Closes #6592
See merge request OpenMW/openmw!1638
2022-02-09 08:35:09 +00:00
glassmancody.info
a05e029aa0
search for stencil enabled flag correctly
2022-02-08 13:49:05 -08:00
glassmancody.info
88f02913d5
use vertex emitters on array particle controllers when appropriate
2022-02-07 19:46:42 -08:00
glassmancody.info
8c2c322d92
add stencil to water RTTs, reword some comments
2022-02-07 14:35:15 -08:00
glassmancody.info
bbc9c53423
support morrowind stenciling
2022-02-07 11:51:59 -08:00
Alexei Dobrohotov
4521d3987c
Fix out of bounds UV set handling
2022-01-28 01:15:15 +03:00
elsid
3f14011087
Support multiple parents for NIF nodes
...
Choose a parent base on which node is used to iterate over children nodes.
This leads to duplicate handing of child nodes. A node will be handled so many
times how many parents it has.
For example:
p1 p2
\ /
c
Will be handled as:
p1 p2
| |
c c
If c has children they will be handled X times c is handled.
2022-01-22 01:02:31 +01:00
psi29a
d8d7a3b372
Merge branch 'softparticles_patch' into 'master'
...
Shadervisitor adjustments and Mac OS fix for soft particles
See merge request OpenMW/openmw!1380
2022-01-06 13:13:52 +00:00
Alexei Dobrohotov
a64057fb36
Some NIF cleanup
...
Clean up keyframe controller construction
Make LOD and switch node generation static
Clarify decal map implementation
2021-12-11 16:16:16 +03:00
elsid
a665a38aca
Use MurmurHash3_x64_128 for file hash
2021-11-21 17:05:59 +01:00
glassmancody.info
9389cfaa42
mac os driver workaround and shadervisitor fixes
2021-11-20 18:39:20 -08:00
Cody Glassman
d85f772269
Depth refactor
2021-11-21 02:25:05 +00:00
Alexei Dobrohotov
50b90a594d
Loading and basic handling of BSLightingShaderProperty
2021-11-13 22:52:45 +03:00
psi29a
ba0aae06ca
Merge branch 'morphyslaw' into 'master'
...
Morph geometry more like NifSkope (bug #6416 )
Closes #6416
See merge request OpenMW/openmw!1389
2021-11-13 18:42:17 +00:00
psi29a
41bd20e358
Merge branch 'bullet_shape_hash' into 'master'
...
Store BulletShape source file name and content hash
See merge request OpenMW/openmw!1379
2021-11-13 13:33:22 +00:00
Alexei Dobrohotov
c7edca559b
Morph geometry more like NifSkope (bug #6416 )
2021-11-13 15:58:59 +03:00
elsid
d7041613ef
Store BulletShape source file name and content hash
2021-11-11 00:27:18 +01:00
Alexei Dobrohotov
9880c43c86
Add specular strength shader parameter
2021-11-10 19:58:06 +03:00
glassmancody.info
8c3b00164e
soft particles
2021-10-30 12:19:31 -07:00
Bo Svensson
b2af81bc18
converts remaining osg::NodeCallback ( #3147 )
...
With this PR we convert remaining instantiations of the deprecated osg::NodeCallback in Open MW to SceneUtil::NodeCallback.
2021-10-05 14:21:12 +02:00
Bo Svensson
2568f119a4
reapplies PR without npe ( #3137 )
...
* avoids creating empty statesets on drawables
Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.
* renderingmanager.cpp
* nifloader.cpp
* nifloader.cpp
* shadervisitor.cpp
2021-10-01 10:11:00 +02:00
Andrei Kortunov
e109d86489
Revert "avoids creating empty statesets on drawables ( #3132 )"
...
This reverts commit 957c25a491
.
2021-09-29 21:01:22 +04:00
Bo Svensson
957c25a491
avoids creating empty statesets on drawables ( #3132 )
...
* avoids creating empty statesets on drawables
Currently, we attempt to skip creating state on drawable nodes when this state matches the default state. This attempt is incomplete because we still create an avoidable empty stateset in the default case.
* renderingmanager.cpp
* nifloader.cpp
2021-09-29 09:58:19 +02:00
Alexei Dobrohotov
0922d0b105
Clean up text key extraction
2021-08-22 05:56:30 +03:00
Alexei Dobrohotov
956edca524
Don't re-enable specularity w/ material controller for MW models
2021-08-09 21:17:13 +03:00
Alexei Dobrohotov
1fc7cb8191
Don't use FreezeOnCull for any particle system ( #4744 )
2021-08-08 03:36:35 +03:00
glassmancody.info
09e03fde2e
refactor and fix wobbly shores
2021-08-04 17:49:57 -07:00
glassmancody.info
70fac33940
initial reverse-z depth implementation
2021-08-04 17:39:11 -07:00
Alexei Dobrohotov
11694ba87f
Correct dark map and detail map alpha handling
...
Comment texenv usage in NIF loader
2021-07-29 04:48:59 +03:00
AnyOldName3
e42b3bf960
Adapt destination alpha factor for AMD
...
As discussed in the comment, it's unclear to me whether this is a driver
bug or mandatory behaviour only AMD implement.
Some more context is here:
https://gitlab.com/OpenMW/openmw/-/issues/6119#note_618245903
2021-07-04 23:00:33 +01:00
glassmancody.info
4bbbbb00f6
use particle data for particle system quota
2021-05-14 10:52:19 -07:00
Dobrohotov Alexei
19f0b80983
Improve null root handling
2021-05-05 02:41:30 +03:00
Andrei Kortunov
6d351b2bdd
Fix MSVC 4706 warnings
2021-04-23 22:53:59 +04:00
Andrei Kortunov
2d869ca9ff
Fix node masks signed/unsigned mismatch
2021-04-20 10:52:51 +04:00
Andrei Kortunov
7d5c5f8a24
Do not assign negative values to unsigned variables
2021-04-19 16:08:19 +04:00
Alexei Dobrohotov
2fdbe9b3f6
Handle BSShader[PP/No]LightingProperty
2021-03-22 01:55:58 +03:00
Dobrohotov Alexei
952b31ac5c
NiZBufferProperty: handle depth test flag (bug #5902 )
2021-03-15 13:40:02 +03:00
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