Author Topic: New displacement feedback  (Read 7483 times)

2015-07-17, 15:55:37

hubrobin

  • Active Users
  • **
  • Posts: 61
  • Light transport ninja
    • View Profile
Hey guys,

in order to add adaptivity, filtering and "keep edges together" features to our displacement we had to completely redo it's implementation. It would be awesome if you could give it a shot and give us some feedback on it, so that we can fix all the potential bugs before the official release of 1.2.

Thanks!

Robin

2015-07-17, 21:11:58
Reply #1

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Just got my hands on this huge new build. Did a couple quick tests with new displacement. Very first impressions:
  • it has issues with bercon noise.
  • looks like adaptive mode gives inferior results in comparison with non adaptive

Overall, adaptivity looks mighty impressive.

p.s. since i have no experience with vray, i have no clue what's a purpose of CoronaDisplacementModifier. When should i use it?
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-07-17, 21:40:38
Reply #2

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Loaded recent scene with not so heavy displacement and new build just run out of memory, whereas older build has no problem at all. But i guess it should go to mantis, right?

Edit: increased displacement screen size from 1 to 2.5 to get approx the same amount of pollys as in older build and scene renders fine. New displacement gives a lot cleaner result in that particular scene! Unfortunately seems like max subdivs per poly isn't working at all.
« Last Edit: 2015-07-17, 22:14:16 by romullus »
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-07-17, 23:27:06
Reply #3

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
yes, max subdivs is not working and will be removed. please report crashes in mantis ;))
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2015-07-17, 23:50:55
Reply #4

racoonart

  • Active Users
  • **
  • Posts: 1446
    • View Profile
    • racoon-artworks
May I ask why not? What is determining subdivisions in the new algorithm? If i plug in a very noisy displacement map I easily make adaptivity useless, thus producing lots of faces.
Any sufficiently advanced bug is indistinguishable from a feature.

2015-07-18, 00:11:11
Reply #5

dubcat

  • Active Users
  • **
  • Posts: 425
  • ฅ^•ﻌ•^ฅ meow
    • View Profile
I did some displacement tests on Emily.
I can render the image up to 1200px. When I try to render with a higher resolution 3dsmax crashes after a minute or two. I can't see any artifacts or difference when I enable/disable Adaptive.

I thought it was weird that my PC couldn't render the image larger then 1200px, so I fired up V-Ray. In V-Ray I can render the image with 12 000px just fine. But when the image size gets above 6000px, V-Ray begin to cache to the HDD. (I only have 16GB ram on this particular PC).

The problem with Corona is that it caps my RAM when calculating displacement, before the render begins. Corona is using 12GB RAM when calculating displacement, and then 6GB RAM when rendering. While V-Ray has the same 6GB RAM usage throughout the whole process.

