Commit Graph

771 Commits (d3e30830061c5ee553292c225242e2bd47d0ad5b)

Author SHA1 Message Date
psi29a c058b30322 Merge branch 'riggeometry' into 'master'
Refurbish SceneUtil::RigGeometry

See merge request OpenMW/openmw!3472
1 year ago
Alexei Kotov 715efe6cb1 Handle NiParticleBomb (feature #7634) 1 year ago
Alexei Kotov 76939aae45 Refurbish RigGeometry
Restructure/untangle influence data
Don't store the input influence data
Overall cleanup
1 year ago
elsid 08902371b4
Use settings values for Shaders settings 1 year ago
Alexei Kotov 799da630e4 CopyRigVisitor: don't copy unskinned geometry (bug #5280) 1 year ago
AnyOldName3 15e6ababf1 Merge branch 'soft_particles' into 'master'
Apply soft effect to nifs marked with soft effect flag (originally developed by Cody Glassman)

See merge request OpenMW/openmw!3447
1 year ago
elsid 1d94527a19
Avoid using settings in components to get actor model
Settings::Values are initialized only for engine. Accessing them from other
binaries leads to a crash.
1 year ago
Petr Mikheev 63d5bd6f8a Apply soft effect to nifs marked with soft effect flag (developed by Cody Glassman) 1 year ago
elsid ad509bb954
Use settings values for Models settings 1 year ago
Andrei Kortunov 35561450f1 Do not copy osg::ref_ptr when possible 1 year ago
Andrei Kortunov d3d7a663c6 Move some objects instead of copying 1 year ago
elsid dd54857610
Add missing array include 1 year ago
elsid b4868c6094
Filter evade directions by supported animations
To avoid trying those which will not lead to any actor movement due to absent
animation.
1 year ago
elsid f6fce5ee15
Cleanup includes 2 years ago
glassmancody.info a659d2eaeb lua - fix bounding box once and for all 2 years ago
Bret Curtis ff6944701f Be more explicit about use of CLAMP_TO_EDGE instead of defaulting to GL CLAMP 2 years ago
psi29a 2686e586e5 Merge branch 'dev-7019' into 'master'
Fix improper access of stereo manager by other shared components

See merge request OpenMW/openmw!2437
2 years ago
Evil Eye 9728024978 Replace compare with more idiomatic methods 2 years ago
elsid 5d5e6844d1
Use settings values for Camera settings 2 years ago
glassmancody.info a7b7f99d72 Expose game object's bounding box in lua api 2 years ago
jvoisin c7a3f43915 Minor header cleanup
This has been done via CLion's "unused include directive",
set to "detect completely unused".
2 years ago
Mads Buvik Sandvei fe066069d7 /components/ code should not access the stereo manager without checking whether or not stereo is enabled first. Stereo component code should not read settings itself, but rather take settings as parameters. 2 years ago
Evil Eye 8d8207b734 Refactor pathgrid indices to use size_t instead of int 2 years ago
Alexei Dobrohotov 20e799dadc Use Rig/MorphGeometry state for its child geometry
Cherry-pick of ed44095cdc from 0.48 branch
2 years ago
psi29a 4faa1bf3e8 Merge branch 'moo-bitch-get-out-my-hay' into 'master'
Don't use FFP-friendly texture image units for shadow maps

Closes #7102

See merge request OpenMW/openmw!2682
2 years ago
Cody Glassman ac4787aeec shade refactor 2 years ago
Alexei Dobrohotov 0f222d270e Prefer the earliest eponymous nodes in skeletons (bug #3842) 2 years ago
AnyOldName3 83b940397e AdD lInE bReAk ThAt ClAnG-fOrMaT wAnTeD 2 years ago
AnyOldName3 7d4410d4fb Use reserveGlobalTextureUnits for shadow maps 2 years ago
AnyOldName3 9be3d2668a Break out of loops when uniform is found 2 years ago
florent.teppe 486d15b19e moved light common to its own file
moved esm4light to it's own file
2 years ago
florent.teppe dc961e3189 Adds the light into the scene.
Common struct for ESM3 and ESM4 light
2 years ago
AnyOldName3 80d6f6bc97 Add line break that clang-format wanted 2 years ago
AnyOldName3 0edc8fc77d Don't use FFP-friendly texture image units for shadow maps
This more-or-less gets rid of the shadow system's only depencency on FFP
stuff. All that remains is it using OSG cameras, which OSG provides a
uniform-based implementation of, too, which we can trivially migrate to.

This should mean we're not eating any of the ~8 FPP-friendly texture
units, which is good as Morrowind models can use all of those on their
(although they very rarely do), and instead use some of the ~160
shader-only texture image units. This just requires not calling
glEnable(GL_TEXTURE_2D), accomplished by changing
setTextureAttributeAndModes to setTextureAttribute.

Also changes from using glTexGen and its eye plane matrices to pass the
shadow space matrix for each light to explicit uniforms. Thankfully, the
maths was a simple combination of the valid region matrix and eye plane
matrix maths.

As of this commit, I believe this kills shadows in one eye for stereo
rendering.
2 years ago
AnyOldName3 66e5415895 Log screenshot capture 2 years ago
AnyOldName3 77de37b1ed Revert "Merge branch 'fix_macos_build' into 'master'"
As well as fixing the MacOS build, it meddled with a bunch of files that
already did the right thing.

This reverts commit 8162541a14, reversing
changes made to e16c451d08.
2 years ago
elsid c324482338
Use separate header to define missing GL constants 2 years ago
elsid 843753da14
Remove unused includes 2 years ago
jvoisin 3cbf1dc042 First pass with include-what-you-use 2 years ago
elsid bb8b5e2108
Add META_Node to clang-format StatementMacros 2 years ago
elsid 063fff7fa4
Fix and prevent -Wextra-semi warning 2 years ago
Andrei Kortunov 890be1b590 Fix crash in the editor 2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
AnyOldName3 84f8a6848a Renormalise line endings
This should replace accidental CRLF with LF
2 years ago
elsid 50d8bd9cdd
Disable clang-format for files that should have minimal diff with OSG 2 years ago
elsid 219b9e7cbf
Revert "Use raw string literals for shaders"
This reverts commit 0e72055385.
2 years ago
elsid 0e72055385
Use raw string literals for shaders 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
Evil Eye 2222b47e3d Make Settings::Manager::getString return a reference 2 years ago
glassmancody.info 1f2d9f2280 don't recycle statesets for light cullcallback for now 2 years ago
Evil Eye 0df45a90b3 Use string_view in the remaining Class methods and push string_views closer to the MyGUI boundary 2 years ago
elsid 5dc612aa54
Replace ciCompareLen with ciStartsWith where possible
`ciCompareLen(a, b, b.size()) == 0` expression is an equivalent of checking for
equality of `a` prefix with size `b.size()` with `b`.

`ciCompareLen(a, b, a.size()) == 0` is also the same thing but `a` is a prefix
`b` should start with.
2 years ago
unknown 206711876d Address feedback 2 years ago
unknown 827a2f0b77 Use string_view in animation code 2 years ago
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
glassmancody.info c513ec7824 null check 2 years ago
glassmancody.info 2cea4f3172 stop excessive allocations with lightmanager callback 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
Evil Eye 55134d1e31 Use string_view in the CharacterController 2 years ago
elsid 0614b82452
Restore UnrefQueue to destruct animation asynchronously 2 years ago
Andrei Kortunov de58c9dff3 Get rid of obsolete osg::Geode where it is possible 2 years ago
psi29a 6cc3ec12db Merge branch 'ci-werror' into 'master'
Windows, MSVC: Enable warnings as errors on CI

See merge request OpenMW/openmw!2146
3 years ago
elsid 0e12d331f9
Simplify iteration over Bone::mChildren 3 years ago
elsid e4f599575e
Use unique_ptr to manage Bone lifetime 3 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
Mads Buvik Sandvei b277fa48c7 Refactor multiview to avoid littering OSG_HAS_MULTIVIEW and multiview-related uniforms around the code, keep them all in multiview.cpp. 3 years ago
elsid 9ac3bb753e
Move declaration private static member variables of LightManager to .cpp
There is no need to expose them to other translation units.
3 years ago
elsid 4211cf1c24
Use uniform indent and apply openmw naming policy 3 years ago
glassmancody.info a0265ffb89 only enable soft particles when enabled in settings 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
elsid 1a5932a669
Move std::ostream& operator<< to .cpp 3 years ago
psi29a 1a478875f0 Merge branch 'navmesh_agent_bounds' into 'master'
Support different agent collision shape type for pathfinding

See merge request OpenMW/openmw!2030
3 years ago
psi29a a822044199 Merge branch 'riggeoosgaext' into 'master'
custom class for osgAnimation::RigGeometry, Collada animated deforming body parts

See merge request OpenMW/openmw!1682
3 years ago
Nelsson Huotari 334c6dde0b custom class for osgAnimation::RigGeometry, Collada animated deforming body parts 3 years ago
elsid 1a12c453d6
Support different agent collision shape type for pathfinding
Actors may have different collision shapes. Currently there are axis-aligned
bounding boxes and rotating bounding boxes. With AABB it's required to use
bounding cylinder for navmesh agent to avoid providing paths where actor can't
pass. But for rotating bounding boxes cylinder with diameter equal to the front
face width should be used to not reduce of available paths. For example rats
have rotating bounding box as collision shape because of the difference between
front and side faces width.

* Add agent bounds to navmesh tile db cache key. This is required to distinguish
  tiles for agents with different bounds.
* Increase navmesh version because navmesh tile db cache key and data has changed.
* Move navmesh version to the code to avoid misconfiguration by users.
* Fix all places where wrong half extents were used for pathfinding.
3 years ago
Petr Mikheev 3bf18c601c Better fog 3 years ago
elsid fdd84265b3
Use proper agent height and radius when render actor path
That are based on half extents used to find path over navmesh which is different
for interior and exterior cells.

Use common functions to get agent height and radius for actor path rendering and
navmesh generation.
3 years ago
glassmancody.info 8146b05c92 pass only lights with visible geometry 3 years ago
glassmancody.info 327b8ecdcb pass sorted lights to light postprocess light buffers 3 years ago
Cody Glassman ce49aa1202 Attach lights at origin when missing AttachLight node 3 years ago
Evil Eye a95b6e050a Replace new with make_unique in components 3 years ago
psi29a a14285bff5 Merge branch 'light_tweaks' into 'master'
[Postprocessing] Tweaks to light collection

See merge request OpenMW/openmw!1928
3 years ago
cody glassman 30a64ee82a move to world space, fix bug with uniform size updates 3 years ago
jvoisin 6feb92a9bf Remove boost::filesystem from a couple of files 3 years ago
elsid 215b46503c
Support rendering for navmesh update frequency as a heatmap
Useful when need to find tiles with high number of updates.

Add debug Lua package with new functions to toggle render mode and set navmesh
render mode.
3 years ago
cody glassman 0cb63ca4e6 experimental point light bindings 3 years ago
cody glassman 04843fed6d moddable post-processing pipeline 3 years ago
madsbuvi 31a97141b7 Mac 3 years ago
Mads Buvik Sandvei 606a795a54 multiview linker-method 3 years ago
madsbuvi dd5901d351 Initial commit
Multiview shaders.

Refactor Frustum management

Rewrite shared shadow map

cull mask should respect stereo

Stereo savegame screencap

LocalMap refactoring

use the vertex buffer hint instead of the display list patch to enable/disable display lists

Character preview fixes
3 years ago
ζeh Matt b39aea4346
Move extremeEdges into queue instead of copying 3 years ago
ζeh Matt 19df9c3d17
Use vector for edge queue 3 years ago
ζeh Matt 0790af962e
Cleanup code in mwshadowtechnique.cpp 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 ead73fce31 initial NiFltAnimationNode support 3 years ago
Alexei Dobrohotov 81e9212db9 Slightly optimize MergeGroupsVisitor's xenophobia 3 years ago