Commit Graph

476 Commits (e1665f39450dd9b70fa67a47bd3b26f4d9bdb9e9)

Author SHA1 Message Date
Alexei Kotov c9300cac31 Update NIF node records, first pass 1 year ago
Alexei Kotov f271c4305a Fix formatting 1 year ago
Alexei Kotov 8856dff3db Refactor NiParticleSystemController and update definitions 1 year ago
Alexei Kotov 0fe095303f Rename Controller->NiTimeController, update NiTimeController and related code 1 year ago
Alexei Kotov 04d3f6a42d Update NiPathController
Support 10.1.0.0+ NiPathController loading
1 year ago
Alexei Kotov ca85820431 Refactor NiUVController 1 year ago
Alexei Kotov 208bfa9e21 Refactor NiMaterialColorController 1 year ago
Alexei Kotov a7cc4e6ba6 Rename Node->NiAVObject and update everything directly related
Update NiNode
Simplify RootCollisionNode handling in BulletNifLoader
1 year ago
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
1 year ago
Alexei Kotov fd3b24e2e6 Make better use of osg::BoundingSpheref in the NIF loader 1 year ago
Alexei Kotov 0154bb78df Modernize NiSkinPartition 1 year ago
Alexei Kotov 6ac271d5c0 Modernize NiParticlesData and NiSkinData 1 year ago
Alexei Kotov 89774716fb Modernize NiGeometryData 1 year ago
Alexei Kotov cfd37dbcc6 Modernize NiTriShapeData 1 year ago
Alexei Kotov 5e8f9e7dd9 Modernize NiPixelData 1 year ago
Alexei Kotov eba0ab444b Modernize NiTriStripsData 1 year ago
Alexei Kotov fda6b0b4f8 Modernize NiUVData, NiLinesData, NiTriBasedGeomData 1 year ago
Alexei Kotov 384a398b62 Modernize NiMorphData, palette and BSBound records 1 year ago
Alexei Kotov 5b07a78f2c Modernize skin instance records 1 year ago
Alexei Kotov 2edf3399e2 Modernize extra data records 1 year ago
Alexei Kotov 087114e55b Print unsupported interpolator record names 1 year ago
Alexei Kotov bb6e008801 Modernize dynamic effects 1 year ago
Alexei Kotov 2e847a12c4 Modernize NiSourceTexture and BSShaderTextureSet 1 year ago
Alexei Kotov fb8ead2bd4 Rename nif/controlled to nif/texture 1 year ago
Alexei Kotov 1d05aa2e37 Modernize particle modifiers 1 year ago
psi29a c290754077 Revert "Merge branch 'loadSSEAlchemyTable' into 'master'"
This reverts merge request !3267
1 year ago
alekulyn d2896945e8 Load SSE alchemy table 1 year ago
psi29a 2c989e4057 Merge branch 'coverityfixes' into 'master'
Correct some things based on Coverity's output

See merge request OpenMW/openmw!3272
1 year ago
psi29a 466b2f1b74 Merge branch 'mantlingtalos' into 'master'
Copy triangle data from NiSkinPartition, a.k.a. SKYRIM TREES

See merge request OpenMW/openmw!3235
1 year ago
Alexei Kotov a8119f3863 Fix vertex color emissive lighting mode handling 1 year ago
Alexei Kotov 0d70ae5028 Clean up primitive set copying 1 year ago
Alexei Kotov 3f252eab5d Copy triangle data from NiSkinPartition 1 year ago
Alexei Kotov d6e420fb48 Handle BSShader specular flag 1 year ago
Alexei Kotov 6b6a3bcfca Make decal rendering more accurate for Skyrim models, reducing Z-fighting 1 year ago
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
2 years ago
Petr Mikheev 19fb9f8e14 Handle editor marker bit in BSXFlags 2 years ago
Petr Mikheev 788a4d32aa Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty. 2 years ago
Petr Mikheev fd90a8c9b4 Hide Nif nodes with name "EditorMarker". 2 years ago
Evil Eye 9728024978 Replace compare with more idiomatic methods 2 years ago
Cody Glassman 6a64f352a4 fix shader compilation 2 years ago
Cody Glassman ac4787aeec shade refactor 2 years ago
Alexei Kotov e15434be94 Disable falloff in BSEffectShader for now 2 years ago
Alexei Kotov 8d3c5c0f05 Unify texture wrapping setup 2 years ago
Alexei Kotov 2de81738c1 Implement the basics of BSEffectShaderProperty 2 years ago
Alexei Kotov 9deed5c03e Propagate dynamic effects to node's immediate children (bug #6550) 2 years ago
Alexei Kotov 99aa90f90c Rewrite NiVertexColorProperty 2 years ago
elsid 0688b6de40
Separate record list reading from its state
To make it possible to set record list state independently from reading NIF
file.
2 years ago
elsid c338c1e5d3
Add Nif::FileView as read only interface for Nif::NIFFile
To make sure interface is scoped to what users require.
2 years ago
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.
2 years ago
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.
2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
elsid 63b51ead84
Use nv_default shader prefix for unhandled types 2 years ago
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
2 years ago
Alexei Kotov 482de23893 Streamline NiInterpController handling 2 years ago
Project579 a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2 years ago
Project579 e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2 years ago
Alexei Kotov edbd05a3f7 Support more NiPixelData formats (feature #6945) 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
Andrei Kortunov fe785ea788 Don't cast away const when we can avoid it 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
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 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
glassmancody.info 8c3b00164e soft particles 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 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