Author Topic: Autobump concerns and 2d displacement ala vray  (Read 2738 times)

2018-11-30, 13:52:30
Reply #15

Juraj Talcik

  • Active Users
  • **
  • Posts: 3699
  • Tinkering away
    • View Profile
    • studio website
Yeah, in this particular example Corona would do the same, although it seems both approach it differently. I am very intrigued by the F-Storm displacement.
talcikdemovicova.com  Website and blog
be.net/jurajtalcik   Our studio Behance portfolio
Instagram   Our studio Instagram, managed by Veronika

2018-11-30, 16:28:59
Reply #16

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 9224
  • Marcin
    • View Profile
I'm assuming this auto-bump is the one you have to enable in the develop/debug mode?

If you don't enable it - has the normal default (tesselation method) been improved at all in Corona 3?

Only asking as the 'Highlights of the Release' state the following "- Displacement improvements allow you to use lower Displacement settings with the same image quality, lowering memory usage by up to 50%."

Is that statement a by-product of autobump, or just a general improvement to displacement?

Autobump was the only change regarding displacement. If you disable it in devel/debug, you will get V2 displacement.
When you load older scenes (pre-v3) you will be asked whether you want to switch to new displacement mode (autobump+lowered tesselation), or stay with the original settings.
When you create a new scene with Corona v3, autobump is on by default.

2018-11-30, 16:42:50
Reply #17

Fluss

  • Active Users
  • **
  • Posts: 425
    • View Profile
But I always though the memory footprint was largely based on the texture sampled rather than total surface area like the subdivision.

You're right Juraj, I made a test with Vray 2D displacement and no matter the amount of displaced surface, the RAM footprint does not seem to change. It behaves exactly the same as Fstorm in that regard. There is just a couple of GB in between.

Fluss, feeling like you want to make that comparison further :- ) ? Would love to see F-Storm vs Vray's 2D as well.

I made a simple displaced plane with 12K textures (diffuse, glossiness and displacement, no bump/normal map). Not that easy to get Vray and Fstorm to match so there is a tiny bit of difference. Also, note that Fstorm does not have map blur parameter and looked quite sharper on the first look so I set Vray map blur parameter to 0.5 :

Vray - no displacement 4641MB RAM - With displacement 14500MB RAM





Fstorm - no displacement 1820MB VRAM - With displacement 3650MB VRAM






2018-11-30, 16:44:23
Reply #18

Jpjapers

  • Active Users
  • **
  • Posts: 1218
    • View Profile
wow theres so much more high frequency detail in fstorm!!
Its insane that its literally just the one guy developing. The other day someone asked for a copy button in the vfb. three days later it was there haha

2018-11-30, 19:20:29
Reply #19

Juraj Talcik

  • Active Users
  • **
  • Posts: 3699
  • Tinkering away
    • View Profile
    • studio website
I can't tell if the Fstorm is sharper because of more displace detail (doesn't seem so) or because the textures are overall bit sharper.

Can you do Corona in same setup now that you have it, would be super cool to have all :- ) Thanks much for doing the tests.
talcikdemovicova.com  Website and blog
be.net/jurajtalcik   Our studio Behance portfolio
Instagram   Our studio Instagram, managed by Veronika

2018-11-30, 20:35:43
Reply #20

Fluss

  • Active Users
  • **
  • Posts: 425
    • View Profile
I can't tell if the Fstorm is sharper because of more displace detail (doesn't seem so) or because the textures are overall bit sharper.

Can you do Corona in same setup now that you have it, would be super cool to have all :- ) Thanks much for doing the tests.

Sure, here it is :

Corona - no displacement 4235MB RAM - With displacement 7250MB RAM - 1px with autobump on



2018-11-30, 21:15:56
Reply #21

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 6015
  • Let's move this topic, shall we?
    • View Profile
    • My Models
So, where's the problem? Corona displacement looks as good as its competitors and uses half amount of RAM compared to Vray. The only part where it sucks (sometimes), is that it cuts subdivision behind a camera very dramatically - look at the reflection in mirror ball.
I'm not Corona Team member. Everything i say, is my personal opinion only.

2018-11-30, 22:22:11
Reply #22

Fluss

  • Active Users
  • **
  • Posts: 425
    • View Profile
So, where's the problem? Corona displacement looks as good as its competitors and uses half amount of RAM compared to Vray. The only part where it sucks (sometimes), is that it cuts subdivision behind a camera very dramatically - look at the reflection in mirror ball.

Well just rotate the camera a bit and there you go :

Fstorm - still 3.65 GB - no reflection issue


Corona - 17GB


What's more, the Fstorm displacement is view-independent. In the current configuration, Corona displacement is view-dependent and that does not work well with animation. To get rid of those issues, you have to set it up in world space unit. Try to reach the same quality with these settings and your computer will explode.

Here is a (fancy) example i found, I'd kill to get that quality displacement in my animations :

« Last Edit: 2018-11-30, 22:35:28 by Fluss »

2018-11-30, 22:43:20
Reply #23

Juraj Talcik

  • Active Users
  • **
  • Posts: 3699
  • Tinkering away
    • View Profile
    • studio website
I don't want to post it as example, but I will describe my use-case scenario when subdivision method like Corona fails. Microdetail at high-resolution.

