1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-16 17:29:55 +00:00
Commit graph

599 commits

Author SHA1 Message Date
Alexei Kotov
120223d8df Read even more Gamebryo/Bethesda particle records 2023-09-22 04:42:46 +03:00
Alexei Kotov
4db994cda9 Remap FO76 shader types 2023-09-18 06:44:44 +03:00
Alexei Kotov
81441bc963 Fix formatting and typos 2023-09-18 06:44:44 +03:00
Alexei Kotov
1b93e646b8 Rename Property->NiProperty 2023-09-18 06:44:44 +03:00
Alexei Kotov
c551f23667 Update NIF property loading, second pass
Refactor all remaining NIF properties
2023-09-18 06:44:44 +03:00
Alexei Kotov
080d7d2c13 Refactor NiTexturingProperty, load everything 2023-09-18 06:44:44 +03:00
Alexei Kotov
9ae1077808 Update NIF property loading, first pass
Revise all FO3+ shader properties (attempt reading FO4, FO76 and Starfield properties)
Use constants for most instances of property flags
Drop invalid usage of non-existent double-sided flag for BSShader
Make formatting more consistent, drop unnecessary comments
2023-09-17 19:22:16 +03:00
Alexei Kotov
bff9231c3b Refactor NiGeometry/BSTriShape
Don't pass invalid geometry data links to the loaders
2023-09-16 19:17:40 +03:00
Alexei Kotov
5b0bc97db0 Refactor NiSwitchNode and NiLODNode 2023-09-15 21:11:12 +03:00
Alexei Kotov
c9300cac31 Update NIF node records, first pass 2023-09-15 21:11:09 +03:00
Alexei Kotov
f271c4305a Fix formatting 2023-09-14 05:11:40 +03:00
Alexei Kotov
8856dff3db Refactor NiParticleSystemController and update definitions 2023-09-14 04:57:55 +03:00
Alexei Kotov
0fe095303f Rename Controller->NiTimeController, update NiTimeController and related code 2023-09-14 03:12:10 +03:00
Alexei Kotov
04d3f6a42d Update NiPathController
Support 10.1.0.0+ NiPathController loading
2023-09-14 03:12:10 +03:00
Alexei Kotov
ca85820431 Refactor NiUVController 2023-09-14 02:07:24 +03:00
Alexei Kotov
19d1f6f3f5 Rewrite typed NiInterpolator loading 2023-09-14 00:34:15 +03:00
Alexei Kotov
6d82f8b00d Refactor NiKeyframeController and NiTransformInterpolator 2023-09-14 00:03:25 +03:00
Alexei Kotov
208bfa9e21 Refactor NiMaterialColorController 2023-09-13 23:37:28 +03:00
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
6872c7144e Rename Transformation->NiTransform and update everything directly related 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
523e7e8228 Modernize NiRotatingParticlesData and NiVisData 2023-09-06 23:55:35 +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
4a88726aba Move particle modifiers into a dedicated file 2023-08-31 18:43:13 +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
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
jvoisin
3cbf1dc042 First pass with include-what-you-use 2022-10-09 10:39:43 +00:00
elsid
bb8b5e2108
Add META_Node to clang-format StatementMacros 2022-10-06 21:11:52 +02: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
psi29a
5ee4ce1232 Merge branch 'nipixeldata' into 'master'
Support more NiPixelData formats (feature #6945)

Closes #6945

See merge request OpenMW/openmw!2290
2022-08-17 12:20:00 +00:00
Alexei Kotov
edbd05a3f7 Support more NiPixelData formats (feature #6945) 2022-08-17 14:22:27 +03:00
elsid
cc8c7002ea
Cleanup components includes 2022-08-16 19:14:04 +02:00
psi29a
b551e69b6f #5534 remove OSG 3.4 support and require at least 3.6.5 support 2022-08-09 21:07:28 +00: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
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 . 2022-07-17 11:23:12 +02:00
Andrei Kortunov
fe785ea788 Don't cast away const when we can avoid it 2022-07-03 16:36:41 +04:00
elsid
2d6e048d88
Fix C4589 msvc warning
Constructor of abstract class 'SceneUtil::KeyframeController' ignores initializer for virtual base class 'osg::Object'
2022-07-01 18:47:06 +02: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
Alexei Kotov
dd758f8fd1 Always update the current matrix in KeyframeController 2022-06-11 05:56:28 +03:00
Alexei Kotov
21f6e2e419 Encapsulate NIF transformations, round 2 (task #6709) 2022-06-08 07:05:35 +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
c28f997c87 Make NiPlanarCollider finite-size 2022-04-05 01:33:36 +03:00
psi29a
1542a0392c Merge branch 'gloss' into 'master'
Gloss-mapping

Closes #6541

See merge request OpenMW/openmw!1552
2022-03-24 11:22:58 +00:00
Alexei Dobrohotov
54df5031b7 Add XYZ rotation axis order support 2022-02-19 02:22:08 +03:00
Alexei Dobrohotov
dd473d06df Implement gloss-mapping (feature #6541) 2022-02-18 06:24:06 +03:00