Author Topic: Displacement issue (problem)  (Read 3030 times)

2022-08-07, 21:57:31

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
Hello everyone!
This is my issues, maybe somebody explain to me something, maybe this is a bug and Corona team replaced 3D displacement by 2.5D too fast.

We have a plane 10km by 10km (32000px resolution). And Layered material with 2 displacement in materials. (actually, layered Mtl with displacement modes is a great thing, I like it so much, thank you for that!).
So when we are rendering near the terrain, we will se some details of the second material (with low height of displacement, it has 3m by 3m width, 8K resolution), but because of the pixel mode of the displacement in setup we can't get all details of the displacement. I tried to get more details with world size (units) but it didn't help, it even got worse.
Maybe I'm doing something wrong, but I think we can't get good results for big areas with displacement of Corona for now. I made some screenshots (look at the 8K render of mountains at 100% zoom pls (Displacement of big area 1.jpg)):

2022-08-07, 21:57:53
Reply #1

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile

2022-08-08, 06:04:24
Reply #2

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
One more test. So how to get detalization far from camera like near on the ground?

Displacement - 1px (less number is giving me an error and do nothing)
The ware density of the ground plane - more then 50 millions poligons
The size of ground plane - 10km by 10km
And what to do with larger terrains in this case?
« Last Edit: 2022-08-08, 10:08:20 by tradstown »

2022-08-11, 12:01:43
Reply #3

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile

2022-08-12, 13:29:22
Reply #4

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 11704
  • Marcin
    • View Profile
Hi, sorry for the lack of replies, I am not sure if I understand your issue correctly. Do you mean that the areas close to the camera are very detailed and the ones farther away have less detail in them? (are more "blurry"?)

If so, this is the expected behavior right now, because displacement in "screen size" mode is calculated depending on the image resolution. If many small details are smaller than a single pixel, they will not be visible, or at least not clearly.

I don't know what exact texture you are using for you displacement (e.g. is it a bitmap? or a procedural texture?) but you could try lowering the "blurring" value or cycling between different filtering modes. That might help.

Alternatively, maybe you could try using Scatter to get sharp, high quality details in the background? (e.g. scattering some rocks)
Marcin Miodek | chaos-corona.com
Chaos Corona Support Team Lead | contact us

2022-08-12, 16:54:32
Reply #5

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
Hi, sorry for the lack of replies, I am not sure if I understand your issue correctly. Do you mean that the areas close to the camera are very detailed and the ones farther away have less detail in them? (are more "blurry"?)

If so, this is the expected behavior right now, because displacement in "screen size" mode is calculated depending on the image resolution. If many small details are smaller than a single pixel, they will not be visible, or at least not clearly.

I don't know what exact texture you are using for you displacement (e.g. is it a bitmap? or a procedural texture?) but you could try lowering the "blurring" value or cycling between different filtering modes. That might help.

Alternatively, maybe you could try using Scatter to get sharp, high quality details in the background? (e.g. scattering some rocks)

Hello Maru! Thank you very much for reply!
I'm using RDTextures (8k resolution) on the second slot of displacement. I tried to change filters of bitmaps, the blur is 0.01 right now.
So my question, if we have huge area (in my case, this is 10km by 10 km), for example rocks that come out from the send, and we got it from some software (world creator, gaea, world machine), because if the 2.5D type and depending on pixel, we can't realized far away from camera details. I tried to use world size displacement and it can't give me 3ven this results, that you can see here.

Look at this guy please, his works was done not only with scattering, with displacement textures and we can see far details from camera:
 https://www.artstation.com/artwork/PeqJ9y

2022-08-12, 17:09:41
Reply #6

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 11704
  • Marcin
    • View Profile
Do you need you objects to be so huge? (10x10km) And do you need your render resolution to be so huge? (32k px)

I am asking, because this sounds like something extremely resource-heavy, requiring a lot of RAM.

If you are 100% sure that you need those numbers, and you would like to see very detailed displacement, even very far away, then maybe you could render your image as some kind of regions with even higher displacement quality? What I mean is setting displacement size to, let's say, 0.5px and rendering your image as a series of 1000x1000 squares.
Marcin Miodek | chaos-corona.com
Chaos Corona Support Team Lead | contact us

2022-08-12, 20:13:51
Reply #7

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
No, my image just 8K resolution as you can see attached file. 32K resolution - this is size of displacement texture for big ground 10km by 10km. As you can see works of that guy, he has a lot of details and views near the terrain and far from terrain as well. I just want to say, that displacement doesn't work in this case for a huge terrains in world size mode (not enough of memory, but I have 96 Gb of RAM) and in pixel size mode it works, but result is very blurred. I chose 8K resolution of image, because it has to draw more details of terrain in pixel model of displacement.
OR Maybe there is wrong tessellation when we use Layered mtl with few displacements in materials. Look at the new test please below (the stones, there is some artifacts because of tessellation, i think)
Maybe I should to upload the scene somewhere or my explanations is ok?
« Last Edit: 2022-08-12, 22:05:19 by tradstown »

