Chaos Corona Forum

Chaos Corona for 3ds Max => [Max] I need help! => Topic started by: lupaz on 2018-11-26, 00:29:33

Title: Is this possible with corona? (proper brushed metal)
Post by: lupaz on 2018-11-26, 00:29:33
Is the effect shown in the video below possible with Corona?
No matter what I've done in the last couple of years, or since I saw this video, I was never able to replicate this effect with corona.

I don't know if it's that bump map behaves differently than Fstorm or if it's an AA issue.

Is it possible to do it at all? Or I'm wasting time trying?

Thanks!

Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Juraj on 2018-11-26, 11:08:39
Anisotropic effect ? Absolutely, but sadly not with normal map alone if it's too dense. Corona can't sample such microdetail properly.

You have to use the anisotropic property (angle&intensity in reflection rollout).
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: romullus on 2018-11-26, 11:54:17
But you wouldn't see any difference at normal distance anyway, only at extremes close-ups. But at that point you can use bump in Corona too :]

I wonder if Fstorm is able to sample bump so good, just because in the video was used its own noise shader? It might be that this trick won't work with regular noise or bitmap texture.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Juraj on 2018-11-26, 12:15:12
I wonder if Fstorm is able to sample bump so good, just because in the video was used its own noise shader? It might be that this trick won't work with regular noise or bitmap texture.

I wondered this too. At same though, someone told me they integrated this ? http://www.cs.ucsb.edu/~lingqi/publications/paper_glints3.pdf

The benefits of that go way beyond anisotropy alone. It simplifies shader creation and gives super accurate result regardless of resolution. Would be super nice to have that.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: romullus on 2018-11-26, 12:20:55
Oh wow, agree - that would very cool to have.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: lupaz on 2018-11-26, 15:40:35
Anisotropic effect ? Absolutely, but sadly not with normal map alone if it's too dense. Corona can't sample such microdetail properly.

You have to use the anisotropic property (angle&intensity in reflection rollout).

Hi Juraj,
Right, I was referring to the micro detail.
The fake anisotropic property doesn't cut it for me unfortunately.

In Fstorm you can get this effect just by using bump maps.

That would be a really nice feature to have.

Title: Re: Is this possible with corona? (proper brushed metal)
Post by: maru on 2018-11-27, 13:52:30
Maybe this will help?
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: lupaz on 2018-11-27, 15:53:32
Thanks Maru.

Juraj mentioned "micro detail". If that's possible to add to corona, that would be great. Not just for brushed metal.

