1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-29 09:45:34 +00:00
Commit graph

469 commits

Author SHA1 Message Date
Alexei Kotov
a7cc4e6ba6 Rename Node->NiAVObject and update everything directly related
Update NiNode
Simplify RootCollisionNode handling in BulletNifLoader
2023-09-10 07:18:39 +03:00
Alexei Kotov
ef896faa90 Rename Named->NiObjectNET and update everything directly related to it
BulletNifLoader: properly check if the node has animation controllers
Flatten extra data linked list
2023-09-10 07:18:39 +03:00
Alexei Kotov
fd3b24e2e6 Make better use of osg::BoundingSpheref in the NIF loader 2023-09-06 23:55:36 +03:00
Alexei Kotov
0154bb78df Modernize NiSkinPartition 2023-09-06 23:55:36 +03:00
Alexei Kotov
6ac271d5c0 Modernize NiParticlesData and NiSkinData 2023-09-06 23:55:36 +03:00
Alexei Kotov
89774716fb Modernize NiGeometryData 2023-09-06 23:55:36 +03:00
Alexei Kotov
cfd37dbcc6 Modernize NiTriShapeData 2023-09-06 23:55:36 +03:00
Alexei Kotov
5e8f9e7dd9 Modernize NiPixelData 2023-09-06 23:55:36 +03:00
Alexei Kotov
eba0ab444b Modernize NiTriStripsData 2023-09-06 23:55:35 +03:00
Alexei Kotov
fda6b0b4f8 Modernize NiUVData, NiLinesData, NiTriBasedGeomData 2023-09-06 23:55:35 +03:00
Alexei Kotov
384a398b62 Modernize NiMorphData, palette and BSBound records 2023-09-06 23:55:35 +03:00
Alexei Kotov
5b07a78f2c Modernize skin instance records 2023-09-06 23:55:35 +03:00
Alexei Kotov
2edf3399e2 Modernize extra data records 2023-09-01 01:54:11 +03:00
Alexei Kotov
087114e55b Print unsupported interpolator record names 2023-09-01 01:27:03 +03:00
Alexei Kotov
bb6e008801 Modernize dynamic effects 2023-08-31 22:06:21 +03:00
Alexei Kotov
2e847a12c4 Modernize NiSourceTexture and BSShaderTextureSet 2023-08-31 20:50:30 +03:00
Alexei Kotov
fb8ead2bd4 Rename nif/controlled to nif/texture 2023-08-31 18:59:33 +03:00
Alexei Kotov
1d05aa2e37 Modernize particle modifiers 2023-08-31 18:16:11 +03:00
psi29a
c290754077 Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
This reverts merge request !3267
2023-08-03 19:55:06 +00:00
alekulyn
d2896945e8 Load SSE alchemy table 2023-07-28 07:46:20 +00:00
psi29a
2c989e4057 Merge branch 'coverityfixes' into 'master'
Correct some things based on Coverity's output

See merge request OpenMW/openmw!3272
2023-07-24 13:22:25 +00:00
psi29a
466b2f1b74 Merge branch 'mantlingtalos' into 'master'
Copy triangle data from NiSkinPartition, a.k.a. SKYRIM TREES

See merge request OpenMW/openmw!3235
2023-07-24 09:11:40 +00:00
Alexei Kotov
a8119f3863 Fix vertex color emissive lighting mode handling 2023-07-24 00:34:30 +03:00
Alexei Kotov
0d70ae5028 Clean up primitive set copying 2023-07-23 13:32:33 +03:00
Alexei Kotov
3f252eab5d Copy triangle data from NiSkinPartition 2023-07-23 13:32:33 +03:00
Alexei Kotov
d6e420fb48 Handle BSShader specular flag 2023-07-22 17:28:05 +03:00
Alexei Kotov
6b6a3bcfca Make decal rendering more accurate for Skyrim models, reducing Z-fighting 2023-07-20 19:28:33 +03:00
Alexei Dobrohotov
52a16e0e93 BSEffectShader/NoLighting fixes
Don't hijack BSShader::NoLighting for BSEffectShader functionality
(Fallout meshes break if you use the actual emissive color as a base color)
Don't use falloff for textureless NoLighting objects
Use falloff flag for BSEffectShader
2023-07-09 14:44:09 +03:00
Petr Mikheev
19fb9f8e14 Handle editor marker bit in BSXFlags 2023-05-29 18:47:27 +02:00
Petr Mikheev
788a4d32aa Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty. 2023-05-29 18:47:27 +02:00
Petr Mikheev
fd90a8c9b4 Hide Nif nodes with name "EditorMarker". 2023-05-29 18:47:27 +02:00
Evil Eye
9728024978 Replace compare with more idiomatic methods 2023-05-22 19:51:27 +02:00
Cody Glassman
6a64f352a4 fix shader compilation 2023-02-26 14:31:53 -08:00
Cody Glassman
ac4787aeec shade refactor 2023-02-25 11:03:39 -08:00
Alexei Kotov
e15434be94 Disable falloff in BSEffectShader for now 2023-02-24 19:36:39 +03:00
Alexei Kotov
8d3c5c0f05 Unify texture wrapping setup 2023-02-20 00:23:00 +03:00
Alexei Kotov
2de81738c1 Implement the basics of BSEffectShaderProperty 2023-02-20 00:23:00 +03:00
Alexei Kotov
9deed5c03e Propagate dynamic effects to node's immediate children (bug #6550) 2023-02-11 17:37:25 +03:00
Alexei Kotov
99aa90f90c Rewrite NiVertexColorProperty 2023-02-11 00:58:13 +03:00
elsid
0688b6de40
Separate record list reading from its state
To make it possible to set record list state independently from reading NIF
file.
2022-09-24 19:10:35 +02:00
elsid
c338c1e5d3
Add Nif::FileView as read only interface for Nif::NIFFile
To make sure interface is scoped to what users require.
2022-09-24 19:10:21 +02:00
elsid
f2fb3d6de8
Separate NIFFileReader from NIFFile
NIFFile might not always be created from a file or stream containing NIF data.
Basically there are 2 different responsibilities for this class:
1. Read NIF file
2. Provide input for nifosg and bulletnifloader.

Remove no longer needed NIFFileMock since the state of NIFFfile can be
initialized independently from reading NIF file.
2022-09-24 19:10:14 +02:00
elsid
b39ccbeeef
Remove NIFFile::warn and NIFFile::fail functions
These functions use NIFFile only as context, they are not really a part of
either reading nor state invariant. And they only confuse reader because it's
not immediatelly obvious that no code is executed after fail.
2022-09-24 19:10:05 +02:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
elsid
63b51ead84
Use nv_default shader prefix for unhandled types 2022-09-17 17:35:25 +02:00
Alexei Kotov
7aee22be91 Further controller updates
Correct NiMaterialColorController base class
Load everything in NiGeomMorpherController
Make a guess at how weighted interpolators might be supposed to work like
2022-09-16 23:45:54 +03:00
Alexei Kotov
482de23893 Streamline NiInterpController handling 2022-09-15 00:58:10 +03:00
Project579
a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2022-09-11 14:41:20 +02:00
Project579
e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2022-09-11 14:41:15 +02:00
Alexei Kotov
edbd05a3f7 Support more NiPixelData formats (feature #6945) 2022-08-17 14:22:27 +03:00
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