#Minecraft Iris Shaders (w/ SpecialK)
100 messages · Page 1 of 1 (latest)
its to this, right? https://github.com/rrtt217/photon/tree/hdr-clean
A gameplay-focused shader pack for Minecraft. Contribute to rrtt217/photon development by creating an account on GitHub.
Yeah, but github says conflict
I may cherry pick important fixes and close the pr then if you cant fix the conflict
ah okay yeah much bettter
i give up lol. just drop everything on top or something and revert the diff
i did reorder stuff, like #if & #endif, idk if they are more clear or not
I'll try cherry pick then
@edgy wedge I think this might work
vec3 tonemap_lottes_hdr(vec3 rgb, float peak) {
const vec3 a = vec3(1.5); // Contrast
const vec3 d = vec3(0.91); // Shoulder contrast
const vec3 hdr_max = vec3(8.0); // White point
const vec3 mid_in = vec3(0.26); // Fixed midpoint x
const vec3 mid_out = vec3(0.32); // Fixed midput y
const vec3 b = (-pow(mid_in, a) + pow(hdr_max, a) * mid_out)
/ ((pow(hdr_max, a * d) - pow(mid_in, a * d)) * mid_out);
const vec3 c = (pow(hdr_max, a * d) * pow(mid_in, a)
- pow(hdr_max, a) * pow(mid_in, a * d) * mid_out)
/ ((pow(hdr_max, a * d) - pow(mid_in, a * d)) * mid_out);
return (peak * b * pow(rgb, a)) / (pow(rgb, a) * b + c);
}
ay yo, this is kinda too bright lol. (1000nits overshoot in some are from CAS)
- SDR
tonemap_lottes_hdr(rgb, peak / paperwhite)tonemap_lottes_hdr(rgb * 0.2, peak / paperwhite)- my gamma trickery
bruh
cherry picked.
did you include Hable Extended still?
im scared how it requires so many new functions may put off the merge even more.
Yes
Do you have a better way to emulate it?
for lottes, not really.
for hable, that's the best, but its rather bulky compared to everything else
Ofc if it's too bulky we can move functions to a separate header file
yea lol. every other one is like 10ish lines long, then there's hable extended which is 10 functions đź’€
im gonna do hdr-clean for complementary now
when you use Complementary / Euphoria, it's with IntegratedPBR, right?
Yeah
I wanted to use LabPBR for the shader pack support, but... it doesn't have the same feel
well this is tough. i like labpbr packs, since emissives doesnt get embedded white clip.
Eh, it's alright
IntegratedPBR+ is quite nice for many things
On top of that, if someone finds a way to handle Supplemental Patches without going crazy, wouldn't everyone be able to write HDR shaders for whatever they want?
I did get it once to work, but the way I use to quickly update Complementary and Euphoria becomes quite slow if you include Supplemental
So I just preferred to take it out
wdym "HDR shaders for whatever"?
Looks like it patches world rendering, all before tonemapping
I meant "allowing whetever cubes to be shaded", nothing else
ah i see. so modular IntegratedPBR kinda.
Yeah
@edgy wedge Is R11F_G11F_B10F good enough for HDR?
Oh I dont know R11G11B10f cannot store negative values
somewhat. id prefer 16f for less banding (like sky, but sky is noised in photon i think).
i reverted because i couldn't get the pipeline declaration (buffers.glsl) to compile branch with HDR_ENABLED.
meaning
#ifndef HDR_ENABLED
const int colortex0Format = R11F_G11F_B10F;
#else
const int colortex0Format = RGB16F; //this one always compiles idk.
#endif
yea, that's why carrying BT/rec2020 until final is best move
wait, this is easier. we just need #if to be outside the comment
/*
const int colortex0Format = R11F_G11F_B10F; //main color
const int colortex1Format = RGB8_SNORM; //half res normalM
const int colortex2Format = RGB16F; //taa
const int colortex3Format = RGBA8; //(cloud/water map on deferred/gbuffer) | translucentMult & bloom & final color
const int colortex4Format = RGBA8_SNORM; //normalM & reflection strength
const int colortex5Format = RGBA8; //scene image for water reflections & volumetric cloud linear depth & volumetric light factor
const int colortex6Format = RGB8; //smoothnessD & materialMask & skyLightFactor
const int colortex7Format = RGBA16F; //(cloud/water map on gbuffer) | reflection temporal image (rgb) & previous depth
const int colortex8Format = RGBA16F; //SSR results for WSR, topmost translucent opacity
const int colortex12Format = RGBA8; //Improved Rain
const int colortex18Format = R8; //shadow for voxy chunks (needs reprojection)
const int colortex19Format = RGBA8; //scene image for voxy reflections (needs reprojection)
*/
#ifdef HDR_ENABLED
// Override declarations above with upgrades
/*
const int colortex0Format = RGB16F; //HDR: upgraded, else visible sky banding
const int colortex3Format = R16F; //HDR: upgraded to store HDR values to final
*/
#endif
(this isnt photon)
OK, thx
@edgy wedge After several comparison, I find out that vanilla minecraft (and probably also GUI) rendering is using gamma2.2 instead of sRGB
As not to break compatbility, I'll introduce a macro or uniform that relates to that
so HDR w/ no EOTF Gamma Correction and SDR output doesnt match? (at least for windows)
i cant test Linux, but Windows looks right.
- SDR (via F2)
- SK (no gamma correction) (via ReShade)
- HDRMod (no gamma correction) (via Game Bar)
Uncropped origs
im going crazy. this setting is HDR_ENABLED, right? Its always defined for me, even when off, after shader reload, and reload world.
(hdr_mod-fabric-2.2.2-1.21.11.jar)
Check out how JEI (the mod that adds crafting recipes and the menu on the right) looks
I've seen that one act funny when HDR is on
hmm. i dont see anything immediate crazy.
i am on 1.21.11 and maybe rrtt did something
I also haven't ever noticed any issues with JEI
@edgy wedge You need relaunch
due to OpenGL's limit
there's no way to remove HDR_ENABLED def unless restart?
in complementary, im trying not to add new buttons, since there isn't any place for mod support
Yes
Because actual disable HDR would require recreation of Minecraft window, which is not possible unless restart
The mod only read "Enable HDR" once on initializing
Ofc I can also let the macro definer read "enable HDR" every time when shader reload instead of only reading once, which is easy
After several more comparison I think it's fine
The GUI colors (except blocks) is exactly the same between vanilla SDR and HDRMod w/o gamma correction
Minecraft actually knows they use sRGB instead of gamma, the color difference might actually be because of different world time
Or this might be because Linux tends to use gamma22 in SDR mode, while minecraft is outputing sRGB
Yes please.
then you dont have to do Allow HDR macro in Photon
There is no Gamma22 to Linear
lol. maybe i should have copied that for the display_eotf function.
yea, they are not using it.
idk how linux looks, but i know Windows SDR decodes 2.2 on the sRGB encoded output.
What behavior do you profer?
- When HDR is disabled in mod settings, HDR Mod will completely turn itself off on next launch, which means that you cannot turn on HDR (you can change the setting but will not immediately take effect) on next launch without another restart;
- When HDR is disabled in mod settings, HDR Mod will not turn itself off, instead only not define
HDR_ENABLEDand forces a shader reload. The behavior is like "false SDR".
False SDR. Let the user uninstall to stop using it, and let that be the macro toggle. Then we dont ahve to branch Allow HDR or whatever. That will be the ultimate turn off and allow SDR compare.
hmm. you can detect if the user can turn on HDR right?
OK, I'll make the change in HDR Mod 2.3.0.
Cloth Config Api have a registerSaveListener
oh, i mean like I know you can detect OS, but can you detect if the OS & display can turn on HDR, or they only have SDR?
Not actually
Though we could suppose sRGB/Gamma2.2 Transfer on Windows/Linux == SDR
I'll make it an optional feature. On macOS this might not work.
yea, thats prob 90% of the time.
maybe have a one time warning screen on launch if no HDR capabilities is detected.
then i think the HDR Enabled button can 100% be just for the macro and shader reload.
Also, did you see this? https://github.com/rrtt217/photon/pull/4
Actual real extension, though its hardcoded for only the coeffs used in photon lol.
The warning might be annoying though
i guess so. im trying to account for someone who doesnt know to much about HDR.
Update:
- Complementary clean redo, all vanilla sliders work.
- Can someone test? Is there enough blowout? Sometimes, I feel like there is too much red in highlights causing wonky pale orange, but then I'd go to a new place and it's not bad.
- How to manual patch Euphoria (Google Docs)
- Since clean, the difference is very self-contained, hopefully easy to do.
Shader Patches Table Methods rrtt217 HDR Mod (Recommended) Go to page. ✅Easiest install Fabric / NeoForge mod ✅OS Cross Platform Linux and Win ✅Brightness sliders Set once, works for all shaderpacks. (WIP: Detecting from display capabilities.) ❌Only on select versions Backporting is hard. ❌R...
like magma maybe too orange than yellow, but to get it sacrifices other highlights.
Works pretty good for me
The patching mechanism is quite cool
It's still about diffing files, but... eh.
Have we confirmed that euphoria actually does something different every time someone "patches" complementary?
What do you mean?
if I use a modpack and you use a different one, will the euphoria patches be different?
or will they be the same?
Euphoria patches is just addons to completely
It needs completely to exist already though so it’s not reposting that existing shader
So nothing should be different if it’s same version of completely and euphoria
That being said, I’m not sure how it interacts with the hdr patcher, but it should still be the same for both people
I think it's more of the Euphoria version. Different versions, new features like upcoming photonics support.
The only thing that my changes conflict is composite5 (tonemap). With how ez is it to manual patch, I can write some automation (like how Euphoria patches Complementary), but I'd rather try for a pull request.
What's it using
stole the toe of Lottes, then Reinhard Piecewise starting from where the shoulder would be
it did lots of things...