Visualization
About built-in and 3rd party, classic and real-time rendering solutions, settings, workflows, etc.
SOLVED!

Rendering transparent surface touching non-transparent

PVBergkrantz
Expert
Hi. I'm doing a rendering with some glass on top of another material, and if the two are touching, face to face, without any gap between, the rendering becomes grainy and messed up. See the screenshot for a clearer explanation.

I've tried messing around with the render settings, adjusting ray depth etc, but nothing seems to make a difference. In some cases I can move the objects to create an air gap, but in some that's not practical, like the inner sides of windows where the glass pane meets the frame, or modeled water touching the seabed.
Without any gap, the two faces are touching. With an air gap between the two surfaces.
| AC 25 Int | Win10 | i7-7800X | 32 GB | GeForce RTX 2060 6GB |

1 ACCEPTED SOLUTION

Accepted Solutions
Solution
Daniel Kovacs
Graphisoft Alumni
Graphisoft Alumni
Hi,

I think this is because of a modeling thing that we generally call "z-fight". When you have 2 different surfaces in the exact same position, the 3D engine won't be able to decide which one is before the other (because neither are), and won't know which surface to eliminate in the current angle, and so the 2 surfaces are both displayed, and start "flashing". You can see that in the OpenGL 3D window of ARCHICAD as well, if you place 2 morphs right over each other, with different surfaces.
I think the same thing happens in the render: the renderer sees both surfaces, and tries to display them both at once. If you use the same color for the bottom of the glass as the slab underneath, it looks fine.

This is not actually a bug, but a behaviour/limitation of the rendering engine. Here's what I do in case of "seabed". I usually model the bed from a mesh, and place the water into it as a slab, and then use SEO to remove the excess parts of the slab. When I do this, I can use the "Inherit from Operator" option to override the cut surfaces to the same surface. This way the rendering will look fine even though the surfaces are still touching.
I hope this explains everything. Let me know if you still have doubts or problems.

Regards,
Daniel Alexander Kovacs

Professional Services Consultant

GRAPHISOFT



For Troubleshooting and useful Tips & Tricks visit

View solution in original post

8 REPLIES 8
Solution
Daniel Kovacs
Graphisoft Alumni
Graphisoft Alumni
Hi,

I think this is because of a modeling thing that we generally call "z-fight". When you have 2 different surfaces in the exact same position, the 3D engine won't be able to decide which one is before the other (because neither are), and won't know which surface to eliminate in the current angle, and so the 2 surfaces are both displayed, and start "flashing". You can see that in the OpenGL 3D window of ARCHICAD as well, if you place 2 morphs right over each other, with different surfaces.
I think the same thing happens in the render: the renderer sees both surfaces, and tries to display them both at once. If you use the same color for the bottom of the glass as the slab underneath, it looks fine.

This is not actually a bug, but a behaviour/limitation of the rendering engine. Here's what I do in case of "seabed". I usually model the bed from a mesh, and place the water into it as a slab, and then use SEO to remove the excess parts of the slab. When I do this, I can use the "Inherit from Operator" option to override the cut surfaces to the same surface. This way the rendering will look fine even though the surfaces are still touching.
I hope this explains everything. Let me know if you still have doubts or problems.

Regards,
Daniel Alexander Kovacs

Professional Services Consultant

GRAPHISOFT



For Troubleshooting and useful Tips & Tricks visit
PVBergkrantz
Expert
I googled a bunch after and found the z-fight referenced a few times, and it seems indeed to be the problem. I suspected it might be a limitation of the technology but was still hoping for a tip or workaround to solve it in a good way. The solution you provided with putting the bottom surface of the transparent part the same as the seabed seems to do the trick! Very smart workflow with the SEO and inherit from operator as well. Thanks!
| AC 25 Int | Win10 | i7-7800X | 32 GB | GeForce RTX 2060 6GB |

PVBergkrantz
Expert
A small update on this, I am having some trouble rendering touching transparent materials. Say two walls in ArchiCAD, both in the same transparent material, meeting in a corner. When I try to render it shows similar issues to the first post. However, they are the same material and should merge right? They merge fine in sections and regular 3d, but when rendering I still get the edges.

The balcony in the attached image consists of 3 walls and a slab, all in the same material, but the connections appear and disrupts the shading in a render.

Any ideas?
| AC 25 Int | Win10 | i7-7800X | 32 GB | GeForce RTX 2060 6GB |

Barry Kelly
Moderator
PVBergkrantz wrote:
A small update on this, I am having some trouble rendering touching transparent materials. Say two walls in ArchiCAD, both in the same transparent material, meeting in a corner. When I try to render it shows similar issues to the first post. However, they are the same material and should merge right? They merge fine in sections and regular 3d, but when rendering I still get the edges.


transparency issues.jpg
The balcony in the attached image consists of 3 walls and a slab, all in the same material, but the connections appear and disrupts the shading in a render.

Any ideas?

You will probably want to play around with the Ray threshold and Ray Depth settings in the Cinerender settings.
There are many post here that discuss these settings.

Scroll down in this HelpCenter article to the section for "Cinerender and glass surfaces":
https://helpcenter.graphisoft.com/knowledgebase/41188/

There may be other render settings that affect how glass look when viewed from the ends - something to do with the refraction of the light and the colour of the glass.
I am no expert but the above should hopefully help.

Barry.
One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
PVBergkrantz
Expert
I'm aware of the ray depth settings, but I don't think that's the issue here, the problem is with ArchiCAD treating the walls as separate objects in the rendering, even though they merge in all other aspects. What I wished had happen was that they would be merged into one continuous solid before the rendering takes place, something that can be achieved by turning them into morphs and unioning them, but this is perhaphs not a feature in ArchiCAD (yet).
| AC 25 Int | Win10 | i7-7800X | 32 GB | GeForce RTX 2060 6GB |

Lingwisyer
Guru
So you have an extra 2 surfaces that the light passes through and refracts / reflects BUT, you would not construct glass as a single continuous piece anyway. You would have a joined that creates that same effect somewhere near the corner.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660
PVBergkrantz
Expert
Yes, that is true of course, for this case at least. But since there isn't these two extra surfaces in any other aspect of the model, say in section, plan, or unrendered 3d-model. There the two walls merge into one continuous object, but just visually as it seems, not mathematically.

Always a good idea to ask anyway, when in doubt, I think. Thanks for the feedback.
| AC 25 Int | Win10 | i7-7800X | 32 GB | GeForce RTX 2060 6GB |

Lingwisyer
Guru
If you select a each of those wall individually you will see that one continues into the corner while the other does not. Walls create a butt joint. My guess is that this is due to the fact that you would generally not chamfer the material you are making your wall out of. Not sure if there is a way to get them to chamfer to each other... If you try using beams on the other hand, you might get a different outcome as they do chamfer as far as I know.



Ling.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660