elsid
cc8c7002ea
Cleanup components includes
2 years ago
psi29a
b551e69b6f
#5534 remove OSG 3.4 support and require at least 3.6.5 support
2 years ago
psi29a
bb9884c024
Merge branch 'split_stringops' into 'master'
...
Split components/misc/stringops.hpp into multiple headers
See merge request OpenMW/openmw!2233
2 years ago
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
...
Replace all ciEqual overloads with one having std::string_view as argument.
2 years ago
Alexei Kotov
014de72644
Use NiParticleSystemController's color for the initial particle color
2 years ago
Andrei Kortunov
c36c28e8f9
Move NIF implementation to cpp files
2 years ago
Project579
02ef9c953e
MSVC: Fix all warnings at level 4, upgrade Qt5 to 5.15.2 to also reduce warnings, disabled 5054 warnings due to Qt5's use of deprecated operators in C++20 .
3 years ago
Andrei Kortunov
fe785ea788
Don't cast away const when we can avoid it
3 years ago
elsid
2d6e048d88
Fix C4589 msvc warning
...
Constructor of abstract class 'SceneUtil::KeyframeController' ignores initializer for virtual base class 'osg::Object'
3 years ago
glassmancody.info
b09411d396
allow soft particles on meshes and add extra data extensions
3 years ago
Alexei Kotov
e673f9fa76
Clean up NIF flags
3 years ago
Alexei Kotov
dd758f8fd1
Always update the current matrix in KeyframeController
3 years ago
Alexei Kotov
21f6e2e419
Encapsulate NIF transformations, round 2 (task #6709 )
3 years ago
cody glassman
72fdf40e06
better support for particle arrays when spawning at node positions
3 years ago
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.
3 years ago
psi29a
1ac7eaa6b0
Merge branch 'NiFltAnimationNode' into 'master'
...
Add NiFltAnimationNode support
Closes #6684
See merge request OpenMW/openmw!1732
3 years ago
Wolfgang Lieff
373776170d
refactor for NiFltAnimationNode
3 years ago
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
3 years ago
Bret Curtis
0db5415976
refactor to use mInternal, support Flag_Reverse and updated changelog/authors.md
3 years ago
Wolfgang Lieff
ead73fce31
initial NiFltAnimationNode support
3 years ago
Alexei Dobrohotov
eafa66ff40
Don't consider NiCollisionSwitch unoptimizeable
3 years ago
Alexei Dobrohotov
c28f997c87
Make NiPlanarCollider finite-size
3 years ago
psi29a
1542a0392c
Merge branch 'gloss' into 'master'
...
Gloss-mapping
Closes #6541
See merge request OpenMW/openmw!1552
3 years ago
Alexei Dobrohotov
54df5031b7
Add XYZ rotation axis order support
3 years ago
Alexei Dobrohotov
dd473d06df
Implement gloss-mapping (feature #6541 )
3 years ago
psi29a
b011809056
Merge branch 'master' into 'sort_me_baby_one_more_time'
...
# Conflicts:
# components/nif/niffile.cpp
3 years ago
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.
3 years ago
elsid
e1fe501013
Use proper type for Record::recType
3 years ago
glassmancody.info
712107de2d
nisortadjust support
3 years ago
psi29a
9183fa897e
Merge branch 'particle_vertex_palooza' into 'master'
...
Support vertex emitters (#6592 )
Closes #6592
See merge request OpenMW/openmw!1638
3 years ago
glassmancody.info
a05e029aa0
search for stencil enabled flag correctly
3 years ago
glassmancody.info
88f02913d5
use vertex emitters on array particle controllers when appropriate
3 years ago
glassmancody.info
8c2c322d92
add stencil to water RTTs, reword some comments
3 years ago
glassmancody.info
bbc9c53423
support morrowind stenciling
3 years ago
Alexei Dobrohotov
4521d3987c
Fix out of bounds UV set handling
3 years ago
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.
3 years ago
psi29a
d8d7a3b372
Merge branch 'softparticles_patch' into 'master'
...
Shadervisitor adjustments and Mac OS fix for soft particles
See merge request OpenMW/openmw!1380
3 years ago
Alexei Dobrohotov
a64057fb36
Some NIF cleanup
...
Clean up keyframe controller construction
Make LOD and switch node generation static
Clarify decal map implementation
3 years ago
elsid
a665a38aca
Use MurmurHash3_x64_128 for file hash
3 years ago
glassmancody.info
9389cfaa42
mac os driver workaround and shadervisitor fixes
3 years ago
Cody Glassman
d85f772269
Depth refactor
3 years ago
Alexei Dobrohotov
50b90a594d
Loading and basic handling of BSLightingShaderProperty
3 years ago
psi29a
ba0aae06ca
Merge branch 'morphyslaw' into 'master'
...
Morph geometry more like NifSkope (bug #6416 )
Closes #6416
See merge request OpenMW/openmw!1389
3 years ago
psi29a
41bd20e358
Merge branch 'bullet_shape_hash' into 'master'
...
Store BulletShape source file name and content hash
See merge request OpenMW/openmw!1379
3 years ago
Alexei Dobrohotov
c7edca559b
Morph geometry more like NifSkope (bug #6416 )
3 years ago
elsid
d7041613ef
Store BulletShape source file name and content hash
3 years ago
Alexei Dobrohotov
9880c43c86
Add specular strength shader parameter
3 years ago
psi29a
5836d0225f
Merge branch 'leave_butter_to_soften' into 'master'
...
Soft Particles (#6128 )
See merge request OpenMW/openmw!980
3 years ago
Alexei Dobrohotov
7a0c13fcf8
Make better use of std::clamp
3 years ago
Bo Svensson
356e9d7cf0
refactors osg::Callback virtual inheritance ( #3200 )
...
With this PR we refactor `SceneUtil::KeyframeController` not to require `virtual osg::Callback` inheritance. I suppose such `virtual` overhead is not justified here because it negatively impacts many other classes we derive from `osg::Callback`.
3 years ago
glassmancody.info
8c3b00164e
soft particles
3 years ago
Bo Svensson
87d52dc1fd
fixes coverity-ci warning
3 years ago
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.
3 years ago
Bo Svensson
aaf7b423d6
adds a replacement for osg::NodeCallback ( #3144 )
...
* nodecallback.hpp
* lightmanager.hpp
* lightmanager.cpp
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* [ci skip]
* lightmanager.hpp
* nodecallback.hpp
* nodecallback.hpp
* lightmanager.cpp
* lightmanager.cpp
* nodecallback.hpp
* [ci skip]
* [ci skip]
* controller.cpp
* [ci skip]
* osgacontroller.cpp
* keyframe.hpp
* controller.hpp
* keyframe.hpp
* [ci skip]
* keyframe.hpp
* animation.hpp
* [ci skip]
* weaponanimation.cpp
* nodecallback.hpp
3 years ago
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
3 years ago
Andrei Kortunov
e109d86489
Revert "avoids creating empty statesets on drawables ( #3132 )"
...
This reverts commit 957c25a491
.
3 years ago
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
3 years ago
Alexei Dobrohotov
0922d0b105
Clean up text key extraction
3 years ago
Alexei Dobrohotov
956edca524
Don't re-enable specularity w/ material controller for MW models
3 years ago
Alexei Dobrohotov
1fc7cb8191
Don't use FreezeOnCull for any particle system ( #4744 )
3 years ago
glassmancody.info
09e03fde2e
refactor and fix wobbly shores
3 years ago
glassmancody.info
70fac33940
initial reverse-z depth implementation
3 years ago
Alexei Dobrohotov
11694ba87f
Correct dark map and detail map alpha handling
...
Comment texenv usage in NIF loader
3 years ago
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
4 years ago
glassmancody.info
4bbbbb00f6
use particle data for particle system quota
4 years ago
Dobrohotov Alexei
19f0b80983
Improve null root handling
4 years ago
Chris Djali
f0cef87cd8
Merge pull request #3069 from akortunov/msvc_warnings
...
Rework warnings settings
4 years ago
Dobrohotov Alexei
971ba81ed2
Use higher level transformations in UVController
4 years ago
Dobrohotov Alexei
24f4bf9c28
Fix NiUVController UV offset calculations (bug #5995 )
4 years ago
Andrei Kortunov
6d351b2bdd
Fix MSVC 4706 warnings
4 years ago
Andrei Kortunov
2d869ca9ff
Fix node masks signed/unsigned mismatch
4 years ago
Andrei Kortunov
7d5c5f8a24
Do not assign negative values to unsigned variables
4 years ago
fredzio
fda639eb57
Remove unused forward declarations
4 years ago
Alexei Dobrohotov
2fdbe9b3f6
Handle BSShader[PP/No]LightingProperty
4 years ago
Dobrohotov Alexei
952b31ac5c
NiZBufferProperty: handle depth test flag (bug #5902 )
4 years ago
Alexei Dobrohotov
46ec40fa92
Make sure NIFLoader avoids working further with empty geometry
4 years ago
Alexei Dobrohotov
1e6156e04a
Turn all NIF records into structs
4 years ago
Alexei Dobrohotov
c0b9823372
Read BSShaderProperty and handle NiGeometry properties
4 years ago
Alexei Dobrohotov
42226533d8
Handle BSLODTriShape
...
Its levels of detail are currently not handled
4 years ago
Alexei Dobrohotov
8fd45d85ec
Unify NiGeometry/NiGeometryData handling
4 years ago
Alexei Dobrohotov
8ca324af0a
Handle emissive TexEnv creation in one place
4 years ago
Alexei Dobrohotov
5310dd6807
Clean up particle vertex handling
4 years ago
Alexei Dobrohotov
1c83e4936d
Read BSShaderTextureSet and NiColorInterpolator
...
Accept boolean-based and 4D vector-based NiInterpolators in ValueInterpolator constructor
4 years ago
Alexei Dobrohotov
db9c174ca8
Make NIF particle node handling more generic
4 years ago
Andrei Kortunov
8084a336b5
Replace zeroes and nulls by nullptrs
4 years ago
AnyOldName3
86fad60c7d
Merge branch 'roots' into 'master'
...
Handle multiple root nodes (bug #5604 )
Closes #5604
See merge request OpenMW/openmw!428
4 years ago
Alexei Dobrohotov
5b6377b061
Handle multiple root nodes (bug #5604 )
4 years ago
Nelsson Huotari
f78a5d795c
Separate keyframes logic to provide basis for osgAnimation integration.
4 years ago
Alexei Dobrohotov
8a6d3d1b4f
Minor fixes
...
Fix extra semicolon
Disable collision avoidance if AI is disabled
4 years ago
Evil Eye
94c89e6d5e
check ValueTs
4 years ago
Evil Eye
d8897c4509
remove inline and use enable_if_t
4 years ago
Evil Eye
d8d4351962
fix MSVC2017 builds
4 years ago
Alexei Dobrohotov
a46699fb1e
Handle NiGeomMorpherController interpolator list
4 years ago
Alexei Dobrohotov
f3f5dcb016
Read a few more NIF types
...
NiFloatInterpolator, NiPoint3Interpolator, NiTransformInterpolator, NiBoolInterpolator
Update a few existing controller records
Update NiSkinInstance
4 years ago
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
4 years ago
Alexei Dobrohotov
53f91a3aa5
Merge pull request #3018 from akortunov/emplace
...
Use emplace_back instead of push_back
4 years ago
Alexei Dobrohotov
7e521788e9
Try to fix build
4 years ago
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
4 years ago
Alexei Dobrohotov
71056c6014
Clean up palettized NiPixelData loading
4 years ago
Andrei Kortunov
065ed5138e
Use emplace_back instead of push_back
4 years ago
Andrei Kortunov
8ca3c3b123
Mark overrided methods by override keyword
4 years ago
Alexei Dobrohotov
9f08dc9968
Revert "Merge branch 'skinning' into 'master'"
...
This reverts merge request !327
4 years ago
Alexei Dobrohotov
6be808e301
RigGeometry: convert some pairs to structs
4 years ago
Alexei Dobrohotov
302d8eed27
Clean up Roll- and FlipController implementation
4 years ago
Alexei Dobrohotov
29ccb09da5
Introduce some extended NIF definitions
4 years ago
AnyOldName3
a338e8c561
Actually set the uvSet value
...
This got lost when uvSet was made into a local variable.
4 years ago
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.
4 years ago
Bret Curtis
05a19f4f93
Merge pull request #2984 from Capostrophic/optimizer
...
Avoid optimizing animated shapes once again (regression #5565 )
4 years ago
Capostrophic
aa131262ea
Implement quadratic interpolation for scalars and vectors
4 years ago
Capostrophic
35de34c019
Don't clamp GeomMorpherController recovered weight value
...
Seems that Morrowind doesn't do it.
4 years ago
Capostrophic
8c213cbfb1
Avoid optimizing animated shapes once again (regression #5565 )
4 years ago
Capostrophic
3d31d21bc2
Don't encapsulate NIF transformation changes
...
Currently that causes issues
4 years ago
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.
5 years ago
Capostrophic
f93655e803
Encapsulate NIF transform changes in NifOsg::MatrixTransform
5 years ago
Capostrophic
ad87289d59
Fix NifOsg::MatrixTransform constructor inheritance
5 years ago
Capostrophic
a61267f57d
Replace NodeUserData with a custom transform node
5 years ago
Capostrophic
4c9cefefdd
Get rid of NifOsg::CollisionSwitch
5 years ago
Bret Curtis
0c2fea8254
Merge pull request #2932 from elsid/replace_open_threads
...
Replace OpenThreads by std types
5 years ago
Frederic Chardon
f268bc13f1
Do not set particle lifetime to 0 ( #5472 )
5 years ago
elsid
40ad87bc4d
Replace OpenThreads by std types
5 years ago
bzzt lost a hitlab login
26ab176389
profiling
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
5 years ago
bzzt lost a hitlab login
f12879a04c
allow statesetupdater as cullcallback = faster + works in paging
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
5 years ago
Capostrophic
7aca18f92b
Handle NiLines (feature #5445 )
5 years ago
Capostrophic
74a74209ac
Allow junk (data-less) NiParticleColorModifiers
5 years ago
Capostrophic
7a9403aeed
Remove unnecessary casts
5 years ago
Capostrophic
fc9a10ba48
Streamline node controller handling
...
Reduce code duplication
Allow non-animated nodes controlled by NiVisController to be optimized out
5 years ago
Capostrophic
89a2c69a61
Support particle node transformations
5 years ago
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.
5 years ago
Capostrophic
b665fed8f2
Introduce NiGeometry abstraction
5 years ago
Capostrophic
30558c2434
Try to resolve CI concerns
5 years ago
Capostrophic
915ffe2241
Handle non-node roots more gracefully (bug #5416 )
5 years ago
Capostrophic
30fc2e3e5e
Add basic NiPathController support (movement only)
5 years ago
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))
^
( )
5 years ago
Capostrophic
1bf2ddac4d
Cleanup
...
Move static variable declaration out of the loop
Remove redundant boolean argument from applyDrawableProperties()
Improve HeightCullCallback class formatting
5 years ago
Bret Curtis
f51476a3c5
Merge pull request #2816 from Capostrophic/switchlod
...
CollisionSwitch and Switch/LOD node fixes
5 years ago
Bret Curtis
bf6daa7269
Merge pull request #2811 from Capostrophic/emitter
...
Allow particle emitters to be attached to an arbitrary node
5 years ago
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
5 years ago
Capostrophic
89282d14aa
Fix collision switch node mask (again)
5 years ago
Capostrophic
f516178ec9
Fix particle processor cloning
...
Extend emitter handling comment in NIF loader
5 years ago
Capostrophic
c08f9e13af
Allow emitters to be attached to nodes after particle systems
5 years ago
Capostrophic
3b7fb9ec09
Use pipe-equal operator
5 years ago
Capostrophic
bbd15cccd5
Fix hidden node with NiVisController optimization
5 years ago
Bret Curtis
68549828b4
create static functions to set/get hidden node mask; compromise on magic numbers to make things easier to understand
5 years ago
Bret Curtis
e1a5435531
Merge commit '8a8107e8'
5 years ago
Chris Djali
71c46204ec
Merge pull request #2781 from mp3butcher/partsysfix
...
Particle System shading and lighting (fixing bug#3676 and #4949 )
5 years ago
Julien Valentin
886fd5efc9
enable particle shading and force particle normal to (0.3,0.3,0.3)
...
and update changelog
5 years ago
Bret Curtis
8a8107e837
as it says; revert vismask and uncomplicate openmw
5 years ago
Capostrophic
c3cc8ee1e1
Disable specular lighting for 4.0.0.2 and earlier files
5 years ago
Julien Valentin
6e2a651252
fix particle alpha
5 years ago
Capostrophic
e1d635cd71
Make extra sure groups with special behavior aren't optimized out
5 years ago