Author Topic: Corona 5 - 2.5D Displacement on Curves  (Read 3569 times)

2019-11-07, 20:10:42
Reply #15

pokoy

  • Active Users
  • **
  • Posts: 1507
    • View Profile
It's a secret in-house version of the mighty enhance feature you see on TV :D
nah I meant the shading of displaced geometry, it looks a bit darker on the rounded section than I'd expect...

2019-11-07, 20:37:47
Reply #16

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
I'm not sure it's darker, but the displacement is definitely more pronounced, possibly due to the curve itself and the angle of the light hitting it.  I also don't have the best graphics card in this machine it's an old school K620.  However it looks smooth in viewport (i'd like to think I'd recognise a smoothing issue if I saw one.  There's also a map set to screen in a composite node to make lighter patches across the facade and it could just be unfortunate placement of that map too.  But for the curious I've attached without visible edges

See the other attachment too - doesn't seem to happen in areas of shadow just when hit by direct light?

2019-11-07, 21:06:15
Reply #17

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 6581
  • Let's move this topic, shall we?
    • View Profile
    • My Models
I would definitely try what others suggested, Corona can be quite picky on those very thin polygons. In fact, i think that removing every other edge from the round corner and then doing that couple more times, would likely solve the issue. For displacement you don't want to have polygons that vary greatly in size and shape.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2019-11-07, 21:11:15
Reply #18

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
I think the answer is more geometry as suggested.  Here I've added 25 horizontal connects to a section, the bit at the top before it meets the white brick and the artifcats are significantly reduced, compared to the section below and white brick above.  For some reason though I was under the impression Corona's displacement didn't really on geometry subdivision.  For what it's worth, I'm not using autobump either - should I be?

Just to add to this, does anyone know why textures lack detail in Corona - i find this a lot.  The brick for example, the crops I'm sending are from a 6k render.  The texture I'm using is 8k.

Attached a 1:1 crop of the texture, but I can never seem to get that detail through in Corona.  In this instance the texture is applied via a Corona Bitmap node with filtering set to 0.01 and bicubic smoother

2019-11-08, 00:27:31
Reply #19

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
Ok so displacement issues now solved.  Simplified the curves as suggested by removing every other edge (twice), then added horizontal connects.  Artifacts are gone.  So just the texture quality question remaining.  I've switched back to bilinear rather than bicubic as the texture is high res and it's slightly better, but always still feels blurred.  Have also tried disabling filtering for all textures and didn't make much difference

2019-11-08, 01:05:46
Reply #20

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
Spoke to soon ... so now I've added the horizontal connects, it's really obvious which sections of geometry are subdivided and which arent.  See new attachment.  The problem being, adding the horizontal connects has just shifted the problem to the larger flat planes that now have tonnes of horizontal connects.

The only way I can see of getting the displacement to be consistent all over the model is to have perfectly sized even quads everywhere, which simply, isn't practical.  Basically the more subdivision, the better the displacement (or more pronounced/accurate).  But it seems like such a waste of polycount?

So i guess the question is what's the best approach to get consisten displacement across an entire model, making the mesh ultra dense seems silly where it's not needed but if thats the case then the density is going to be controlled by the curved areas and the number of segments needed to keep them looking curved.

I also can't tell which displacement is meant to be correct now either.  Is it the subdivided section or the flat non-divided areas - as they clearly look different in terms of displacement depth/strength.

Finally this new issue shown in the screenshots is not half as obvious with the old displacement - as you can see in the attachment, the old displacement looks much better and the issue is nowhere near as obvious.
« Last Edit: 2019-11-08, 01:19:32 by dj_buckley »

2019-11-08, 08:21:16
Reply #21

Frood

  • Active Users
  • **
  • Posts: 1490
    • View Profile
    • Rakete GmbH
What you have here are exactly those issues I had when I tested a very early version of the new displacement. Had no time to inspect more (and still don't have), also my lack of knowledge about the technical background of 2.5d made me think it's me doing something wrong. Got all kinds of strange shading issues, irregular displacement heights and geometry which worked somewhat ok with the old displacement showed strong artifacts along edges. So thanks for taking your time for those test.


Good Luck



Never underestimate the power of a well placed level one spell.

2019-11-08, 09:34:31
Reply #22

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
Thanks for confirming.  Now be a good time for one of the Devs to jump in and explain what's happening.  The bit that concerns me the most is this sentence from the release notes.

"Unless we hear of any experiences that contradict this, we plan at some point in the future to remove the old displacement from Corona Renderer and leave only the 2.5D displacement"

It seems it needs much more testing before it's removed completely.  It looked so promising in the release note examples, but now I look again, example A is a fully curved irregular organic surface and example B is a perfectly flat wall.  Mine situation blends the two, flat into curves and it makes the difference between the two very apparent.

I also don't really have time to test this.  This is a live job so for time time being 2.5D is unusable for me.  I'm not sure if autobump would make any difference but it's currently off.
« Last Edit: 2019-11-08, 09:45:25 by dj_buckley »

2019-11-08, 10:14:31
Reply #23

GeorgeK

  • Corona Team
  • Active Users
  • ****
  • Posts: 282
  • George
    • View Profile
As far as personal experience goes this seems to me as a subdivision issue with the geometry. Displacement is always displayed more correctly on curves when polygonal density is somewhat uniform.  Regarding displacement details in 2.5, be sure to lower the screen size(px) below 2.0. Will investigate further the differences between 2.5D and Old-Disp on Curved surfaces and with different maps and get back to you. Thanks for the feedback.
“Every artist was first an amateur”

2019-11-08, 10:30:59
Reply #24

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
In my tests I've been using old displacement on 2 and 2.5 displacement on 1.

I'm happy to share this model with you and include the displacement texture

2019-11-08, 10:39:12
Reply #25

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
As far as personal experience goes this seems to me as a subdivision issue with the geometry. Displacement is always displayed more correctly on curves when polygonal density is somewhat uniform.  Regarding displacement details in 2.5, be sure to lower the screen size(px) below 2.0. Will investigate further the differences between 2.5D and Old-Disp on Curved surfaces and with different maps and get back to you. Thanks for the feedback.

Also I'm not sure this is limited to curves - it seems it just works better on subdvided geometry in general - see attached - the bands of brick running under/above the windows have subdivision, the flat areas between the windows are just one poly.  Both surfaces are flat however.  You can clearly see the displacement on the bands of brick is different.  The bands are only subdivided because I've been forced to due to the curved area out of shot - see screenshot a few posts earler that shows wires.  This is with the old displacement - currently rendering the same shot with the new displacement for comparison.

The old displacement is passable although not ideal as the flat undivided areas still look kinda flat and not really displaced.

2019-11-08, 10:42:44
Reply #26

Frood

  • Active Users
  • **
  • Posts: 1490
    • View Profile
    • Rakete GmbH
Just posted my initial test scene if someone want's to play around with it:

https://corona-renderer.com/forum/index.php?topic=26398.msg158907#msg158907

Maybe it's useful and someone has some time. I was for example not able to get rid of those regular artifacts along displaced edges, even with pixel size 1.


Good Luck


Never underestimate the power of a well placed level one spell.

2019-11-08, 10:48:39
Reply #27

GeorgeK

  • Corona Team
  • Active Users
  • ****
  • Posts: 282
  • George
    • View Profile
In my tests I've been using old displacement on 2 and 2.5 displacement on 1.

I'm happy to share this model with you and include the displacement texture

I am sure it would help further assess the issue, please refer to the following link: https://corona-renderer.com/upload

As far as personal experience goes this seems to me as a subdivision issue with the geometry. Displacement is always displayed more correctly on curves when polygonal density is somewhat uniform.  Regarding displacement details in 2.5, be sure to lower the screen size(px) below 2.0. Will investigate further the differences between 2.5D and Old-Disp on Curved surfaces and with different maps and get back to you. Thanks for the feedback.

Also I'm not sure this is limited to curves - it seems it just works better on subdvided geometry in general - see attached - the bands of brick running under/above the windows have subdivision, the flat areas between the windows are just one poly.  Both surfaces are flat however.  You can clearly see the displacement on the bands of brick is different.  The bands are only subdivided because I've been forced to due to the curved area out of shot - see screenshot a few posts earler that shows wires.  This is with the old displacement - currently rendering the same shot with the new displacement for comparison.

The old displacement is passable although not ideal as the flat undivided areas still look kinda flat and not really displaced.

Thanks for extra input, will check this too.

Just posted my initial test scene if someone want's to play around with it:

https://corona-renderer.com/forum/index.php?topic=26398.msg158907#msg158907

Maybe it's useful and someone has some time. I was for example not able to get rid of those regular artifacts along displaced edges, even with pixel size 1.


Good Luck




Thanks Frood
“Every artist was first an amateur”

2019-11-08, 10:59:22
Reply #28

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
Will upload the scene shortly - but for what it's worth here's the direct comparison.  Remember the horizontal edges along the bands are only there because the curves needed them.  The more I test this, the more the flat undivided areas barely look displaced, leaving me wondering should we have been dividing the geo all along even before 2.5D - anyway see attachments.

2019-11-08, 11:05:21
Reply #29

dj_buckley

  • Active Users
  • **
  • Posts: 308
    • View Profile
so it would appear the flat undivided areas look fine and consistent between both version of displacement.  BUT ... the curve needs subdivision - which evidently screws up the displacement and makes it inconsistent with the flat areas - sooooo I'm lost :)