Chaos Corona Forum
Chaos Corona for Cinema 4D => [C4D] Bug Reporting => [C4D] Resolved Bugs => Topic started by: danielsian on 2017-07-10, 09:38:12
-
Hey guys, does anyone know what I'm doing wrong?
Displacement in Corona doesn't work.
I did a comparison between Corona and Physical Render just to show the problem.
The displacement map was exported from ZBrush in PSD 16bit. To use in Corona Standard material I have to save the map in tif format in order to use it with accuracy.
I'm using a .tif 16bit inside a Bitmap shader. Looks like Corona doesn't like PSD...
Thanks
[Build timestamp: Apr 12 2017 18:43:19
Version: A6.3 (core 1.5 )
Cinema version: CINEMA 4D Studio R18.048 S]
-
You should be using Corona Material in Corona. We convert the original C4D materials to Corona somehow, but the results will never be exactly the same because of the impossibility to map the material paramteres 1:1
-
You should be using Corona Material in Corona. We convert the original C4D materials to Corona somehow, but the results will never be exactly the same because of the impossibility to map the material paramteres 1:1
I am using Corona material in Corona. I don't understand your comment.
And I'm not converting a material from Cinema 4D standard material.
I'm just using the values provided by Zbrush and the height looks the same in Corona and Physical. So, yes, I have 1:1 in therms of displacement height.
The problem is the geometry not displaced in Corona.
Looks like a bump map, not a Displacemebt map
-
Try taking it out of the corona bitmap and just dropping it straight in as a tif. You could also try reducing the screen width with displacement down to 1px.
-
Try taking it out of the corona bitmap and just dropping it straight in as a tif. You could also try reducing the screen width with displacement down to 1px.
I tried with PSD from ZBrush, TIF inside Bitmap and outside also.
It's not a problem with resolution of subdivision. There are details, but looks like a bump map, not a displacement.
Look the hard edges how bad is.
In my opinion this is some kind of bug.
-
too much details in question
would you kindly make & share a test file for confirmation ;)
-
To me, it looks like the difference comes from using the rounded option in the example with the Physical renderer, which Corona does not have.
If you apply an SDS to your mesh and apply the Corona displacement to this rounded mesh, the results should look a lot more alike.
CU
Michael
-
You should be using Corona Material in Corona. We convert the original C4D materials to Corona somehow, but the results will never be exactly the same because of the impossibility to map the material paramteres 1:1
I am using Corona material in Corona. I don't understand your comment.
And I'm not converting a material from Cinema 4D standard material.
I'm just using the values provided by Zbrush and the height looks the same in Corona and Physical. So, yes, I have 1:1 in therms of displacement height.
The problem is the geometry not displaced in Corona.
Looks like a bump map, not a Displacemebt map
My apologies, I must have somehow swapped the pictures when writing the reply. You are right that the picture looks different and ugly in Corona, but it's difficult to say what is the cause just from the pictures. As burnin said, it would be great if we could see some test scene to be able to identify the possible bug in a more efficient way.
-
As I wrote, the explanation and also the solution are probably very simple.
The native C4D displacement allows an option that "Rounds Geometry", in other words, applies a smoothing algorithm to the mesh while displacing.
Compare the rendered images: Corona basically gets the same result like the native "Physical Renderer" of C4D.
If I use "Round Geometry" I get a smooth result in the "Physical", same I get with applying an SDS to the mesh for Corona.
The thread opener gets "rough" edges because there is no rounding in Corona. If he had left the "Round Geometry" option switched off (as it is per default) he would have got the same rough result with the "Physical".
Remedy: SDS.
HTH
Michael
-
too much details in question
would you kindly make & share a test file for confirmation ;)
Here is a test file.
Thanks
-
As I wrote, the explanation and also the solution are probably very simple.
The native C4D displacement allows an option that "Rounds Geometry", in other words, applies a smoothing algorithm to the mesh while displacing.
Compare the rendered images: Corona basically gets the same result like the native "Physical Renderer" of C4D.
If I use "Round Geometry" I get a smooth result in the "Physical", same I get with applying an SDS to the mesh for Corona.
The thread opener gets "rough" edges because there is no rounding in Corona. If he had left the "Round Geometry" option switched off (as it is per default) he would have got the same rough result with the "Physical".
Remedy: SDS.
HTH
Michael
Thanks for your tests.
I think SDS is not a solution, actually that's no make sense to use Displacement if I have to deal with subdivision manually. In that case I should fix my model with extra edge loops before to use displacement just to avoid rounded edges where I need hard edges. A really problem. And why to use Displacement instead of Bump if the geometry is not displaced properly?
SDS fixes a problem and creates another.
-
Where exactly would you see the biggest differences between the Corona render I uploaded and what you expect? Added an SDS, changed the gamma of the image to what the Physical used and played a bit with the height values.
C4D natively uses Sub-polygon Displacement, which might be unique and not be found too often in other renderers.
I also guess it will be hard to get exactly the same results from both renderers.
Adding an SDS makes perfect sense to me because this is what C4D basically does with the "Round Geometry" option. The manual says to this option: "Since SPD cannot calculate a normal Phong shading when it is applied, a special algorithm similar to that of the Subdivision Surface is used to ensure that the object is rounded before the SPD is rendered."
I agree, though, that some options the C4D displacement has, would come in handy sometimes, so I would not mind having these within Corona (actually everything ;)).
CU
Michael
-
Where exactly would you see the biggest differences between the Corona render I uploaded and what you expect? Added an SDS, changed the gamma of the image to what the Physical used and played a bit with the height values.
C4D natively uses Sub-polygon Displacement, which might be unique and not be found too often in other renderers.
I also guess it will be hard to get exactly the same results from both renderers.
Adding an SDS makes perfect sense to me because this is what C4D basically does with the "Round Geometry" option. The manual says to this option: "Since SPD cannot calculate a normal Phong shading when it is applied, a special algorithm similar to that of the Subdivision Surface is used to ensure that the object is rounded before the SPD is rendered."
I agree, though, that some options the C4D displacement has, would come in handy sometimes, so I would not mind having these within Corona (actually everything ;)).
CU
Michael
Well I have to confess, the result is pretty close to what Physical does. But SDS is just a quick fix, and deliver a non-precise result. Depending on the model we have the result can be catastrophic.
Vray, Arnold and Redshift deliver the same result as Physical renderer, so I understand that this is the least that the Corona should do.
Thanks
-
Vray, Arnold and Redshift deliver the same result as Physical renderer, so I understand that this is the least that the Corona should do.
Thanks
I tried your model with Vray but the results were not that convincing with your model "as is", I got shading artifacts due to the relatively low resolution of the mesh. Now I have to admit I did not use the latest version of VrayforC4D and I am a bit out of practice with this renderer.
-
So it seems that C4D is doing not only displacement, but also surface subdivision and smoothing if you check some checkbox in the displacement UI, right? I am sorry, but I don't think we will do anything like that. There's several reasons for that:
- Cinema obviously already has a way to achieve the same effect using modifiers and it's not at all that difficult.
- We want the UI to be logical and concise. Displacement and surface subdivision/smoothing are two different concepts and should be held separate in the UI. I don't know why C4D has it together in the first place...
- We try to keep the UI consistent across host applications and 3DS Max does not and will not have such a feature, so another reason why not to put it there
I hope you'll agree that it's not such a big issue.
-
So it seems that C4D is doing not only displacement, but also surface subdivision and smoothing if you check some checkbox in the displacement UI, right? I am sorry, but I don't think we will do anything like that. There's several reasons for that:
- Cinema obviously already has a way to achieve the same effect using modifiers and it's not at all that difficult.
- We want the UI to be logical and concise. Displacement and surface subdivision/smoothing are two different concepts and should be held separate in the UI. I don't know why C4D has it together in the first place...
- We try to keep the UI consistent across host applications and 3DS Max does not and will not have such a feature, so another reason why not to put it there
I hope you'll agree that it's not such a big issue.
I would appreciate a good direction about how to properly use Displacement in Corona in order to have precision. All I need is to have exactly the same look in ZBrush and Corona when displaced (ok, I know Zbrush increases the visualization of details, ignore this).
The method described by Cinemike works, actually thanks Michael, but is not precise once we can't use the height value provided by ZBrush.
So, if you guys could provide a tutorial or something like that I and probably all the Cinema 4D users would appreciate.
Thanks
-
The issue made me curious and I did a little test.
Two planes, one just 1 cm above the other one. Assigned a material with displacement, Color shader plain White, Height: 1cm.
Two cubes, one 1 cm smaller on all sides than the other one, at the same position. Assigned a material with displacement, Color shader plain White, Height: 0,5 cm.
Rendered the scene.
Observation #1: The planes render as expected. They "meet" each other in the same height now, causing a pattern of artifacts (which is to be expected from faces takíng up the same space). The more you subdivide the planes, the smaller the artifacts become. Ok.
Observation #2: The cubes need a highly subdivided mesh to show even displacement (faces meeting in the same space), and even then, areas close to "sharp edges" do not displace "fully" to the amount specified in the displacement tab. It kind of explains why the head scene has problems, especially in these areas.
I know that Corona and also Vray prefer high res meshes to render properly. Just a question about displacement: Is this "edge issue" something where anything could be done about, to get more evenly distributed displacement?
CU
Michael
-
Danielsian, we'll check your scene to find out what could be causing the trouble for you and reply when we find something.
Mike, I tried the displacement myself and the difference is very subtle! I've been told it might have something to do with smoothing groups. In any case thanks for testing it
-
Danielsian, we'll check your scene to find out what could be causing the trouble for you and reply when we find something.
Mike, I tried the displacement myself and the difference is very subtle! I've been told it might have something to do with smoothing groups. In any case thanks for testing it
Thanks houska, I appreciate your attention.
I'll wait for a solution or some explanation about which is the best workflow to work properly with displacement in Corona.
-
So it's actually pretty simple:
- Use a subdivision modifierwith a render level 4 (basically copy the settings from your C4D displacement settings)
- Double the min and max values in Corona material displacement. Apparently, if you have a height of 2cm in C4D and Intensity (Centered) mode, that means a displacement from -2cm to 2cm...
The Corona version is then even more detailed than C4D Physical Renderer result. As for the ZBrush, we don't have a licence here, so unfortunately we cannot check the workflow for you, sorry :-(
-
So it's actually pretty simple:
- Use a subdivision modifierwith a render level 4 (basically copy the settings from your C4D displacement settings)
- Double the min and max values in Corona material displacement. Apparently, if you have a height of 2cm in C4D and Intensity (Centered) mode, that means a displacement from -2cm to 2cm...
The Corona version is then even more detailed than C4D Physical Renderer result. As for the ZBrush, we don't have a licence here, so unfortunately we cannot check the workflow for you, sorry :-(
That's awesome!
So Michael was right.
Thank you Houska and Michael.
-
In any case thanks for testing it
Thanks for caring about your users.
-
So Michael was right.
Being married means to hear this phrase so rarely!
Thank you Houska and Michael.
You are welcome!
-
Being married means to hear this phrase so rarely!
Haha indeed. My wife thinks I am right except when she is right.