Mon, Dec 23, 10:22 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Dec 23 8:11 am)



Subject: Why is displacement breaking this model?


muralist ( ) posted Tue, 03 June 2008 at 11:58 PM · edited Mon, 23 December 2024 at 10:22 AM

file_407553.jpg

All materials are the same, so why does the model show these lines when I use displacement?  It doesn't happen in the whole model, and it only occurs when displacement is on.


ockham ( ) posted Wed, 04 June 2008 at 1:13 AM

This is a persistent problem, especially in Poser 7.   Displacement
causes mesh lines to show.  You might be able to improve the
situation with a finer mesh, or maybe not.

My python page
My ShareCG freebies


BeyondVR ( ) posted Wed, 04 June 2008 at 1:21 AM

Displacement works in the normal direction (perpendicular to the surface).  If two surfaces meet at, say, 90 degrees, and displacement is carried to the edges of the surfaces, they will appear to separate.  I don't know any way around this.  It is best to keep the displacement to details, and avoid going to the edge of a surface as much as possible where this will show.

There is a technique, using a color math node, that allows both positive and negative displacement on the same material.  This may be helpful in some circumstances.  If you're interested, let me know and I will search for ther thread.

John


BeyondVR ( ) posted Wed, 04 June 2008 at 1:27 AM

I probably misunderstood your problem, Muralist.  I wonder if triangulation would help that problem.

John


Helgard ( ) posted Wed, 04 June 2008 at 2:35 AM

Muralist,

I will mail you a tutorial I wrote to explain this and maybe it will show you a fix.

Helgard


Your specialist military, sci-fi, historical and real world site.


jonthecelt ( ) posted Wed, 04 June 2008 at 2:41 AM

The other solution would be to make it so that displacement works to displace the mesh inward, not outward. Do this by adding a subtract node in front of the displacement map. Connect the map to input 1, and set both input values to 1. Then connect this subtract node to the displacement setting in placeof the map. This makes the parts which had been pushed out (thus breaking the mesh) stay static, and takes those parts which had been used as the base level inward by the same amount the original deformation went out.

JonTheCelt


bagginsbill ( ) posted Wed, 04 June 2008 at 6:10 AM

Quote - Displacement works in the normal direction (perpendicular to the surface).  If two surfaces meet at, say, 90 degrees, and displacement is carried to the edges of the surfaces, they will appear to separate.

This is true for un-welded polygons - not true if they're welded.

When two polygons appear to share an edge, but they each have their own pair of vertices forming the edge, it only looks like they are joined. Any displacement works as John describes, moving the polygon in the direction of its normal.

However, when the two polygons actually share an edge, the normal is smoothly interpolated across the edge. Any displacement will do the right thing. Were this not the case, then displacement would never work on a Poser sphere or cylinder, yet it works perfectly.

Also, are you actually trying to displace (expand) the cylinder here? Or did you do that by mistake. Particularly, is it your intention that the smooth parts of this cylinder remain in their original positions? If so, you may be dealing with an issue I've written about a jillion times.

In Poser, displacement is based on the numerical value of the displacement source (image or math nodes.) Black = 0 = no displacement. White = 1 = 100% displacement. Mid gray = .5 = half displacement!

Many applications other than Poser use a convention that the displacement map is offset by 50%, so that mid gray is intended to mean no displacement (.5 - .5 = 0), black is negative half inward displacement (0 - .5 = -.5) and white is half outward displacement (1 - .5 = .5).

This is the style of map produced by ZBrush, for example.

If you've got a displacement map that is encoded this way, you're getting displacement from the mid-gray when you intended that you have none. The solution is to use a math node and subtract .5 from your displacement, and plug that into the displacement input.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


bagginsbill ( ) posted Wed, 04 June 2008 at 6:37 AM

Attached Link: Displacement thread

Link to a thread where I explained this in more detail, with pictures.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


Helgard ( ) posted Wed, 04 June 2008 at 6:56 AM

file_407579.jpg

"This is true for un-welded polygons - not true if they're welded."

Bagginsbill, I tend to disagree. Any object with a displacement map that is incorrectly applied will split along the edges, whether it is welded or not. The attached example picture is a welded box, yet because the displacement has not been corrected by a math node, it still splits.


Your specialist military, sci-fi, historical and real world site.


Helgard ( ) posted Wed, 04 June 2008 at 6:57 AM

file_407580.jpg

