Alexei Kotov
ccd36e9413
Support light fade settings in legacy lighting method
...
This doesn't change launcher descriptions because the launcher settings are going to be omitted
7 months ago
Alexei Kotov
71c1b536b4
Discard culled lights specifically for post-processing light buffer
7 months ago
Alexei Kotov
c92d016e43
Don't sort scene light list by camera distance if the limit isn't reached and PP doesn't need it
...
Also don't clip it to the single UBO scene light limit if the lighting method isn't actually single UBO
7 months ago
Alexei Kotov
916706c6c1
Make object light lists (mostly) view-independent
...
Remove frustum culling
Sort lights by object proximity
Restore multiple camera rendering optimization
7 months ago
Alexei Kotov
debc37d93a
Fade out specularity according to light fade settings as well
7 months ago
AnyOldName3
a761e417f1
Accept that it's too much work to defer light manager creation in the CS and instead use something akin to the old approach
10 months ago
AnyOldName3
36a75cdb29
Get the GLExtensions instance when a context is created
10 months ago
Alexei Kotov
820fc068d1
Support point specular lighting ( #6188 )
...
Fix passing light specular colors with shader lighting methods (with help from wazabear)
1 year ago
elsid
08902371b4
Use settings values for Shaders settings
1 year ago
jvoisin
3cbf1dc042
First pass with include-what-you-use
2 years ago
elsid
063fff7fa4
Fix and prevent -Wextra-semi warning
2 years ago
clang-format-bot
ddb0522bbf
Apply clang-format to code base
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
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
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
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
30a64ee82a
move to world space, fix bug with uniform size updates
3 years ago
cody glassman
0cb63ca4e6
experimental point light bindings
3 years ago
Alexei Dobrohotov
142b6fdf2f
Fix double precision bound issues in std::max/std::clamp
3 years ago
glassmancody.info
750514cda2
simply lightmanager and fix racey behavior
3 years ago
Bo Svensson
1960e976e2
refactors stringops.hpp ( #3192 )
...
With this PR we refactor `StringUtils::replaceAll` to accept `string_view` as suggested in a code comment. In addition, while we are touching this rebuild happy file, we slim it down a bit by moving a few sparingly used functions elsewhere.
3 years ago
Bo Svensson
1979ee1491
refactors hashed std::map ( #3199 )
...
We currently apply a strange algorithm to `LightManager::mStateSetCache`. For some reason this algorithm inserts hashed keys into `std::map` in a way that fails to handle hash collisions and exhibits worse lookup complexity than `std::unordered_map`. With this PR we just use `std::unordered_map` here.
3 years ago
Bo Svensson
cd4d76f8c5
discard off-screen lights ( #3120 )
...
Currently, we run culling tests against all lights in the scene during LightListCallback::pushLightState. We can avoid most of these tests by removing off-screen lights at an earlier stage. We should benchmark the cumulative time spent within LightListCallback::pushLightState before and after this PR.
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
8358418555
set the correct program link parameters ( #3110 )
...
* shadermanager.hpp setProgramTemplate
* shadermanager.hpp
* shadermanager.cpp setProgramTemplate
* shadervisitor.hpp setProgramTemplate
* shadervisitor.cpp setProgramTemplate
* scenemanager.cpp setProgramTemplate
* scenemanager.hpp setProgramTemplate
* renderingmanager.cpp
* groundcover.cpp setProgramTemplate
* groundcover.hpp
* groundcover.cpp
* shadervisitor.cpp
* util.cpp
* lightmanager.cpp
* scenemanager.cpp
* scenemanager.hpp
* lightmanager.cpp
* lightmanager.cpp
* lightmanager.cpp
* scenemanager.hpp [ci skip]
* water.cpp
* groundcover.cpp
* shadermanager.hpp
3 years ago
Bret Curtis
8d86d90782
remove whitespace
3 years ago
Bo Svensson
179f91276a
lightmanager.cpp ( #3121 )
3 years ago
glassmancody.info
1e52ca2b64
properly initialize light settings
3 years ago
jvoisin
7f4f2c042e
Use sizeof(GLfloat) instead of sizeof(GL_FLOAT)
...
GL_FLOAT is an enum, with the value 0x1406, while GLFloat is the actual type.
Source: https://www.khronos.org/opengl/wiki/OpenGL_Type
4 years ago
elsid
d4f28ac979
Avoid resetting buffer object when configuring light buffer layout
...
Otherwise this casues RaceSelectionPreview to have no light until first change.
4 years ago
Andrei Kortunov
11c57978b6
Fix crashes on exit in the LightManager (bug #6044 )
4 years ago
Andrei Kortunov
c54ef55ebb
Revert "Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing"
...
This reverts commit 5373cf1cd5
.
4 years ago
elsid
d520b440aa
Copy LightBuffer data into a new object when changing layout
...
Before this change LightBuffer copy constructor copied only mData pointer into
a new object. Then memcpy was applied to an overlapping source and destination
that is UB.
Replace configureLayout function by a special constructor. That copies all
mData values and a pointer to a buffer object into a newly allocated object.
4 years ago
elsid
5373cf1cd5
Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing
...
When game exit is requests when initial loading screen is active LightManager
can be destructed in the main thread before LightManagerStateAttribute::apply
is completed by different thread. Given that it uses raw pointer at some point
it becomes dangling because object is destructed this leads to UB and eventual
SIGSEGV.
4 years ago
glassmancody.info
9f314d1d6f
Fix ToggleBorders
4 years ago
Bret Curtis
50d6cd2a34
Merge pull request #3070 from akortunov/coverity
...
Fix an another portion of Coverity warnings
4 years ago
Andrei Kortunov
7d5c5f8a24
Do not assign negative values to unsigned variables
4 years ago
Andrei Kortunov
987b231fdd
Fix an another portion of Coverity warnings
4 years ago
psi29a
d0883f9a0d
Merge branch 'light_settings_tweak' into 'master'
...
Lighting patch
Closes #5957 and #5959
See merge request OpenMW/openmw!752
4 years ago
glassmancody.info
16856d45c5
Lighting Patch
...
Fixes build errors with older OSG builds and some issues with 'shared' layout.
Bring back ambient in inventory through lightmodel instead of sun ambient, mirrors scene ambient/sunlight relationship.
Forces shaders when certain lighting methods are enabled and finalize settings.
Correctly override sun for localmap.
4 years ago
Andrei Kortunov
0c7ddd3938
Remove redundant qualifiers
4 years ago
Andrei Kortunov
bce6effe95
Fix uninitialized variables in the LightManager
4 years ago