2
$\begingroup$

I have a problem with Freestyle rendering.

As you can see there is a redundant line, which actually is hidden. Why this is happening? Is this a bug? Are there any ways to solve or workaround (except manually marking edges) this problem?

What is even more ridiculous is that if I delete farthest bar then unwanted line will dissapears! How it could be even explained?

.blend file is here: http://www.pasteall.org/blend/40994

Please help!

enter image description here

$\endgroup$
4
$\begingroup$

I've analyzed your scene, even rebuilt it from scratch because I could not understand my self what the problem was!

The reason you are getting artifacts and freestyle fails to compute correctly is because you have the legs of the table coplanar with the surface of the table and this notoriously cause problems not only in freestyle but in BI and Cycles too. In other words avoid having a surface exactly snapped on another surface because it may cause errors computing what is on top of the other.

Just lower the two cubes by few mm and you have solved the problem see the top window an example of the distance of the leg

edit more info:

It's called Z-fighting

it's not specific to Blender even, this problems may be noticeable or not but for your purpose you are asking to freestyle to show only visible edge and there is no way for it to discern if the upper face of the leg/cube it's higher or lower the bottom face of the table/cube. You need to give the render a hint even by a very slight amount.

And speaking about common practice, the common practice is to delete the invisible face!

$\endgroup$
  • 2
    $\begingroup$ Thanks! But is it have to be this way? I mean how artists are modeling complicated structures like buildings with a lot of layers and blocks? For example a wall constructed from a lot of bricks, where each brick is a separated object (mesh)? It would be a very tedious task to build a wall or another structure using small construction blocks without using of snapping... I can't believe that it is a normal way to keep small gaps between blocks. It feels strange and kinda not scientific approach... Could you please provide a link where I can find a confiramation that it is a normal pratice? $\endgroup$ – subGlitch Mar 9 '16 at 14:48
  • $\begingroup$ Thank you! But I've just tried to delete the invisible face and it became even worse. I even tried to delete both faces - on the leg and on the bottom of the table panel and I've got very very strange result: (pasteall.org/blend/40997) $\endgroup$ – subGlitch Mar 9 '16 at 15:52
  • $\begingroup$ That is how it looks: pasteall.org/pic/100388 $\endgroup$ – subGlitch Mar 9 '16 at 16:01
  • $\begingroup$ yeah, because the edge still overlap the bottom plane! What I wrote at the end was a general rule, a common practice indeed, not how to solve this specific problem $\endgroup$ – diramazioni Mar 9 '16 at 16:06
  • $\begingroup$ It is turned out, that it is a bug after all. See my answer below. But thank you anyway! $\endgroup$ – subGlitch Mar 9 '16 at 16:51
2
$\begingroup$

It turned out that it IS A BUG. And its discuusion could be found here: https://developer.blender.org/T36350

Looks like problem appears when there are "big" faces. Also there is a workaround - just to subdivide. Quote:

Apparently Freestyle has a bug in line visibility computation when edges are hid by large faces. I will look into the issue. For now, try to reduce the size of individual faces in the roof mesh Gare.000 (e.g., by selecting all faces and applying WKEY > Subdivide twice). By this way most extra lines would disappear.

It works for me.

Fixed .blend file: http://www.pasteall.org/blend/40998

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.