It is correct what you say about the math node though, this is the same box with the math node applied.


Your specialist military, sci-fi, historical and real world site.


bagginsbill ( ) posted Wed, 04 June 2008 at 6:57 AM

file_407581.jpg

Here is another illustration.

You can force Poser to pretend an edge is not welded, even if it is, by adjusting the "Crease angle" on the object.

Here are four Poser Hi-res spheres. The first has no displacement - the other three have a uniform 1 inch displacement.

#2 crease angle=80 - all smooth
#3 crease angle=10 - partial separation of some polygons
#4 crease angle=6 - total separation of some polygons


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


bagginsbill ( ) posted Wed, 04 June 2008 at 6:58 AM

Quote - "This is true for un-welded polygons - not true if they're welded."

Bagginsbill, I tend to disagree. Any object with a displacement map that is incorrectly applied will split along the edges, whether it is welded or not. The attached example picture is a welded box, yet because the displacement has not been corrected by a math node, it still splits.

Nope - that's crease angle at work as I just cross posted!

When you tell it the wrong crease angle, the edge becomes unwelded.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


Helgard ( ) posted Wed, 04 June 2008 at 7:02 AM

OK, that box had a crease angle of 80, what should it be to not split the edges?


Your specialist military, sci-fi, historical and real world site.


bagginsbill ( ) posted Wed, 04 June 2008 at 7:11 AM

file_407582.jpg

Well, since the angle is 90 degrees, the crease angle must be above that to keep it smooth.

However, Poser doesn't smooth 90 degree angles perfectly. It only really works for angles less than 90 degrees.

Both boxes have 1-inch displacement. The second one is welded with crease=100.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


bagginsbill ( ) posted Wed, 04 June 2008 at 7:22 AM · edited Wed, 04 June 2008 at 7:22 AM

file_407583.jpg

The Poser box is not welded, in case anybody is wondering. You have to make your own welded box.

Same with cylinder.

Also, you may have to enable smoothing, to apply additional displacement based on welded edges.

Here I have a Poser cylinder 3 times. The second and third have been welded. All have 1 inch displacement.

The first explodes on the unwelded edge (top and bottom) but remains connected on the sides.

The second and third have crease=100.

The second no longer explodes, but has no "smoothing" so it looks wrong.

The third has smoothing, too and is closer to correct. However, as I said, Poser really can't deal with 90 degree smoothed angles too well.

But the locomotive wasn't anywhere near 90 degrees. Welding and crease angle will allow it to be displaced correctly. However, I really think the problem is that there is no displacement desired on the cylinder of the locomotive - the displacement map must be offset by .5 if gray is to mean 0 displacement.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


Helgard ( ) posted Wed, 04 June 2008 at 8:05 AM

OK, I stand corrected, although I must admit that the box doesn't look that good with a crease angle of 100, much better to just fix the displacement map as in my second example.

That is what I love about Poser, you learn something new everyday.


Your specialist military, sci-fi, historical and real world site.


bagginsbill ( ) posted Wed, 04 June 2008 at 8:43 AM

You're right - its better to make the map produce no displacement, if what is desired is no displacement. If you have no intention of displacing a polygon, it doesn't matter if its welded or not.

On the other hand, if you do want to displace a cylinder, to make a rib or whatever, you have to have all the polygons welded.

We still have no idea if that is the issue with this locomotive.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


muralist ( ) posted Wed, 04 June 2008 at 12:39 PM · edited Wed, 04 June 2008 at 12:44 PM

Thanks guys for your help.  Just a couple of quick notes before I dive into another serries of tests on this.

The dispacement map starts at pure black; the only displacement on the main steam cylinder should be the bands and bolts.

All parts are using the same smoothing of 22.5 and it is rendered with smoothing off.

Other cylinder shapes on the model use the same type of map yet show no defects.

I'll render some more side-by-side tests and post here in a bit.

As an aside, the only time I have trouble with displacement at edges of maps is when I haven't carefully uvmapped and then drawn the displacement map to line up exactly.  I make the displacement black/zero at corners of cubes to avoid it pushing the surface outward and splitting it. 


bagginsbill ( ) posted Wed, 04 June 2008 at 12:41 PM

"All parts are using the same smoothing of 22.5 and it is rendered with smoothing off."

Do you mean crease angle? That's kind of low - might be the problem. Try increasing that.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


