Author Topic: Corona Bump is so broken  (Read 7934 times)

2022-12-10, 21:10:35

Basshunter

  • Active Users
  • **
  • Posts: 279
    • View Profile
« Last Edit: 2022-12-11, 16:29:53 by Basshunter »

2022-12-10, 22:23:36
Reply #1

dj_buckley

  • Active Users
  • **
  • Posts: 869
    • View Profile
Is this behaviour the same when your texture is plugged into a Corona Bump Converter?  Not infront of 3DS Max to test it

2022-12-11, 16:29:26
Reply #2

Basshunter

  • Active Users
  • **
  • Posts: 279
    • View Profile
Is this behaviour the same when your texture is plugged into a Corona Bump Converter?  Not infront of 3DS Max to test it
The result is worse. For some reason, even lowering the filtering of the noise node (as it is suggested in the video) gives you a bad result when using bump Converter node.
« Last Edit: 2022-12-11, 17:53:11 by Basshunter »

2022-12-11, 17:48:27
Reply #3

aaouviz

  • Active Users
  • **
  • Posts: 881
    • View Profile
    • Another Angle 3D
Actually very interesting...
Nicolas Pratt
Another Angle 3D
https://www.instagram.com/anotherangle3d/

2022-12-11, 20:13:19
Reply #4

lupaz

  • Active Users
  • **
  • Posts: 951
    • View Profile
This always annoyed me about Corona.
Following...

2022-12-12, 01:08:31
Reply #5

dj_buckley

  • Active Users
  • **
  • Posts: 869
    • View Profile
Probably explains why my floors always look nice when I'm testing using 2d pan and zoom, nice matt look with visible grain, then when I zoom out to render, they look flat and shiny.  Then I end up tweaking the shader so it looks right at normal resolution.

So in effect, we get it looking realistic, then we have to break the shader and make it unrealistic, just to make it look realistic again.  Make it make sense .  Sigh.

Be a good time for the devs to jump in.  I'd hate to think all these speed increases we've been getting over the years are all at the sacrifice of something else.

2022-12-12, 01:29:16
Reply #6

Basshunter

  • Active Users
  • **
  • Posts: 279
    • View Profile
Probably explains why my floors always look nice when I'm testing using 2d pan and zoom, nice matt look with visible grain, then when I zoom out to render, they look flat and shiny.  Then I end up tweaking the shader so it looks right at normal resolution.

So in effect, we get it looking realistic, then we have to break the shader and make it unrealistic, just to make it look realistic again.  Make it make sense .  Sigh.

Be a good time for the devs to jump in.  I'd hate to think all these speed increases we've been getting over the years are all at the sacrifice of something else.
I completely feel you.

Hard to believe the devs didn't know this was happening from the beginning. It's so disappointing.

2022-12-12, 02:20:55
Reply #7

lupaz

  • Active Users
  • **
  • Posts: 951
    • View Profile
Probably explains why my floors always look nice when I'm testing using 2d pan and zoom, nice matt look with visible grain, then when I zoom out to render, they look flat and shiny.  Then I end up tweaking the shader so it looks right at normal resolution.

So in effect, we get it looking realistic, then we have to break the shader and make it unrealistic, just to make it look realistic again.  Make it make sense .  Sigh.

Be a good time for the devs to jump in.  I'd hate to think all these speed increases we've been getting over the years are all at the sacrifice of something else.
I completely feel you.

Hard to believe the devs didn't know this was happening from the beginning. It's so disappointing.

There are many threads about this. Micro detail was discussed several times. I've never seen a good explanation from devs why this is so hard to do in corona.

2022-12-12, 02:42:44
Reply #8

Basshunter

  • Active Users
  • **
  • Posts: 279
    • View Profile
Yeah, I can see there's been couple of threads mentioning this problem in the past.



I Always knew something was wrong with my materials when looked from a distance but wasn't sure what is was until now. Man, you just get a completely different material when you zoom out! The only way to get a proper bump that still works in the distance is to set Blur to the lowest value possible. However, doing this would increase render time.

This is a big deal in my opinion! How is it that one of the best render engines for archviz can't just handle bump properly?!




« Last Edit: 2022-12-12, 02:55:26 by Basshunter »

2022-12-12, 10:19:22
Reply #9

dj_buckley

  • Active Users
  • **
  • Posts: 869
    • View Profile
Turns out I investigated this in 2019 - 3 whole years since I've been tweaking materials to combat this issue - https://forum.corona-renderer.com/index.php?topic=23230.0

2022-12-12, 13:00:41
Reply #10

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12708
  • Marcin
    • View Profile
Hi all, first of all, I would really appreciate changing the thread title. "So broken" is not really true.

The current behavior of bump/normal map filtering is expected in Corona. We do however have some user reports where it is clearly not optimal, so we will do our best to improve it in future versions. On the other hand, we are not getting many reports like this, so it can't be that bad. ;) 