I'm just starting to use Corona 3 after a long time with 1.6, so I don't know if this was improved or not.
But in general I have the feeling that bump map in Corona (even though it's better than with Vray) it doesn't do what bump maps in Fstorm do.

In Corona, if I want sharp detail using bump maps, I tend to reduce the blurring, but many times this causes a lot of noise and it's basically unusable. So in my experience I always need to have blurring, which is not ideal.

Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Fluss on 2018-11-27, 17:28:28
It would also be great to introduce metalness workflow to be able to reproduce more physically accurate metals without clamping the fresnel as explained in vlado's post :

https://www.chaosgroup.com/blog/understanding-metalness

https://github.com/vkoylazov/metalness?fbclid=IwAR07XIVw3uhInGyymMCbsXU_4ET3w0WojJBXWMvUwZPSX7hgk8yE_zkU5Gs
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Juraj on 2018-11-27, 17:51:07
It would also be great to introduce metalness workflow to be able to reproduce more physically accurate metals without clamping the fresnel as explained in vlado's post :

https://www.chaosgroup.com/blog/understanding-metalness

https://github.com/vkoylazov/metalness?fbclid=IwAR07XIVw3uhInGyymMCbsXU_4ET3w0WojJBXWMvUwZPSX7hgk8yE_zkU5Gs

Metalness is planned for next version as part of new principled shader, was requested 100 times, and looks like we'll get it :- ).

But this is strictly workflow, you're not required to clamp any Fresnel at all even right now. 999 leaves Fresnel disabled 99perc. (for 100perc. you have to map the value into fresnel texture slot), and then you place your metallic albedo into front slot of fallof in reflective slot. Metalness will take 3 steps into one, but visual result will not change from what we have right now.


In Corona, if I want sharp detail using bump maps, I tend to reduce the blurring, but many times this causes a lot of noise and it's basically unusable. So in my experience I always need to have blurring, which is not ideal.

Yeah, I would highly suggest avoiding <1 blurring in Corona, it will eventually lead to some sort of visual artifact at arbitrary combination of resolution & glancing angle when you least expect it. It will give you the result you want in one moment and that produce total artifact in slightly changed angle/resolution.
To make CoronaBitmap more useful, a totally different algorithm should have been introduced as high-quality alternative.

But to be fair to Corona, Corona produces superior and correct result from normal map, something F-Storm still doesn't. In fact, it took a ton of convincing and time for the F-Storm dev to even support normal map, as he didn't even understood why they would be preferable.  So this is tie.

But yeah, microgeometry support in shader would be impeccable stuff !
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Fluss on 2018-11-27, 19:47:41

Metalness is planned for next version as part of new principled shader, was requested 100 times, and looks like we'll get it :- ).


Has it been confirmed anywhere ? All I see on the trello is a clearcoat material which is really vague. If that's the case, it's a good news !


But this is strictly workflow, you're not required to clamp any Fresnel at all even right now. 999 leaves Fresnel disabled 99perc. (for 100perc. you have to map the value into fresnel texture slot), and then you place your metallic albedo into front slot of fallof in reflective slot. Metalness will take 3 steps into one, but visual result will not change from what we have right now.


From what I understand from Vlado's post, metallic fresnel is not computed the same way as "standard" fresnel you're referring to. There is a plot of the computed fresnel in the example github folder :

(https://github.com/vkoylazov/metalness/blob/master/example_output/metalness_curves.png?raw=true)

"The folder example_ouptut contains files with example output from the program. As can be seen, the VRayMtl version of the metalness along with the IOR values from this program produce results that are closer to the actual complex Fresnel curve compared to Ole Gulbrandsen's "Artist-Friendly Metallic Fresnel" (see http://jcgt.org/published/0003/04/03/paper.pdf)"

Not to mention that the actual complex fresnel curve is already more accurate than the standard Schlick approximation for metals.


Yeah, I would highly suggest avoiding <1 blurring in Corona, it will eventually lead to some sort of visual artifact at arbitrary combination of resolution & glancing angle when you least expect it. It will give you the result you want in one moment and that produce total artifact in slightly changed angle/resolution.
To make CoronaBitmap more useful, a totally different algorithm should have been introduced as high-quality alternative.

But to be fair to Corona, Corona produces superior and correct result from normal map, something F-Storm still doesn't. In fact, it took a ton of convincing and time for the F-Storm dev to even support normal map, as he didn't even understood why they would be preferable.  So this is tie.

But yeah, microgeometry support in shader would be impeccable stuff !

As we are talking micro-details, Pixar's bump to roughness approach should really be considered. It can use normal, displacement or even bump maps to affect microfacets distribution and anisotropy, in order to recreate surface imperfections in a way that is less prone to diverge according to the distance and produce more physically correct light interaction.

See this : http://graphics.pixar.com/library/PxrMaterialsCourse2017/paper.pdf
And this : https://graphics.pixar.com/library/BumpRoughness/paper.pdf

quoting from the second paper :
"It is cheap to evaluate in modern rendering systems. It plugs directly into a BRDF, such that no modification is needed past the material-level description and has no effect on how the BRDF is sampled or light transport is integrated."
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Juraj on 2018-11-27, 20:11:08
Well, can't tell more than is public :- ).

Anyway, I wasn't talking about using Fresnel at all, but disabling it. Vray's metalness workflow doesn't have anything to do with full-model (n&K) fresnel, the fact they introduced metalness workflow (as part of alternative to specular workflow) at same time with complex fresnel is, which was long time possible to with Siger's plugin in reflection slot.

Vray's metalness workflow, does not introduce additional BRDF model so the visual results are identical.

Quote
Not to mention that the actual complex fresnel curve is already more accurate than the standard Schlick approximation for metals.

I don't think anyone is really confused about this here. ( Corona's simple IOR model btw isn't based on Schlick either )

Quote
As we are talking micro-details, Pixar's bump to roughness approach should really be considered. It can use normal, displacement or even bump maps to affect microfacets distribution and anisotropy, in order to recreate surface imperfections in a way that is less prone to diverge according to the distance and produce more physically correct light interaction.

See this : http://graphics.pixar.com/library/PxrMaterialsCourse2017/paper.pdf
And this : https://graphics.pixar.com/library/BumpRoughness/paper.pdf

Absolutely !! There is lot to be desired about the information Corona derives from surface height (bump/normal). Right now to properly simulate the effect, you need to use both bump/normal and glossiness (to simulate the same effect instead of providing additional information only), actually even specular (as AO)/fresnel, and the relationship between these is not very straight forward and often the effect looks wrong (esp. for metals and woods where the surface height dictates the whole look).

Pixar's shaders are always the best place to look at where we should be.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Fluss on 2018-11-27, 20:59:29

Anyway, I wasn't talking about using Fresnel at all, but disabling it. Vray's metalness workflow doesn't have anything to do with full-model (n&K) fresnel, the fact they introduced metalness workflow (as part of alternative to specular workflow) at same time with complex fresnel is, which was long time possible to with Siger's plugin in reflection slot.

Vray's metalness workflow, does not introduce additional BRDF model so the visual results are identical.


looking at the comment section :

(https://forum.corona-renderer.com/index.php?action=dlattach;topic=22564.0;attach=94292;image)

(https://forum.corona-renderer.com/index.php?action=dlattach;topic=22564.0;attach=94294;image)

edit : Well I'm not quite sure we understand each other :-)

In Corona, WITHOUT ANY PLUGIN, we're not able to reproduce metals accurately without dimming reflection intensity at grazing angles. With metalness workflow, we can leave reflection color to white (proper PBR -> full intensity at F(90°) ) as the metal color is driven by the diffuse slot. What's more, as explained above, the Vray metallic Fresnel calculations DO SEEMS to have been reworked to provide more accurate results. Here is a chart comparing errors to groundtruth between Vlado's and Ole Gulbrandsen's implemntations (Complex fresnel plugin is based on that last one) :

(https://raw.githubusercontent.com/vkoylazov/metalness/master/example_output/metalness_spreadsheet.png)
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Jpjapers on 2018-11-28, 16:05:53
Ive tried and tried for ages to get a material in corona that looks anywhere near as good as that brushed fstorm material and never got close. Its always the bump microdetail thats missing.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Fluss on 2018-12-05, 19:01:51
I leave that link here, really interesting and informative : https://renderman.pixar.com/stories/cars-3
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Jpjapers on 2018-12-05, 22:11:43
I let that link here, really interesting and informative : https://renderman.pixar.com/stories/cars-3

Incredibly interesting! Worth it for the Close up pixar renders haha.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Fluss on 2018-12-05, 23:00:33
I let that link here, really interesting and informative : https://renderman.pixar.com/stories/cars-3

Incredibly interesting! Worth it for the Close up pixar renders haha.

If you read carefully, it's not about close-up but on the contrary for details preservation when an object is far away from the camera. :-)
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Jpjapers on 2018-12-05, 23:20:55
I let that link here, really interesting and informative : https://renderman.pixar.com/stories/cars-3

Incredibly interesting! Worth it for the Close up pixar renders haha.

If you read carefully, it's not about close-up but on the contrary for details preservation when an object is far away from the camera. :-)

Good point well made
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: David Males on 2018-12-07, 10:34:47

Yeah, I would highly suggest avoiding <1 blurring in Corona, it will eventually lead to some sort of visual artifact at arbitrary combination of resolution & glancing angle when you least expect it. It will give you the result you want in one moment and that produce total artifact in slightly changed angle/resolution.
To make CoronaBitmap more useful, a totally different algorithm should have been introduced as high-quality alternative.


Hey Juraj, just noticed this advice of yours - this applies only for normal/bump maps, correct? I mean 99% of people is using 0,01-0,1 blur on other textures to get the detail..
Great stuff anyway! Looking forwards!)
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Juraj on 2018-12-08, 15:19:20
Try using 0.01 on already sharp bump/normal map high-res texture, then render said render in high-res (5-8k) and you will start to notice unwelcome surprise at many grazing approaching angles :- ). It's not pretty...

Then again, most people just use all sorts of crap bitmaps in bump, and if you render under small-to-mid res, bitmap filtering will literally erase ton of detail.

There really isn't one good value because it just depends on so many factors. 0.01-0.1 might give you better results in some cases but provide poor issues in other. With default filtering you're at least safe. I can't afford to send render to high-res final and then look in the morning and notice artifacts.

We need better bitmap filtering that doesn't need any sort of tinkering. Something that would finally give CoronaBitmap a reason to properly exist :- ).
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Fluss on 2019-02-01, 19:08:34
I wonder if Fstorm is able to sample bump so good, just because in the video was used its own noise shader? It might be that this trick won't work with regular noise or bitmap texture.

I wondered this too. At same though, someone told me they integrated this ? http://www.cs.ucsb.edu/~lingqi/publications/paper_glints3.pdf

The benefits of that go way beyond anisotropy alone. It simplifies shader creation and gives super accurate result regardless of resolution. Would be super nice to have that.

Juraj, finally took time to plunge a bit deeper in the paper you linked here and damn yeah! That's really cool!
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: lupaz on 2024-02-20, 15:46:39
I wanted to bump, no pun intended, this thread and see if this will ever be possible in a render engine like Corona.
Is it even possible with Vray CPU or GPU?

What I'm talking about is to have a bump map to create brushed effects like in real life, the way Fstorm does it.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Aram Avetisyan on 2024-02-21, 11:41:23
I wanted to bump, no pun intended, this thread and see if this will ever be possible in a render engine like Corona.
Is it even possible with Vray CPU or GPU?

What I'm talking about is to have a bump map to create brushed effects like in real life, the way Fstorm does it.

To create a brushed metal material, even with extreme close ups, is absolutely possible with Corona (and any modern render engine I believe). It just takes artistic control and depends on how "deep" you want to go. Simple answer will be to use texture with extreme detail, and turn off the texture filtering, so all the detail is taken into account as much as possible (0.01 filter value for Corona). But this can cause heavy flickering of the surface in case of animations. You just have to try it once and see how it "feels". This is the reason textures are filtered by default to be safe.
I know most Corona users do stills, so you are absolutely fine to just disable filtering for textures if you want (even for all of them).

The technical part here is mostly about texture filtering, which different engines do differently or just have different control over it, in connection with the host app as well.
This has actually been to some degree covered by the new "Roughness modulation" filtering mode for CoronaPhysicalMtl - if you use extremely detailed texture for bump, it will turn out to be anisotrophy (how it works in real life). "Roughness modulation" will understand how much of the texture as bump/normal (much calculation) should be considered, and how much of it can be treated as roughness (less complex calculation), depending on the distance from camera (think of it as condensing 1000 pixels of texture into 10 pixels in render resolution). But as it takes much effort and very detailed textures, that is why renders engine have separate, more convenient control for it, to get perceptually the same effect.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: lupaz on 2024-02-21, 21:35:58
Thank you.

Here I did a test in Corona and Fstorm.
250 passes with Corona.
To me it looks like the detail of the texture is lost or clamped in Corona (first image).
In both the mapping and texture are the same.
In both cases I used zero roughness.

The archive is here:
https://we.tl/t-jOyW2VVMkE
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: Aram Avetisyan on 2024-02-22, 10:14:40
Thank you.

Here I did a test in Corona and Fstorm.
250 passes with Corona.
To me it looks like the detail of the texture is lost or clamped in Corona (first image).
In both the mapping and texture are the same.
In both cases I used zero roughness.

The archive is here:
https://we.tl/t-jOyW2VVMkE

I don't think that the detail is lost in Corona.
Even if the material setup is virtually the same, render engine may have different calculation algorithms.
I would say this is simply about artistic control - getting the look you want in any render engine.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: lupaz on 2024-02-22, 14:44:26
Thank you.

Here I did a test in Corona and Fstorm.
250 passes with Corona.
To me it looks like the detail of the texture is lost or clamped in Corona (first image).
In both the mapping and texture are the same.
In both cases I used zero roughness.

The archive is here:
https://we.tl/t-jOyW2VVMkE

I don't think that the detail is lost in Corona.
Even if the material setup is virtually the same, render engine may have different calculation algorithms.
I would say this is simply about artistic control - getting the look you want in any render engine.

Since you guys make videos a lot, I'd be interested to see a video dedicated specifically to creating realistic clean metallic surfaces. Not cylinders but flat surfaces. Thanks.

Edit: Specifically how to remove this clear reflection without using roughness. see attached.
EDIT 2: And without using fake anisotrophy
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: pokoy on 2024-02-22, 17:03:23
...
Edit: Specifically how to remove this clear reflection without using roughness. see attached.
EDIT 2: And without using fake anisotrophy
Yeah that area is not looking good, same for the harsh reflection/highlight cutoff on the right box. What would be needed to get rid of these?
At least similar fireflies are there in Fstorm too, these would be my main concern in both renderers, wonder if they'd clean up without clamping highlights.
Title: Re: Is this possible with corona? (proper brushed metal)
Post by: lupaz on 2024-02-23, 16:40:07
...
Edit: Specifically how to remove this clear reflection without using roughness. see attached.
EDIT 2: And without using fake anisotrophy
Yeah that area is not looking good, same for the harsh reflection/highlight cutoff on the right box. What would be needed to get rid of these?
At least similar fireflies are there in Fstorm too, these would be my main concern in both renderers, wonder if they'd clean up without clamping highlights.

To be fair with Fstorm I only rendered that for 1000 Fstorm passes (not much), while I rendered the corona version for 250 Corona passes (should be enough).
I'm pretty sure Fstorm would eventually clear the fireflies but I don't think corona could.