2022-08-12, 23:41:29
Reply #8

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 7913
  • Let's move this topic, shall we?
    • View Profile
    • My Models
If you're using Corona 9, you could give a try to new CoronaPattern. The idea is to use large scale height texture for regular displacement and small scale height texture for the pattern. That way you could be sure that no single triangle will be sacrificed in the distance due to adaptivity. The downside of this method is that your large scale displacement should be real, i.e. highly subdivided plane with 3ds max native displace modifier on top.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2022-08-13, 00:10:21
Reply #9

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
If you're using Corona 9, you could give a try to new CoronaPattern. The idea is to use large scale height texture for regular displacement and small scale height texture for the pattern. That way you could be sure that no single triangle will be sacrificed in the distance due to adaptivity. The downside of this method is that your large scale displacement should be real, i.e. highly subdivided plane with 3ds max native displace modifier on top.

Thank you! I'm using Corona 8 hotfix 2 because it is stable version for now. I'm trying to figure out how to render large scale displacement and don't lose the quality like that guy on Artstation with Cinema 4D and Octane. I'm pretty sure, it is something wrong with displacement possibilities in Corona. Look at the Real World units type of displace in properties of engine and what we can see at the render. This is the minimum number, that doesn't give me an error and using just 25 Gb of RAM. In other case an internal error.
I love Corona because it is so simple in setup, but I'm always feel some limitations in more complicated scenarios to get great results, so I just trying to figure out that and help found this limitations for Corona team, if you don't mind of course.

2022-08-13, 00:15:58
Reply #10

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
And this is a whole ground of sand and rocks, that comes out from the sand. If we will have some animation for example from top view to the ground with details, stones and etc, it will become big problem for us =(

2022-08-13, 09:50:30
Reply #11

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 7913
  • Let's move this topic, shall we?
    • View Profile
    • My Models
One thing you could do to check if it's really displacement that is giving you problems, or something else, is to duplicate your ground mesh, hide the original and cut small patches from the copy, on which you will do further tests. Those patches should be small enough to not cause excessive RAM usage even at smallest displacement subdivision, but large enough to be clearly visible at the distance. Make sure that one patch is close to the camera and one, or few of them are further away. Switch displacement to world size, set it at small enough value that gives you good details on the closest patch and then observe results on the farthest patch - if you see good details there, then it means indeed we have an issue with displacement handling, on the other hand, if you still can't see details that you are expecting to see, then it means that the problem is likely somewhere else (too small displacement details to be resolved in the distance, not enough resolution of final output, too strong filtering, etc.).
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2022-08-13, 15:50:18
Reply #12

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
One thing you could do to check if it's really displacement that is giving you problems, or something else, is to duplicate your ground mesh, hide the original and cut small patches from the copy, on which you will do further tests. Those patches should be small enough to not cause excessive RAM usage even at smallest displacement subdivision, but large enough to be clearly visible at the distance. Make sure that one patch is close to the camera and one, or few of them are further away. Switch displacement to world size, set it at small enough value that gives you good details on the closest patch and then observe results on the farthest patch - if you see good details there, then it means indeed we have an issue with displacement handling, on the other hand, if you still can't see details that you are expecting to see, then it means that the problem is likely somewhere else (too small displacement details to be resolved in the distance, not enough resolution of final output, too strong filtering, etc.).

Thank you for your activity very much! I'll try to do this today and upload here a result.

2022-08-13, 18:18:42
Reply #13

tradstown

  • Active Users
  • **
  • Posts: 108
    • View Profile
One thing you could do to check if it's really displacement that is giving you problems, or something else, is to duplicate your ground mesh, hide the original and cut small patches from the copy, on which you will do further tests. Those patches should be small enough to not cause excessive RAM usage even at smallest displacement subdivision, but large enough to be clearly visible at the distance. Make sure that one patch is close to the camera and one, or few of them are further away. Switch displacement to world size, set it at small enough value that gives you good details on the closest patch and then observe results on the farthest patch - if you see good details there, then it means indeed we have an issue with displacement handling, on the other hand, if you still can't see details that you are expecting to see, then it means that the problem is likely somewhere else (too small displacement details to be resolved in the distance, not enough resolution of final output, too strong filtering, etc.).

Hello, Romullus! I made another try with world units of displacement (0.1m in the setup) and made the ground sizes smaller also, there is still no details as you can see. I'm using 32K resolution EXR file for Displacement. And that is result. World Size (unit) type of displacement - is dead. Or this result or an error and aborting of render. I hope it will be fixed in 9 version of Corona.
« Last Edit: 2022-08-13, 20:14:42 by tradstown »

2022-08-13, 20:40:47
Reply #14

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 7913
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Hmm, that's not exactly what i meant. You scaled down the terrain from gargantuan to huge, but it's still too big for Corona displacement to handle in world size mode. Try to make something like in my attachment, where you'd have only few patches of terrain with displace, small enough to safely decrease displacement world size to centimeter, or even lower. You then judge from the closer patch if displacement is fine enough and then look at the farther patch to see if displacement is visible at all at that distance. The idea is to have terrain small enough, so to be sure that Corona does not run out of RAM and not produce artifacts because of it.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures