Reshade to force an HDR image as input
- piltrafus
- Topic Author
"... The color buffer ReShade can grab is usually LDR though...
...if the game uses a backbuffer format with more than 8bit per color channel and only a very small amount of games do that."
If a 16bit or 32bit source image was used many shaders could benefit from it. Color correction would be of much higher quality. Less banding and artifacts,etc. It would also expand the posibilities of any shader affecting the lighting of the game. Bloom and flares could use values higher than 1 as a threshold, etc.
I guess we all know the benefits of having it, so the real issue is if its possible to do it.
Maybe Is hard to get it on a generic tool like reshade without doing specific game tweaks? Is it a planned feature for future versions? Was it clamped to 8bit for an specific reason like anti cheating?
Could reshade try to force capture an HDR buffer? maybe its similar to the way the depth buffer is captured?. A generic solution that works in most games?
I'll appreciate any info on this,
Thanks.
Please Log in or Create an account to join the conversation.
- crosire
Please Log in or Create an account to join the conversation.
- piltrafus
- Topic Author
sounds like a challenge to me
I understand that it may seem unnecessary to most people to have access to the HDR output of the game. However it would turn Reshade in a much more powerful tool. Equal in quality to professional comp software with the added benefit of "realtime" procesing.
Anyway. I've send some motivation token$ your way as a sign of gratitude.
Great work on Reshade. Keep it up if you can. Thanks.
Please Log in or Create an account to join the conversation.
- crosire
Please Log in or Create an account to join the conversation.
- piltrafus
- Topic Author
Please Log in or Create an account to join the conversation.
- csigg
I could help with that for UE4, which is actually where I'm currently experimenting with ReShade.
Please Log in or Create an account to join the conversation.
- crosire
Yes, I would. Question is how to mark them. "ID3D11DeviceChild::SetPrivateData" would be an option for D3D11 for instance.csigg wrote: Would you consider supporting HDR with some help from the application?
Please Log in or Create an account to join the conversation.
- csigg
Please Log in or Create an account to join the conversation.
- crosire
Please Log in or Create an account to join the conversation.
- csigg
That would mean that textures (or more specifically SRV) with name could no longer be ignored, even if they aren't ever bound as render target.
One issue I see with this approach is that it requires game developers to name SRVs and those names are not going to be consistent across games, which would make effect authoring somewhat game specific.
Anyway, I have a little D3D11 app that displays a color and depth HDR image. The corresponding textures/SRVs are names "ColorBuffer", "ColorBufferSRV", "DepthBuffer", and "DepthBufferSRV". What's the best way to get that to you (if you are interested)? If you would prefer to have source, let me know.
Please Log in or Create an account to join the conversation.
- crosire
They are not. That's the beauty of ReShade's shader language (remember, it's not HLSL, even though it looks very similar). Nothing is hardcoded. Special textures are requested via semantics:csigg wrote: Similar to 'RFX_backbufferColor' and 'RFX_depthColor' which as far as I understand are hardcoded names.
texture myBackBufferColor : COLOR;
texture myDepthBuffer : DEPTH;
First idea would be annotations, like done with all the special uniform values:
uniform float myTimer < source = "timer"; >;
However, these can only be resolved after ReShade parsed and compiled the shader and are handlded API independent. So something only working on D3D11 cannot be done here, it would need to support all APIs.
Please Log in or Create an account to join the conversation.
- Ederer
Maybe, to reduce performance not too much, there could be one single special effect, like "Exposure correction" or sth. like that. Only this specific effect would use the 32bit input to make adjustment to clipped highlights etc, but it will output an 8bit image, and all following effects will stay 8bit as well.
Please Log in or Create an account to join the conversation.