chunky-dev / chunky

A path tracer to create realistic images of your Minecraft worlds.
https://chunky-dev.github.io/docs
GNU General Public License v3.0
654 stars 77 forks source link

Independent skymap exposure control #1472

Closed jackjt8 closed 2 years ago

jackjt8 commented 2 years ago

Different skymaps, mainly HDRi's, have vastly different brightness levels. There are a few benefits when it comes to memory usage and performance when it comes to using pngs vs HDRi's.

png varient 16SPP: image

HDRi varient 16SPP: image

In the case you wish to switch from png to HDRi, or HDRi to HDRi, and you do not wish to alter your settings too much... you can't. Opposed to having a single control which can be used to alter how the changed element interacts with the scene you are required to edit multiple:

Sky brightness, Apparent sky brightness, Emitter intensity, Sun intensity, Sun luminosity, Exposure.

Each of those settings have knock-on effects which take time to iron out.

He's an example HDRi: image

This is a crude "fix" by just adjusting the exposure: image

You would still need to re-adjust all the other settings.


Having a single control that can be used to quickly adjust the exposure, both brightness and apparent, of just the skymap would increase flexibility and reduce time spent tweaking all the spaghetti various interconnected settings.


Related to #1471

Peregrine05 commented 2 years ago

A checkbox to bind the two Sky brightness controls to each other is a possible solution.

jackjt8 commented 2 years ago

A checkbox to bind the two Sky brightness controls to each other is a possible solution.

What happens when you "bind" the two controls if the values are different? Are we going to force the values to be the same or are we going to attempt to adjust them while maintaining the ratio?

What happens when you unbind the controls? Will the values return to their unbound state?

How will we explain this behaviour to the user?

--

I understand that this is probably how we will achieve this effect however in terms of complexity a separate option that can be used to adjust skymap exposure would be beneficial. Simulating the proposed bound Sky brightness controls means we can often end up working with values as low as 0.025. Our minimum is 0.01(1) for slider controls. If we are to use this bound solution we would be restricting how quickly users can make fine adjustments. If we do place skymap exposure independently, the user would just need to adjust it once to get the approximate value set. Fine adjustments could then be made within the Lighting tab from a basis of 1.0 which would make adjustments quick and easy.