Commit Graph

214 Commits

Author SHA1 Message Date
AnyOldName3 e2e7b58b3a Handle normalHeightMap as special case 2025-04-20 23:55:38 +01:00
AnyOldName3 4707c7e2fc Format 2025-04-20 00:17:03 +01:00
AnyOldName3 115fc08904 Don't forget parallax when reapplying shader visitor
Fixes https://gitlab.com/OpenMW/openmw/-/issues/8341

I don't think this should go into 0.49 because there may be implications beyond what I've thought of and I'd rather we had a full dev cycle to notice any regressions.

The fix is a little janky, but makes use of some dead code we've had since the introduction of normal-height maps nearly a decade ago, so it's a safe bet that it was never intended to be dead code.
The main effect of the jankiness is that we'll add some pointless @defines for normalHeightMap that none of our shaders use and which will always be zero.
2025-04-20 00:12:53 +01:00
AnyOldName3 6330d80b9e Don't expect TangentSpaceGenerator to work without texcoords 2024-10-24 13:36:49 +01:00
elsid 1fd6ac6438
Use normalized path in ImageManager 2024-09-17 00:49:57 +02:00
Alexei Kotov 908f3891fb Add helper method for texture type recovery 2024-05-19 02:26:40 +03:00
Alexei Kotov 84f4ba4ca1 Support defining the texture type with a state attribute (#6240)
Named textures are still supported for easier native format compatibility (and so that I don't have to edit the documentation)
2024-05-18 23:11:20 +03:00
Alexei Kotov 443e341ae7 Generalize unsized pixel format computation 2024-04-16 02:52:25 +03:00
Alexei Kotov 3c0c1717a9 Fix red-green normal map handling for terrain 2024-04-15 12:02:52 +03:00
Alexei Kotov 58afe1ba23 Support red-green normal maps 2024-04-15 12:02:52 +03:00
AnyOldName3 36a75cdb29 Get the GLExtensions instance when a context is created 2024-02-23 00:15:23 +00:00
Andrei Kortunov 225e834b88 Fix some Coverity Scan complaints 2024-02-02 09:28:19 +04:00
Andrei Kortunov 251d01304f Use move semantics for osg::ref_ptr 2024-01-21 13:48:33 +04:00
Alexei Kotov 4a96885323 Untangle normals and parallax handling
Move tangent space generation to the vertex shaders
Support diffuse parallax when no normal map is present
Don't use diffuse parallax if there's no diffuse map
Generalize normal-to-view conversion
Rewrite parallax
2023-12-12 22:42:53 +03:00
Alexei Kotov 9c94058727 Support Oblivion parallax setup 2023-11-27 03:41:51 +03:00
elsid 08902371b4
Use settings values for Shaders settings 2023-10-12 20:43:53 +02:00
Petr Mikheev a401461a64 Update addedState in shadervisitor.cpp 2023-09-27 21:19:59 +02:00
Petr Mikheev 63d5bd6f8a Apply soft effect to nifs marked with soft effect flag (developed by Cody Glassman) 2023-09-27 20:41:52 +02:00
Andrei Kortunov b1c8a968ae Do not use invalid iterators 2023-07-31 17:53:33 +04:00
Andrei Kortunov a08d921c4c Create a stateset for every particle system to create its own defineMap 2023-06-21 16:13:58 +04:00
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. 2023-04-22 16:11:42 +02:00
Shi Han a90e3b8c3b Move from std::atoi to std::from_char 2023-03-18 09:30:48 +00:00
AnyOldName3 ccdb1bf6b7 Ensure shader requirements are pushed at least once for subgraph
Shaders, if deemed necessary, get attached to the node mentioned by the
top of the requirements stack. Previously an empty stack was incorrectly
assumed to mean no shaders were required, but we found out that was
wrong. We need to put shaders *somewhere*, and the root of the subgraph
we're modifying should be the best place.
2023-03-08 00:28:48 +00:00
AnyOldName3 aee1edaf9e Partially revert "Attach shaders to geometry that lacks a stateset if necessary"
This reverts commit 6aef366fd3.
2023-03-08 00:15:49 +00:00
AnyOldName3 4aa40897ca Revert "Apply ShaderVisitor to Rig/MorphGeometry source geometry"
This reverts commit 471f6abf6c.

The commit should be redundant as of 20e799dadc
2023-03-06 00:54:57 +00:00
Petr Mikheev e007dc9d6b Log reserving texture units 2023-03-04 00:55:34 +01:00
Alexei Dobrohotov 471f6abf6c Apply ShaderVisitor to Rig/MorphGeometry source geometry 2023-03-01 18:27:44 +03:00
Alexei Dobrohotov 6aef366fd3 Attach shaders to geometry that lacks a stateset if necessary 2023-02-28 20:13:16 +03:00
Cody Glassman 6a64f352a4 fix shader compilation 2023-02-26 14:31:53 -08:00
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
2023-02-25 23:12:32 +00:00
Cody Glassman ac4787aeec shade refactor 2023-02-25 11:03:39 -08:00
AnyOldName3 8ea2e15446 clang-format some more
LLVM shouldn't make me download everything they've ever made in the same
package as clang-format.
2023-02-10 00:40:48 +00:00
AnyOldName3 7d4410d4fb Use reserveGlobalTextureUnits for shadow maps 2023-02-09 01:32:48 +00:00
glassmancody.info 9a4977d334 rain occlusion 2023-01-06 22:23:03 -08:00
AnyOldName3 66b8d4fb29 Add a setting to control coverage adjustment
With it on, which was always the case before this setting was added,
vanilla content and poorly-made mods will look acceptable, but well-made
mods will have alpha-tested meshes appear to grow and potentially gain a
weird outline as they get further away.

With it off, which replicates the 0.46 behaviour, well-made mods will
look really good, but vanilla content and poorly-made mods will have
alpha-tested meshes shrink as they get further away.

It's been bugging me that this was forced on since 0.47 released, and
I'd hoped to figure out a solution for automatic detection at some point
before 0.48 branched off, but I didn't, so now this is what we're
getting to have Tamriel Rebuilt look right.
2022-12-09 00:22:08 +00:00
jvoisin 3cbf1dc042 First pass with include-what-you-use 2022-10-09 10:39:43 +00:00
elsid 063fff7fa4
Fix and prevent -Wextra-semi warning 2022-10-06 00:26:43 +02:00
clang-format-bot ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
Project579 c226b35f1f Fix some remaining encoding errors due to std::filesystem transition. 2022-09-11 14:41:20 +02: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 4078f19c74 Merge branch 'SHADER_HOT_RELOAD' into 'master'
Shaders: Hot reload, togglable by lua debug command

See merge request OpenMW/openmw!2238
2022-08-21 09:08:27 +00:00
florent.teppe 25c1f0ca16 Renamed variable to fix case issue 2022-08-21 09:18:08 +02:00
Andrei Kortunov e3ad30a517 Do not copy data when it is not needed 2022-08-15 11:52:09 +04:00
florent.teppe 166717d601 Makes sure threads are only stopped once ,and that they will be re-started 2022-08-13 00:34:01 +02:00
florent.teppe 16a4b5716b adds missing include 2022-08-12 18:52:31 +02:00
florent.teppe b14cc673bc adds missing decleration 2022-08-12 18:47:29 +02:00
florent.teppe decfbc5387 Fix threading issues 2022-08-12 18:37:19 +02:00
florent.teppe 603b30e117 Added some variable names to make it clearer what their function was
avoid having lost of ->first and ->second that aren't meaningfull
2022-08-07 22:56:32 +02:00
florent.teppe 3ab0a99154 Hot reload done only once every 200 ms, no point in beeing faster
it may also help with bugs where the file is still locked and can't be opened
2022-08-04 13:37:12 +02:00