Gareee ( ) posted Wed, 04 June 2008 at 12:59 PM

Hmmm if the engine is all one part, then may separating more parts off it woudl be wise?

That way, you could have different smoothing rates on different groups, and if they aren;t poseable anyway, the additional grouping would have little other effects.

Way too many people take way too many things way too seriously.


muralist ( ) posted Fri, 06 June 2008 at 12:02 PM

Quote - "All parts are using the same smoothing of 22.5 and it is rendered with smoothing off."

Do you mean crease angle? That's kind of low - might be the problem. Try increasing that.

Yes. I meant crease angle.  I raised it and got the same result. 
This is confusing me because back in November I rendered using the same maps and models, and didn't have the banding.  I don't know what has changed.


Helgard ( ) posted Fri, 06 June 2008 at 12:41 PM

Muralist, just a stupid question, but have you rendered it with displacement turned off, just to check if it really is the displacement causing the problem.

When I have a problem, I go through it step by step, turning off options until I find the real cause. Sometimes the cause is not what you think it is.


Your specialist military, sci-fi, historical and real world site.


muralist ( ) posted Fri, 06 June 2008 at 12:49 PM

Yes, of course and it looks fine without displacement, except then I lose all the bolts and other detail.  The strange thing is that the whole train uses the same shaders, only different maps (which are constructed in the same way) for each of 9 materials, all use displacement, and the only problem is with the main boiler.  I thought it might be the geometry of that part so I rebuilt it and subdivided, and still no luck.


bagginsbill ( ) posted Fri, 06 June 2008 at 10:20 PM

OK I got the model.

It renders just fine as you gave it to me. I don't see the polygon edges. It is not a crease angle problem. You have to lower the crease angle to 11 degrees to have a problem on these polys.

However, I can see artifacts (worse than you have shown) if I put a Reflect node into the shader and enable raytracing and have variable displacement.

If the displacement is even (doesn't have to be 0, just smooth and flat) there is no problem. By that I mean a featureless displacement.

These are interesting clues. I know that Poser has confusion regarding the reflections of displaced surfaces.

You might want to try adding a few edge loops near the displacements and see what that does. In my experience, if the displacement features cover only a small fraction of a polygon, reflections of that polygon can take on all sorts of meaningless information.

Another thing I've found is increasing the RayBias will decrease (but not eliminate) the problem.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


bagginsbill ( ) posted Fri, 06 June 2008 at 10:25 PM

file_407789.jpg

Here's what I mean. I put your displacement map and just a Reflect node on. (I have a 3D environment photo around the train.)

I increased the Raybias on the Reflect node to 5 inches. This means it will ignore any self-reflections within 5 inches of the original reflection point. Now on this model, the cylinder cannot reflect itself without displacement. However, with displacement, it seems to be confused about what part sticks out where. Increasing the Raybias made it less confused.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


muralist ( ) posted Fri, 06 June 2008 at 10:27 PM

I've now reinstalled P7 and am setting up a render:  you're the second to post a render with no trouble, so I thought maybe my installation was corrupted.  We will know in a few minutes.  Here's the other good render.

http://www.renderosity.com/mod/forumpro/showthread.php?thread_id=2719401&page=2


bagginsbill ( ) posted Fri, 06 June 2008 at 10:28 PM

file_407790.jpg

This is how it renders without reflection. This is close to the material you gave me - I tweaked it a little bit, but its still using a fake reflection via Sphere_Map and an image.

There are no artifacts.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


muralist ( ) posted Fri, 06 June 2008 at 10:30 PM

Quote - Here's what I mean. I put your displacement map and just a Reflect node on. (I have a 3D environment photo around the train.)

I increased the Raybias on the Reflect node to 5 inches. This means it will ignore any self-reflections within 5 inches of the original reflection point. Now on this model, the cylinder cannot reflect itself without displacement. However, with displacement, it seems to be confused about what part sticks out where. Increasing the Raybias made it less confused.

I'm confused about the cylinder reflecting itself.  What do you mean?  I see the black artifacts, but the areas around the bolts look good.  Should I cut a line in each side of each band around the boiler?


bagginsbill ( ) posted Fri, 06 June 2008 at 10:30 PM

file_407791.jpg

Here is with real reflection, with a Fresnel effect. It gets messed up right away.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


muralist ( ) posted Fri, 06 June 2008 at 10:31 PM

Quote - This is how it renders without reflection. This is close to the material you gave me - I tweaked it a little bit, but its still using a fake reflection via Sphere_Map and an image.

There are no artifacts.

So we know now that so far, with fake reflection, no artifacts, and real reflection, artifacts?


muralist ( ) posted Fri, 06 June 2008 at 10:32 PM

Quote - Here is with real reflection, with a Fresnel effect. It gets messed up right away.

Yeeeoooow. what causes that?


bagginsbill ( ) posted Fri, 06 June 2008 at 10:39 PM

file_407792.jpg

The Firefly renderer was not original designed for ray tracing or something. I don't really understand the excuses. I just know that you can never trust it to show reflections of a displaced surface. Sometimes it will work, sometimes not. The probability of not working goes up as the amount of displacement increases, and the size of the displacedment features, as a fraction of a polygon's total area, decreases. Some internal math formula is making bad assumptions somewhere.

Tweaking Raybias helps. Decreasing displacement helps. Making smaller/more polygons helps.

SInce I'm not into modeling, I did the first two of those three.

Changed Raybias to 12 inches.
Decreased your displacement amount to .7 inch (you had about .98 inch).

Artifacts gone. (mostly - still a teensy bit at the top - but not really easy to see)


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


bagginsbill ( ) posted Fri, 06 June 2008 at 10:42 PM

This model is kind of low-poly in places, which is fine, if I could turn on Smoothing. But you've got some wonky polygons that go crazy with smoothing. If you could adjust those polys (just cut them near the corners so they don't try to bend around so much) we could turn on smoothing and the round parts would really look round, instead of piecewise linear.

