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$

3 Answers 3

5
$\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$
5
  • 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
    Commented Mar 9, 2016 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. $\endgroup$
    – subGlitch
    Commented Mar 9, 2016 at 15:52
  • $\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$ Commented Mar 9, 2016 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
    Commented Mar 9, 2016 at 16:51
  • $\begingroup$ cool I didn't know $\endgroup$ Commented Mar 9, 2016 at 17:50
4
$\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$
0
$\begingroup$

you can also apply bevel modifier with value of 0.01cm to all parts without moving objects

enter image description here

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .