Tonemapping - Plz Halp

Bit of a rant - or a cry for help - but I’m either approaching lighting or tone mapping totally incorrectly; it is absolute guesswork every time, and rarely is it ‘photorealistic’.

Looking at Juraj’s work, Bertrand’s work, etc. - there is a consistent look and quality with each project and I’m just not convinced (for now) that they are also, just guessing; I assume they have some sort of method - a procedure. For example, when I worked in a studio, we had a very strict method, and it produced a consistent result, but with Corona I feel like I’m guessing once I get to tone mapping.

In Ludvik’s, [Time to ditch sRGB/Linear as default (?)](https://forum.corona-renderer.com/ https://forums.chaos.com/t/136176 ) thread, it is mentioned:

This is a very attractive proposition and it speaks to the issue I am referring to. Regardless of whether such an implementation is feasible or not, I’d like to learn how to produce images that are of the quality we expect from the Corona Gallery and I just haven’t seen strong tutorials - free or paid - demonstrating such an approach.

Its not just tonemapping that makes those guys renders look amazing every time. Its attention to detail at every stage and questioning how something actually looks in reality vs what we imagine it looks like. Lacking some minute details is enough to make your brain subconciously question an images’ realism so the answer to the question “How do i make it look like [insert artist here]” is usually “Hard work and practice” when you really break it down. I get what you mean though with regard to the consistency of some people images. I think its maybe to do with everyone having a preference of HDRI for a given look, combined with repeating and refining your preferred process over time.

I dont think you need to worry though. Your renders are always awesome!

Filmic False Colour.cube (896 KB)

  1. “Turn linear sRGB into digital camera product”

having it defaulting to a camera, with an option to switch to a very special mode, which will make your output less realistic, but compose-able in post.

You can get this by rendering your image at the default settings, then enabling LUT and picking one of the 3 Kim Amland’s photographic LUTs. They are captured from real life digital cameras.
Then you can optionally reduce the strength of the LUT to ~0,8 (to your own taste) and play with highlight compression and filmic values (again to your own taste, to reduce highlight burn).

  1. “I want to produce images like the masters”

This is a very attractive proposition and it speaks to the issue I am referring to. Regardless of whether such an implementation is feasible or not, I’d like to learn how to produce images that are of the quality we expect from the Corona Gallery and I just haven’t seen strong tutorials - free or paid - demonstrating such an approach.

I am afraid this is not as easy as just following one or two tutorials. Artists have their own secrets. Some of them definitely use Photoshop or other post tools to adjust images in addition to what is done in the VFB, not only by changing the overall tone mapping/coloring, but also locally, e.g. by making some areas more or less noisy, brighter/darker, more clear/blurry, etc.

@Jpjapers, thank you so much for your thoughtful and detailed response, and @Maru thank you for your advice - I really appreciate it :smiley:

I think both of your responses more or less encapsulate the truth of the matter, which, as you say @Jpjapers - it boils down to hard work and practice. I want to be clear, I’m not grasping for a magical solution, I’m not pining for a “make this look good button”, but I do imagine there are techniques - like using False Color LUTs, etc. - to help narrow the path toward an image that speaks to the quality of the ‘masters’.

I would also say that I have scoured the forums for many of the relevant tools that have been shared here (e.g. Dubcats camera LUT dumps, fStorm LUTs, Adanmq false colour LUTs and log space filmic LUTs, specular to IOR cube (for materials - Quixel Bridge does this by default now), Dubcats ACES emulation recommendations, etc.) and gathered many high quality (?) HDRIs, including Jørgen Herland and Peter Guthrie.

I assume then, that if I am working with high quality tools, then the onus is on me to get the most from the tools which are already doing their part to help.

I’ll take a look at the resources you linked @Jpjapers, they seem promising - thank you!

Id still say the biggest thing to always keep in mind is the reality aspect of whatever youre doing. If youre making a lamp light, do some googling and find out the lumens output of a lamp bulb. If you ever have to boost the sun intensity. Something else is wrong. If you ever have a light set to crazy intensity to make it look realistic, something else is wrong. It sort of helps to just keep asking why when you reach those points. It often helps to set everything back to defaults to rebalance your image if you get to a point where youre making a completely unrealistic guess.

But as i say, your renders look great already! Everyone has a style. I certainly have a method when it comes to lighting but the longer you play around with things the more youre likely to develop your own style instead of trying to emulate others. I didnt think you were asking for a magic button but it really does just boil down to understanding the software, its relation to real world values and knowing the physically accurate values and methods that you should be using to achieve realism. Yes CG is a playground and we arent bound by physics. But if youre going for realism, you should adhere to realism and the rules which apply in the real world.

As Da Vinci said “Simplicity is the ultimate sophistication”.

Thanks man, I really appreciate that, and I definitely feel you with that DaVinci quote :heart:

Haha, yeah I definitely find myself doing this from time to time - get too far down the rabbit hole and just have to reset.

That is a good point about light intensity, and something I should probably do more to be mindful of. I’ve mostly been in the habit of working with W/(sr.m^2)(?)

Also, thank you for that false color LUT you shared, I really like it! I’ve used a couple other ones, but I prefer the color code with that one.

Ive been questioning which units are best to use for a while. I prefer using Lumens because lighting manufacturers pretty much always list lumens as part of their spec sheets.
In my opinion, lumens work alot better as the light output stays the same regardless of the radius, it just becomes more focussed the smaller it gets whereas W/(sr.m^2) is dependent on the size of the light.

What about directionality? I’m asking myself for a while about that… Light power does not seem to take that parameter into account

@Jpjapers this is a great example of what I was originally posting about - I had no idea lumens wasn’t affected by the light dimensions (?)

I had a couple of years of experience in commercial and retail lighting so i had to have a very basic understanding of real-world info on theoretical light measurements.
Ill try and give a brief and probably misguided rundown and im sure theres things here that are completely misunderstood or mixed up so ill gladly take corrections if ive got it wrong. I know Ondra and Juraj have talked about this in various threads.

AFAIK Each of the measurements have a specific function and isnt always just a personal preference thing.

Lumens is a measure of how much total light a light will emit at the source (luminous power) so it isnt dependent on how big the light is because its an absolute and in my opinion is the correct unit to use if youre going for realism. Because its an absolute value, it spreads that absolute measure of light across the surface and gets brighter or dimmer as the light gets smaller or larger but the total amount of emitted light stays the same. Lumens output is on most commercial lighting spec sheets because there are minimum required lux levels across various spaces by law. This info is almost always available for every light you could need to include in your scene if its based on a real light as more often than not its on the manufacturers spec sheet. I like working with this one because you can be sure that if your bulb is the correct size and if you know the lumens value, you can be confident its light output is pretty accurate, espeically if you have an IES too.

If you run IR and set the intensity units to something like 2000 w/sr.m^2 and change the radius, youll see the scene get brighter. Whereas lumens, if you make the light bigger, the same amount of light output is spread across a larger area like when you focus and defocus a lens on a torch or a headlamp. (UPDATE 2023: Corona 9 you need to stop and restart IR to see the effect as lights dont seem to update when you change their units.

Lux The measure of light output as percieved by your eye ( measures exitance at the source and illuminance at the surface). Its a photometric measurement of how lumens are spread across a surface (UPDATE 2023: Im told the lux in corona is a measurement at 1000mm from the light source which is pretty much standard).

You could have 1 really small bright light in your house and get a high lux level on your floor. Whereas if you wanted to light a warehouse with those same lights, you would need alot more of them to achieve the same lux level despite the lumens output of the light being the same. 1 lux is 1 lumen per square meter. I tend to use lux for things like mimicking daylight because its easy to measure lux with a light meter and adjust accordingly. I do with corona had a lightmeter object though much like mentalray had.

This video demonstrates the relationship between lux and lumens quite well. The torch is always outputting the same amount of light (lumens) but when spread across a wider area, the lux level on the surface decreases the wider the focus is and increases the narrower it gets.

Watts per steridean per square meter is a radiometric measure of the lights percieved brightness and it depends on the size of your light so for every size increase, you’ll get a power increase. It measures radiance which is sort of how much of the emitted power the eye is recieving. Id like to understand this a bit better but basically if you make the light larger, the output of the light will scale to ensure that the lux on the surface stays the same.

Candelas (cd) measure luminous intensity at the source in the same way that lux measures it on a surface. That is, how bright is the light at the source. 1 candela for a wax candle flame is accurate. It uses something called the steridean value which is basiccally the cone of the light. I’m not certain on this one. Again id like to know more.

Here’s a little diagram of how the measurements relate to each other

I wish there was a corona light meter like the old one in mental ray. Then i could actually do some real tests because theres some stuff about Steridean I dont understand (which i think is the technical term for directionality?) and i thought based on the descriptions of the units, the directionality would affect them differently . I asked a fair few years ago about the implementation and maru had some quotes from somewhere. Hopefully one day we might see some sort of implementation when the big list of future bugs/features is running dry. Unfortunately now mental ray is gone you cant really do much.

You can paste the value which you obtain in W/(sr.m^2) from image pixel (or from your lightmeter in real life) into Corona light intensity and then change light units to Lux. But from what I understand this still requires some guessing and is more of a “workaround” than real light metering. Unfortunately, it looks like a proper implementation of light metering tools will be required for this to work.

Another idea is to use native 3ds Max photometric lights as Corona supports them. You can then switch to Mental Ray and use pseudo-color exposure controls or other tools which are built into 3ds Max to get the desired light intensity, and switch back to Corona again.

it seems that the easiest way to recreate real light in Corona (or any other renderer probably) would be to find what is the light’s intensity in lumen (it should be on the box/package if this is some regular light bulb, or there should be some manual with such info if this is some more advanced/photographic light). If you know value in lumen, then you should be able to simply paste that value into Corona light. If you know the power of light in W, and you know the light’s efficiency, then you should also be able to convert this into lumen. Here is an example calculator: Watts to lumens (lm) conversion calculator

There are also some obstacles like light color, or light shape, so it looks like this is always some simplification.

If you are not after scientific precision, I would suggest you taking a number of reference photos so that you would know the camera exposure values (shutter speed, iso, f number, etc), then recreating these exposure values in Corona and tweaking light source intensity so that the image is visually similar to the reference photos. Unfortunately I don’t think there are currently any easy ways of doing this.

@Jpjapers at the very least your summary seems like a good shorthand for how to think about these different parameters. You mentioned earlier:

I was going back and forth with LightMix and realized I was boosting a W/(sr.m^2) light source to >11,000k and then remembered your comment.

Your summary post seemed to indicate that W/(sr.m^2) measurement may include a perceptual component - so there can’t really be a ‘ground truth’ measure for a light of that kind(?)

Hey Maru, what do you exactly mean by “rendering with default settings” ? Literally all cam settings untouched, like HC 1, contrast 1, etc ?
Absolutely no highlight compression mostly burns some whites, as we all know. I know that many guys fix this in post as 32 TIF bit or EXR.
In my workflow, for example, I rarely have time for this process… and honestly I don’t even like the idea to fiddle around too much in post. Feels fake to me.

However, lately I notice that “correct tone mapping” gets more and more in Corona users´ minds… since, also in my opinion, it is THE key factor for realism.

This subject has surfaced over and over since Fstorm seems to produce great results out of the box. I wanted to try.
I found a good Cornell box taken with a Nikon D70, I believe it was used to showcase Maxwell 1.0 back in the day.

So, this is how it looks when we compare it to Corona default settings:

I agree that it looks a little dull and uninspiring. Maybe even “not realistic” compared to what you get from a camera.

Now, this is what you get with Fstorm in the Default settings.

I used the exact same RGB values, maybe there is something I don’t know about Fstorm, so I tweaked the RGB values to match a little bit closer.

That’s better… so yea Conclusion: Fstorm produces more photographic images in the default settings.

However…

Look what happens when I enable LUT, choose Kim Amlan 02 and Enable Bloom and glare (it takes 1 second to do all of that)

Well, to me, that looks pretty photographic. I don’t think it would be possible to correctly choose Fstorm or Corona in a blind test.

Now, if you like the original Fstorm look. Just increase Saturation to 0.2

Now, I’m not suggesting that just because it is easy it shouldn’t be extremely easy.

My proposal is to include a “Magic” button (just like the iphone has) that automatically enables the most photographic settings. Maybe even enables a new pannel with limited options that all produce “ready to use” images.

I do not think you will be able to produce Johanes level images just like that. But I do remember how much my images improved when I discovered LUTs, and how long it took, because I didn’t have that information in my brain, there was some friction.

I would also say make the photographic LUT the default, since everyone who doesn’t want LUTs, know what they are and how to disable them, but people who WANT LUTs, might not know they exist.

But that’s probably too much of a change.

Anyway, hope this helps!

That is a very interesting observation and post Lolec. Thank you for your time :smiley: I am a huge fan of those Dubcat’s LUTs. They are amazing.

I suppose I’m wondering, could you share that Cornell box with us? I’d be really interesting in seeing how Octane handles it because they have a fairly specific “look” themselves.

Thanks again for your hard work, man!

Regarding Lolek´s test: me personally I know those parameters in Corona and what effects they have, including LUTs. Using them all day long.
I guess 99,5% of us know those tricks.
However, a simple box or a living room with all furniture, etc… still seem to be two different things. :smiley:
Who knows, maybe if you make all shaders super-duper physically correct, according to real life, it might get an extra kick of realism… :confused:
But who’s time for such?

This morning I tried to look at good 3D images that stand out ( like those fron J. Lindqvist, Ferretti, etc. ) and have to say that a lot of the realism happens in the way they deal with the light
in therms of highlight peak, contrasts, etc. Those great images mostly have like a color layer that influences all colors… vs. too clean colors. And no crazy contrasts… since actually real world looks like this.
That’s actually a thing one learns as an artistic painter at academies in the first semester. :smiley:

Right now I was a bit stuck on lighting a bathroom that has no windows and some creme colored wall tiles… not the nicest thing for the light mood… I hate such rooms. :smiley:

Long story short: by mistake I unticked “tone mapping” while the KimAmland LUT was full on ( value 1 )… and voilà, suddenly the freaking grayish light in the bathroom changed to a much more natural look,
just like I see now in Lolek´s posting.

Dudes… this setting which Maru mentioned (camera settings on default + Amland LUT)… seriously, this should be standard Corona setting and the first basic tutorial.
As other users mentioned: a pity to fiddle around for years in the cam settings, the light, materials, etc - just to realize that camera on more-less base setting plus a good LUT is the better way to go.

Glad that this topic of light mapping came up here!

It seems a lot of people believe there is a magic button that makes everything look photoreal but that won’t happen. We’re 90% there with Dubcat’s LUTs. The only missing bit is a slightly better handling of highlights. That’s it. Materials, composition and lighting play a huge part too. In fact, the main issue here is that with Dubcat’s LUTs, you’re stuck with embedded curves. So a good tone mapping tool would let access to toe, shoulder and medium parts of the image, in an elegant manner (probably in log space like ACES is doing during the display transform). But there is no universal settings… So I disagree to make those settings default.

I agree there is no “magic” setting. But Fstorm has a strong LUT as default and maybe that gives people the idea of it being so much better (it is not)

I think this is a separate discussion. After you’ve done every possible thing, Fstorm still handles tonemapping a little better. But I suspect what most people would notice is just enabling a photographic LUT.

That’s why I think a single button with an attractive name which selects a photographic LUT enables bloom and maybe some other small tweaks would make a huge difference and unlock peoples brains to start exploring with those settings too.

Thanks for taking the time to post up the Cornell box tests lolec.

While I agree that the Kim Amland LUT with minimal VFB fiddling produces a vastly super result than stock settings, the way Fstorm handles highlight peaks, the bottom curve of extreme darks and colours in general is still superior. It may not be as apparent in a simple Cornell box scene - start populating a real scene, with strong lighting certain areas and watch what happens to your highlights, strongly coloured materials and deep shadows; things start to break down and you end up chasing the dragon.

You can start to notice it in your Corona + Kim example 1; look at the exaggerated shadowing and black crush creeping in, as well as the front face of the small cube compared to the Fstorm tweaked example. Overall scene contrast is retained in the Fstorm tweaked example without exaggerated shadowing - it almost looks like light is behaving more realistically on the objects.