Cool model.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


muralist ( ) posted Fri, 06 June 2008 at 10:48 PM · edited Fri, 06 June 2008 at 10:52 PM

file_407794.jpg

> Quote - This model is kind of low-poly in places, which is fine, if I could turn on Smoothing. But you've got some wonky polygons that go crazy with smoothing. If you could adjust those polys (just cut them near the corners so they don't try to bend around so much) we could turn on smoothing and the round parts would really look round, instead of piecewise linear. > Cool model.

Okay I'll set it up for smoothing.

I rendered it with Poser default light and no lines appeared, then rerendered with my IBL light -- I'm now wondering whether my AO settings cause those lines.  The light is in your Runtime/Lights/EnvPanorama folder -- will you take a look at the AO setting in the IBL light please.

Your reflective shaders look good; are you saying the renderer itself is randomly throwing artifacts in?


muralist ( ) posted Fri, 06 June 2008 at 10:59 PM · edited Fri, 06 June 2008 at 10:59 PM

file_407797.jpg

Here's the exact same setup, only with the stock DuskByOceanAO lights.  Same lines on those edges, only they don't extend the same length down the boiler.


bagginsbill ( ) posted Fri, 06 June 2008 at 10:59 PM

file_407798.jpg

Oh you used light-based AO? That is also a ray-traced effect and would experience the same kind of problem. I don't use light-based AO ever, because it is the most buggy ray-traced effect there is in Poser. No adjustment will ever make it work right.

I generally use material AO nodes.

So that's a good clue - you have AO problems.

I'm pretty sure this is all due to trying to use ray-traced effects with displacement. We can work around these, but we have to respect Poser's limitations. Remember the third workaround is more polygons. You may want to try it.

BTW: Here's you locomotive after a 12 hour run. Needs washing again :)

I'm off to bed now. I'll check on you tomorrow.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


muralist ( ) posted Fri, 06 June 2008 at 11:00 PM

lol, thanks.  I'll wash the locomotive and see you tomorrow.

Ill try setting up the material with AO instead of the lights.


bagginsbill ( ) posted Fri, 06 June 2008 at 11:09 PM

file_407799.jpg

Yea and watch the raybias. Suggestion: while testing the material AO, turn off all other lighting effects (Diffuse_Value = 0, Specular_Value=0, Reflection_Value=0) and plug the AO node into Alternate_Diffuse.

It should look something like this. Using this technique, you can easily see what the AO is doing, and not confuse the issue with other shader stuff.

Having done this test with the AO node, I'm now certain this has to do with ray-tracing a displaced surface.

Maybe you should completely separate those rings and actually model them. Just use the displacement for rivets. Right now there are tons of AO artifacts. I didn't bother adjusting or tweaking or using higher render settings, so its pretty bad. It may not be possible to eliminate them.


Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.