Comments (13)
Thanks. Just figured out it was the "Tone Curve" setting in DisplayCAL causing the problem, for the record (use Rec. 1886 instead of Gamma 2.2, and manually choose a 2.2 gamma after that).
from vkbasalt.
So by 3D LUT what file format do you mean? Some sort of .png
or these .cube
that image manipulation software uses? On an other note that shader you linked uses 2d images internally which seems weird for a 3d LUT.
from vkbasalt.
@DadSchoorse PNG files, yes.
I don't have a deep understanding of how it works, but I believe you use several 2D textures but treat them as 3D (presumably R, G, B + Alpha):
See this link:
https://threejsfundamentals.org/threejs/lessons/threejs-post-processing-3dlut.html
WebGL1 doesn't support 3D textures so we'll use 4x2 2D texture and treat it as a 3D texture inside a custom shader where each slice of the cube is spread out horizontally across the texture.
And another example implementation, this time as a slang shader in Retroarch: https://github.com/libretro/slang-shaders/blob/master/crt/shaders/guest/lut/lut.slang
You can also see some example LUTs in that repo, e.g. one that simulates the colours of a .
And this port from reshade to retroarch. This one looks slightly simpler and doesn't have unrelated options.
It would be nice to support several different sizes for the LUT png (DisplayCAL can export to 16x16x16, 32x32x32, and 64x64x64 colours), although 64x64x64 would be enough to begin with.
Thanks
from vkbasalt.
I have implemented a 3D LUT shader in the wip-lut branch. It supports PNG like that one and .CUBE files. To use it, set effects = lut
and lutFile = /path/to/lut/without/spaces
in the config.
Here's a build:
vkBasalt.tar.gz
Testing would be appreciated.
from vkbasalt.
Thanks! Just tested, and it works as expected so far (with native Vulkan and D9VK/DXVK). I've only tested DisplayCAL generated LUTs (which are the most important for me) so I'll try and test some others.
from vkbasalt.
CUBE LUTs also look to be working well.
The only issue I've had so far was one particular .png LUT causing a strong yellow tint with Rise of the Tomb Raider (and only that particular game). There's a decent chance that the LUT itself is the problem, although I've been using the LUT with ReShade for a while and it's the first time I've had an issue with it. A new CUBE LUT with similar settings doesn't have the issue, for the record.
I'll try and figure out if it's the LUT at fault, rather than your code.
from vkbasalt.
Can you give me the yellow LUT?
from vkbasalt.
@DadSchoorse Sure.
It's not hugely noticeable but it should be visible when comparing screenshots. Here's a comparison to show what I mean:
These are intended to be run on a wide gamut monitor, but the yellow tint should be noticeable with standard gamut monitors as well. I used different gamma settings on the Cube LUT, so ignore the brightness difference.
from vkbasalt.
It does not seem to cause a yellow tint in my testing:
This is without the LUT:
from vkbasalt.
I think it's just game specific. I also tested generating a CUBE lut with the same settings as the older PNG and it does exhibit the same problem. It might be those particular settings cause problems in only certain games.
I can most likely just work around it on my end by choosing different settings.
from vkbasalt.
Okay then I am going to merge the branch and close this issue.
from vkbasalt.
Thanks. Just figured out it was the "Tone Curve" setting in DisplayCAL causing the problem, for the record (use Rec. 1886 instead of Gamma 2.2, and manually choose a 2.2 gamma after that).
Sorry for reviving this old topic but i wanted to ask you if with "use Rec. 1886 instead of Gamma 2.2" you mean to do the calibration with this setting and then changing it to Gamma 2.2 when creating the 3D LUT?
from vkbasalt.
@HexHyte Sorry I missed your comment. I wish I'd made more detailed notes, because I'm honestly not sure.
The default setting would be to calibrate with a "Gamma 2.2" tone curve, then map that to a 3D LUT with source colourspace "Rec709" and tone curve "Rec 1886". I'll add that I haven't seen any obvious issues with recent LUTs I've made with close to the default settings, but I haven't looked at Rise of the Tomb Raider recently.
As a side note, the flatpak version as of today doesn't include all available source colourspaces (such as Rec 709 which you want for standard sRGB content). A workaround is to extract the binaries of the latest argyllcms somewhere, and load them with displaycal. See here
EDIT: I may have meant in the 3D LUT tab to use Rec 1886 tone curve but change the gamma from 2.4 to 2.2 (with advanced options enabled). Or you could try gamma 2.2 both in the calibration and 3D LUT which would probably be fine for most content.
from vkbasalt.
Related Issues (20)
- FTBFS with new GCC 13 HOT 4
- Librashader/snowflake support
- Is there some simple way to just increase brightness with this?
- vkBasalt doesn't compile (ninja: build stopped: subcommand failed.)
- vkBasalt.conf using a path without a username does not work HOT 2
- Assassin's Creed Origins freezes on launch with vkBasalt enabled
- vkbasalt won't install on manjaro through AUR in package manager. HOT 2
- 32bit vkbasalt build error on step 57 HOT 1
- API to indicate global state of effects
- Reshade update?
- CRT-Royale support HOT 8
- FakeHDR Reshade fails HOT 1
- Document the Deband shader
- Graphical artifacts when using more than 2 effects
- Combining AA methods. HOT 1
- Suggestion-Info more than "issue"
- feature req: per-app config file support HOT 2
- Is required the path /home/username/.local/share/reshade/.git/ for work correctly ? HOT 1
- vkbasalt require ReplaySorcery ? HOT 1
- [GNU/Linux + Wayland] vkBasalt causes Wayland compositors stall when fullscreen windows are closed with ALT+F4 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vkbasalt.