I have uploaded some comparison pictures and CPU/RAM overview if people are interested. This is not a who is best comparison.
The V-Ray render is 0.5px displacement, and the Corona is 0.8px because it crashed on lower settings.
« Last Edit: 2015-07-18, 01:45:23 by dubcat »
             ___
    _] [__|OO|
   (____|___|     https://www.twitch.tv/dubca7 / https://soundcloud.com/dubca7 ( ͡° ͜ʖ ͡°) choo choo

2015-07-18, 00:33:35
Reply #6

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Removing of Max subdivs seems very strange indeed. Unless there'll be a better alternative to tame down hungry displacement. Increase in RAM usage during displacement calculation phase, makes displacement much less capable then it could be, i hope it'll be fixed.

Anyway did some comparison with old displacement. It seems like RAM usage is more or less the same (except big spike during calc phase). Processing time is noticeable longer. Displacement quality... well, that's quite interesting. At low settings it seems like new displacement does a lot better job - artifact free and smooth result. But at higher settings i prefer old one more. New displacement strugles to produce nice crisp result. But those impressions are based on one scene, so things may change after more testing :]

Here's some gifs:

Low:



Medium:



High:



Ultra:





Edit: fixed links
« Last Edit: 2015-07-19, 15:25:04 by romullus »
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-07-18, 10:25:14
Reply #7

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
the new displacement filters textures - try disabling texture filtering to see if the results change
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2015-07-18, 11:23:35
Reply #8

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
OMG, you're right. Disabled filtering and results totally rocks! New displacement needs so much less polygons to render same quality in comparison with old one, it's just ridiculous. Now if that RAM usage spike could be fixed...

BTW, what about CoronaDisplacementModifier? Can someone explain me why it's needed?
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-07-18, 11:32:22
Reply #9

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
I think the parsing should be fixed as well. In case it's not possible to get back to old parsing speed, then i would at least prefer to have option to choose between new and old displacement. While old one had breaking edges and no adaptivity, it did not take ages to parse. For something like dirt ground where you don't need adaptivity and don't need to have separate smoothing group, old one was significantly better.

2015-07-18, 11:33:42
Reply #10

pokoy

  • Active Users
  • **
  • Posts: 1861
    • View Profile
OMG, you're right. Disabled filtering and results totally rocks! New displacement needs so much less polygons to render same quality in comparison with old one, it's just ridiculous. Now if that RAM usage spike could be fixed...

BTW, what about CoronaDisplacementModifier? Can someone explain me why it's needed?

I guess it's to make displacement independent from materials so you can have different objects with different materials use one modifier for the same displacement map. Didn't test, but that's what I expect based on how it works in other renderers.

2015-07-18, 14:10:10
Reply #11

hubrobin

  • Active Users
  • **
  • Posts: 61
  • Light transport ninja
    • View Profile
Thanks for taking the time for testing and providing the valuable feedback! I will address the memory consumption as the first thing on Monday and I believe that I will be able to get rid of the most of the overhead. In terms of the result the algorithm provides it seems that we might be on a good way. I will elaborate on all the other stuff you came over once I have discussed them within the team on Monday.

Thanks again.

2015-07-18, 17:51:47
Reply #12

Chakib

  • Active Users
  • **
  • Posts: 787
  • Corona Omnomnomer !
    • View Profile
Yep, out of memory (pc freezes) here too with without even using a high subdiv value ( size  1 instead of 2 / 300subdv )

Continuity is very nice thanks a lot !
« Last Edit: 2015-07-18, 17:59:44 by Chakib »

2015-07-19, 15:24:31
Reply #13

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
OMG, you're right. Disabled filtering and results totally rocks! New displacement needs so much less polygons to render same quality in comparison with old one, it's just ridiculous. Now if that RAM usage spike could be fixed...

BTW, what about CoronaDisplacementModifier? Can someone explain me why it's needed?

I guess it's to make displacement independent from materials so you can have different objects with different materials use one modifier for the same displacement map. Didn't test, but that's what I expect based on how it works in other renderers.
Now it makes sense. Thank you!
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-07-20, 15:29:09
Reply #14

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
    • it has issues with bercon noise.

    Can you be more specific on this topic? Was it also caused by filtering?[/list]
    Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

    2015-07-20, 15:35:56
    Reply #15

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    I'll try to conduct more detailed feedback on that issue a bit later.
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-20, 18:57:05
    Reply #16

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    Indeed bercoin noise as well as native noise at default filtering strength works very unreliable as displacement maps. Lowering filtering to minimum seems to solve it.

    BTW, got a crash when pluging beron noise in displacement while IR was running. Attaching minidump, maybe you'll find it useful.
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-21, 21:22:43
    Reply #17

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    Build jul 21
    • Displacement filtering not working. Changing filtering blur affects only subdivision pattern, but displacement itself remains the same no matter blur value.
    • Displacement produces kinda faceted result. See attached pic.

    Is it known issues or should i start filling mantis report?
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-21, 21:32:38
    Reply #18

    hubrobin

    • Active Users
    • **
    • Posts: 61
    • Light transport ninja
      • View Profile
    Hi,

    1. We have disabled the filtering in case of displacement to match the old behaviour for now.

    2. That looks weird indeed. Can you fill in a Mantis report and provide me with the data?

    Thanks a lot,

    Robin


    2015-07-21, 21:55:42
    Reply #19

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    Done!
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-21, 22:16:02
    Reply #20

    dubcat

    • Active Users
    • **
    • Posts: 425
    • ฅ^•ﻌ•^ฅ meow
      • View Profile
    I tried the latest Daily Build with Emily, 1px displacement.
    The 1200px render is much more stable, it never goes above 6.2GB RAM (Last daily used 12.2GB) . The precomputing was much faster as well.

    But when I try to render the 6000px version, 3dsmax still crashes. My first render test ended with a complete PC freeze, waited for 15 min and took a force shutdown. On the second test I got like 10 windows with "Halt! Exceptiontime!". I waited 15 min but nothing happened, had to force close 3dsmax. I took the time v-ray used to calculate before it began rendering and it was 18 sec, so I could have something to base my waiting time on.
                 ___
        _] [__|OO|
       (____|___|     https://www.twitch.tv/dubca7 / https://soundcloud.com/dubca7 ( ͡° ͜ʖ ͡°) choo choo

    2015-07-22, 00:01:25
    Reply #21

    Ondra

    • Administrator
    • Active Users
    • *****
    • Posts: 9048
    • Turning coffee to features since 2009
      • View Profile
    were you able to render the 6000px 1px displacement with 1.1?
    Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

    2015-07-22, 00:16:47
    Reply #22

    hubrobin

    • Active Users
    • **
    • Posts: 61
    • Light transport ninja
      • View Profile
    Could it be that some kind of max subdivisions bound took place in case of vray?

    2015-07-22, 02:38:50
    Reply #23

    dubcat

    • Active Users
    • **
    • Posts: 425
    • ฅ^•ﻌ•^ฅ meow
      • View Profile
    I wiped the scene settings and started over. This time with 4px displacement, going to test with 1px again later.

    Both V-Ray and Corona took around 16 sec to calculate the displacement.
    Both render engines were stable!
    Both render engines were laying around 7.5gb ram.

    I couldn't find any subdiv option in Corona Options, have you guys removed it ?
    The first Corona render with only CoronaDisplacementMod turned out very low poly, and the skin pores got stretched all over the place. Just look under and around her eyes.

    The second Corona render is using MeshSmooth modifier with default settings, I noticed that CoronaDisplacementMod subdivided the mesh by itself when it was above the MeshSmooth modifier. The mesh got less ploys when I turned off the light bulb on CoronaDisplacementMod.
    The result looks very good, nice round chin and nose, the stretched pore problem is gone. But the 16k micro displacement map is not showing up because of the 4px displacement.

    I have included the render images from both engines (About 10min render time each).

    I have also included some screenshots of the settings I used. Remember that V-rays modifier overwrites the default settings.

    Good job on the last Daily build guys. Just love Corona :)

    EDIT: 1px ended in complete freeze, had to force restart the pc.
    were you able to render the 6000px 1px displacement with 1.1?
    I haven't tried with 1.1, got the head from wikihuman a couple of days ago.

    Could it be that some kind of max subdivisions bound took place in case of vray?
    Is it because I can force v-ray to 8 subdivs and 0.001px that v-ray works ? The pore details are so much better this way.
    « Last Edit: 2015-07-22, 04:27:28 by dubcat »
                 ___
        _] [__|OO|
       (____|___|     https://www.twitch.tv/dubca7 / https://soundcloud.com/dubca7 ( ͡° ͜ʖ ͡°) choo choo

    2015-07-22, 09:49:23
    Reply #24

    Ludvik Koutny

    • VIP
    • Active Users
    • ***
    • Posts: 2557
    • Just another user
      • View Profile
      • My Portfolio
    Just one quick hint. Vray (as well as Arnold) automatically creates normal map out of displacement map in areas where there is not enough subdivision detail. In Corona, you can do the same by simply plugging displacement map also in a bump slot. Relying solely on displacement to give you 100% of the detail is often nearly impossible.

    2015-07-22, 14:56:31
    Reply #25

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    There's quite clearly visible line seen where subdivision gets lower when screen size mode is used. In attached picture is shown comparison between world size (left) and screen size (right). Maybe some kind of treshold spinner could be introduced in CoronaDisplacementModifier to allow user to fine tune when adaptivity kicks in?
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-22, 15:03:32
    Reply #26

    Ludvik Koutny

    • VIP
    • Active Users
    • ***
    • Posts: 2557
    • Just another user
      • View Profile
      • My Portfolio
    There's quite clearly visible line seen where subdivision gets lower when screen size mode is used. In attached picture is shown comparison between world size (left) and screen size (right). Maybe some kind of treshold spinner could be introduced in CoronaDisplacementModifier to allow user to fine tune when adaptivity kicks in?

    Hopefully not, it's horrifying idea to have spinners for fine tuning bugs. That's probably something to do with filtering. It has been messed with in latest builds. Also, the displacement map used on your picture is prime example of a map where you would not wan't to use adaptivity at all.

    2015-07-22, 15:47:50
    Reply #27

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    Well if it's a bug and it will be adressed, than it's even better :]

    One more question, though. Why do you guys opted to non smoothed polygons output after displacement? Or it is temporary too?
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-22, 16:33:06
    Reply #28

    hubrobin

    • Active Users
    • **
    • Posts: 61
    • Light transport ninja
      • View Profile
    It was done the way it had too high memory consumption. I will put in more efficient solution by tomorrow.

    2015-07-22, 17:11:24
    Reply #29

    Ludvik Koutny

    • VIP
    • Active Users
    • ***
    • Posts: 2557
    • Just another user
      • View Profile
      • My Portfolio
    Well if it's a bug and it will be adressed, than it's even better :]

    One more question, though. Why do you guys opted to non smoothed polygons output after displacement? Or it is temporary too?

    The new displacement respects base object smoothing. At least the version i tested while ago. Faceted result of your render is caused by bug in Noise map in Max 2015. The exact same scene will render fine and not faceted in Max 2015+. You can also observe same bug in Smoke map, that has not been fixed even in latest 3ds Max.

    2015-07-22, 17:21:20
    Reply #30

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    I was asking about smoothing, not faceted noise bug, but if you say it's working fine i latest  build, then i'll wait for it to become available for us mortals :]
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-22, 18:12:26
    Reply #31

    Ludvik Koutny

    • VIP
    • Active Users
    • ***
    • Posts: 2557
    • Just another user
      • View Profile
      • My Portfolio
    Yep, smoothing worked, but i tested it like a week ago, something may have changed since then. I will ask Orbin tomorrow.

    2015-07-23, 03:00:29
    Reply #32

    dubcat

    • Active Users
    • **
    • Posts: 425
    • ฅ^•ﻌ•^ฅ meow
      • View Profile
    I began making the SSS shader for Corona today, it's easier to see the displacement now. I can push it down to 3px before my computer freeze.
    The SSS shader is still very rough, but it's good enough for displacement previewing.
                 ___
        _] [__|OO|
       (____|___|     https://www.twitch.tv/dubca7 / https://soundcloud.com/dubca7 ( ͡° ͜ʖ ͡°) choo choo

    2015-07-23, 09:46:43
    Reply #33

    romullus

    • Global Moderator
    • Active Users
    • ****
    • Posts: 8834
    • Let's move this topic, shall we?
      • View Profile
      • My Models
    There's clearly visible polygon edges in your Corona render (ear, chin). Can you render with grey material to see if it's made by displacement or by SSS?
    I'm not Corona Team member. Everything i say, is my personal opinion only.
    My Models | My Videos | My Pictures

    2015-07-23, 10:03:00
    Reply #34

    dubcat

    • Active Users
    • **
    • Posts: 425
    • ฅ^•ﻌ•^ฅ meow
      • View Profile
    There's clearly visible polygon edges in your Corona render (ear, chin). Can you render with grey material to see if it's made by displacement or by SSS?
    That's from the SSS, it's only 2 passes. Here is the SSS element. It's gone in my latest version.
    It's very time consuming to make these "hollywood" skin shaders in Corona right now. I have to render all the different Elements separate and (Add) them together in Photoshop 32bit. Would be great if we could get a Shellac/additive blend mode. But this is kinda off topic ;)
    « Last Edit: 2015-07-23, 11:55:41 by dubcat »
                 ___
        _] [__|OO|
       (____|___|     https://www.twitch.tv/dubca7 / https://soundcloud.com/dubca7 ( ͡° ͜ʖ ͡°) choo choo