I have chair, that is made of transparent fabric, thickness of 1-2mm. Therefore my detail needs be in sub <1mm (To illustrate how that measure in px, if my fabric was up-close to camera, I would need 1px disp detail...at 8k resolution which are my finals).
The more surface area I have (I need multiple chairs of course), I can very quickly get into 100GB for of displacement in memory alone. (No, bump&normal is not replacement, I am talking complex 3D dimension pattern that alters the visual behavior).

With 2D disp from Vray, or the one from F-Storm (or even geopattern), my memory stops rising the moment the algorithm displaces the first tile of the texture map. And then it doesn't matter what resolution I render, or how much surface my displacement cover.

That sort of algorithm is absolutely superior in every regard. Corona is ok, usable only if I use it for crude way, like displace bunch of ground with mud&rocks, where I never need more than 2-3px detail. The moment I need both super-detail and high-surface coverage, it fails.


Quote
To get rid of those issues, you have to set it up in world space unit. Try to reach the same quality with these settings and your computer will explode.

Yep, absolutely this.
talcikdemovicova.com  Website and blog
be.net/jurajtalcik   Our studio Behance portfolio
Instagram   Our studio Instagram, managed by Veronika

2018-12-01, 19:40:33
Reply #24

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 9224
  • Marcin
    • View Profile
Just a random question - what happens in fstorm/other if you use some procedural map for displacement on a large area, so that it cannot be just one tile repeated multiple times?

2018-12-02, 13:59:34
Reply #25

Fluss

  • Active Users
  • **
  • Posts: 425
    • View Profile
Just a random question - what happens in fstorm/other if you use some procedural map for displacement on a large area, so that it cannot be just one tile repeated multiple times?

Fstorm only support bitmaps so I can't tell. For Vray 2D displacement, as raytracing is computed in texture space, it needs proper UV to work. So you can't use object/world XYZ coordinates for displacement. It is still usable tho, by using explicit map channel. Set a planar UVW map to fit the size of the plane (no tiling) and adjust the size and iterations of the noise map as desired. Then, the amount of details is directly driven by the resolution set in the displacement modifier (RAM usage will increase accordingly). See the example below :

Vray - 1k sampling - 2 100MB RAM


Vray - 16k sampling - 21 400MB RAM
« Last Edit: 2018-12-02, 14:15:27 by Fluss »

2018-12-02, 15:59:39
Reply #26

Juraj Talcik

  • Active Users
  • **
  • Posts: 3699
  • Tinkering away
    • View Profile
    • studio website
They have some obvious negatives as universal solution but are still superior when they apply. This is why I don't believe in single solution and it was smart for Vray to retain both algorithms.

Vray2D only takes memory as high as the bitmap footprint so 16k+ maps will obviously no be its forte. But let it sample 4k maps and it will reign supreme.
The algorithm is therefore highly suitable for tiling maps, because there the memory is minimal and the effect is sharpest.

I believe Corona shouldn't so strictly adhere to single option, most users will not be confused by being given two clearly explained solutions. Just like EdgeMap already has two modes of operation, so can displacement.

And I don't think this is anyhow terrible to be solved in UI, one checkbox could be in advanced options inside CoronaMTL, another checkbox would be added to modifier. Really simple,non-confusing additions. Those who don't want to touch it, won't need to. No hassle, no confusion, everyone wins.
talcikdemovicova.com  Website and blog
be.net/jurajtalcik   Our studio Behance portfolio
Instagram   Our studio Instagram, managed by Veronika

2018-12-03, 13:54:24
Reply #27

dcode

  • Active Users
  • **
  • Posts: 7
    • View Profile
They have some obvious negatives as universal solution but are still superior when they apply. This is why I don't believe in single solution and it was smart for Vray to retain both algorithms.

Vray2D only takes memory as high as the bitmap footprint so 16k+ maps will obviously no be its forte. But let it sample 4k maps and it will reign supreme.
The algorithm is therefore highly suitable for tiling maps, because there the memory is minimal and the effect is sharpest.

I believe Corona shouldn't so strictly adhere to single option, most users will not be confused by being given two clearly explained solutions. Just like EdgeMap already has two modes of operation, so can displacement.

And I don't think this is anyhow terrible to be solved in UI, one checkbox could be in advanced options inside CoronaMTL, another checkbox would be added to modifier. Really simple,non-confusing additions. Those who don't want to touch it, won't need to. No hassle, no confusion, everyone wins.

Indeed, I adore Fstorm displacement until I want to get creative with procedural work and then you come to a stop. So having two displacement options for two different purposes makes perfect sense ie. Bitmap Disp (so called 2D) and Procedural Disp. Voila :) So easy to say when you are not a programmer hahaha.

2018-12-05, 10:48:03
Reply #28

kosso_olli

  • Active Users
  • **
  • Posts: 31
    • View Profile
wow theres so much more high frequency detail in fstorm!!

Well, setting blur to 0.5 for displacement in V-Ray is a terrible idea... No wonder it looks softer compared to FStorm.
The V-Ray guy checking out Corona...

https://www.behance.net/Oliver_Kossatz

2018-12-05, 10:54:00
Reply #29

Fluss

  • Active Users
  • **
  • Posts: 425
    • View Profile
wow theres so much more high frequency detail in fstorm!!

Well, setting blur to 0.5 for displacement in V-Ray is a terrible idea... No wonder it looks softer compared to FStorm.

If you look at the settings, Vray displacement blur is set to 0.001, only diffuse and gloss are set to 0.5. I could have lowered it a bit more tho
« Last Edit: 2018-12-05, 14:14:07 by Fluss »