There are some reasons for bump filtering, for example imagine that you have an object with strong, sharp bump far away from the camera and you animate it (either the object or the camera). You would like to see smooth movement, but with low or no filtering you will see strong high-frequency flickering of the bump map. Filtering "blurs" the texture so the result will be more acceptable.

You can negate that kind of high-frequency flickering, for example with output clamping (which AFAIK - I may be wrong - happens in fstorm by default), but we do not want it as we always choose rendering quality over heavy bias.

There are also some other fixes/improvements possible to implement in Corona, but they will require a lot of research and development from us.

If you have some examples where the current behavior fails, please send them over - we are always happy to investigate, offer some workarounds, and log specific cases for our devs to review.
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2022-12-12, 13:57:14
Reply #11

Juraj

  • Active Users
  • **
  • Posts: 4743
    • View Profile
    • studio website
Yeah microdetail is always problematic. Reduce filtering in either map (native or Corona, or bumpconverter node) and you get possible artifacts. Don't, and your detail is very much angle and resolution dependent. I don't like any filtering (I don't do animations though) but Bump/Normal can stop functioning without filtering. I've also been interested in Vray's elliptical filtering mode.

A solution that worked for me is to render quite high-res. You don't need to multiply your render-time in order to do so, down-sampling of noisier high-res files to lower resolution clears some of that noise. Also, denoised high-res file for most part looks better then undenoised lower-res file.

Possible solution for accurate detail vs animation smoothness is to use Devel/Debug menu override between these modes. There is no filtering option which can be default for stills.

I also don't use native max noise in bump, or much at all. I rather triplanar noise bitmap for more consistent result across resolution. The F-Storm is using its own noise map for good reason.
« Last Edit: 2022-12-12, 14:01:32 by Juraj »
Please follow my new Instagram for latest projects, tips&tricks, short video tutorials and free models
Behance  Probably best updated portfolio of my work
lysfaere.com Please check the new stuff!

2022-12-12, 15:10:41
Reply #12

lupaz

  • Active Users
  • **
  • Posts: 951
    • View Profile
Before Fstorm's example of the pot with real (not from texture or fake anisotropy) brushed metal I'd have never expected rays coming from a camera trying to find light would catch up such small detail.
Fstorm got a better implementation first and it would be great to have it in Corona too.
EDIT: IMO it should be a per-object solution so render times don't increase much.
This example is here.




« Last Edit: 2022-12-12, 15:14:36 by lupaz »

2022-12-12, 15:20:18
Reply #13

dj_buckley

  • Active Users
  • **
  • Posts: 869
    • View Profile
Hi all, first of all, I would really appreciate changing the thread title. "So broken" is not really true.

The current behavior of bump/normal map filtering is expected in Corona. We do however have some user reports where it is clearly not optimal, so we will do our best to improve it in future versions. On the other hand, we are not getting many reports like this, so it can't be that bad. ;) 

There are some reasons for bump filtering, for example imagine that you have an object with strong, sharp bump far away from the camera and you animate it (either the object or the camera). You would like to see smooth movement, but with low or no filtering you will see strong high-frequency flickering of the bump map. Filtering "blurs" the texture so the result will be more acceptable.

You can negate that kind of high-frequency flickering, for example with output clamping (which AFAIK - I may be wrong - happens in fstorm by default), but we do not want it as we always choose rendering quality over heavy bias.

There are also some other fixes/improvements possible to implement in Corona, but they will require a lot of research and development from us.

If you have some examples where the current behavior fails, please send them over - we are always happy to investigate, offer some workarounds, and log specific cases for our devs to review.

With regards specific examples, it should be pretty clear from the initial video.  But when I'm walking around my house, my matt black metal cabinet looks like matt black metal regardless of whether I'm stood next to it or looking at it from the bottom of the garden.  As demonstrated in the video, this isn't the case in Corona.  It might like look matt black metal up close, but gloss black metal from far away.  Unless of course you start adjusting blur values.  The key here is that the other engines, FStorm and Scanline give consistent results regardless of the blur value.  The problem is highlighted when we're creating shaders using things like 2D Pan and Zoom, making sure the material is looking nice, only then to zoom back out to normal render resolution and it looks completely different and all that nice detail/finish that you've spent a while getting right, is gone.  Regardless of blur value, a material shouldn't look like a completely different finish depending on the distance they're viewed from imo.

2022-12-12, 15:27:33
Reply #14

lupaz

  • Active Users
  • **
  • Posts: 951
    • View Profile
Regardless of blur value, a material shouldn't look like a completely different finish depending on the distance they're viewed from imo.
Are you willing to accept a massive spike in render times?
In Fstorm they reduce blur too to achieve this, if I'm not mistaken. You can't remove filtering on everything by default. That's insane.