Help Needed with Freestyle Line Rendering Issue

Hello everyone,

I’ve been encountering an issue with Freestyle rendering in my Blender project and after several troubleshooting attempts, I’m turning to the community for help.

In my scene, which consists of various coral-like structures, I’m attempting to use Freestyle to add stylized lines to the render. However, the lines are only partially rendering, mostly appearing around the borders of some objects, and not throughout the entire scene as expected.

I’ve confirmed that my edge types (Silhouette, Border, Crease, Edge Mark, Contour, External Contour, Material Boundary, Suggestive Contour, Ridge & Valley) are all selected with the Logical OR combination setting enabled.
The “Culling” option is checked, with a Crease Angle of 134°.
I’ve attempted to adjust various Freestyle settings such as Face Smoothness, Sphere Radius, and edge detection thresholds to no avail.

I’ve checked that the Freestyle Line Set is indeed enabled for all objects and that visibility settings should not be causing the issue.

I have also tried simplifying the scene to reduce complexity, which did not solve the problem.

All textures are properly loaded, and there do not appear to be any missing data or errors that could explain the issue.

Could anyone suggest what might be preventing Freestyle from rendering lines across the entire scene? Are there known issues with Freestyle in certain contexts or with specific types of geometry? Any insights or suggestions for further troubleshooting steps would be greatly appreciated.

I am attaching several images of the render output and the Freestyle settings for reference.




Thank you in advance for your time and help!

Here, are listed limitations of Freestyle :
https://docs.blender.org/manual/en/latest/render/freestyle/introduction.html#known-limitations

They were the motivations to develop Line Art Modifier for Grease Pencil.

The first one is the high memory demand. For each line to draw, Freestyle is creating a curve object in memory. If there are too many lines to draw, it may gave up when a certain threshold of memory consumption is passed.

You have a lot of subdivided rounded geometry in your frame.
As explained, all meshes of view layer are loaded at once.

So, solution should be to create multiple view layers and restrain geometry on each.
To obtain a pertinent compositing, on some view layer, some geometry should be kept for occlusion, and on another view layer, same geometry should generate lines.
That may force you to duplicate geometry, to create several scenes, to split your file into several files.
That may correspond to an organization difficult to grasp.
That is why same task should be easier to do with grease pencil objects having Line Art modifiers. Because, they are visible in 3D Viewport.

Anyways, rendering a lot of lines is complicated. Grease Pencil Objects will encounter a memory consumption limit, too.

Some external NPR renderer may be more performant. But each one has its own limits.

1 Like

Thank you for the information on Freestyle’s memory usage and for suggesting viable alternatives. Managing memory for a scene with extensive line work is evidently key.

For my project, I need to produce an animated sequence with black and white outlines. My familiarity with Grease Pencil is quite limited – practically at a beginner’s level. So I’m weighing the option of sticking with Freestyle, utilizing multiple view layers, against the potential long-term benefits of learning Grease Pencil for this purpose.

In terms of workflow, could you advise whether instancing collections is a good approach for managing separate elements across different view layers, especially considering this will be for an animation? Or might there be a more efficient strategy for someone with my current skill set?

I appreciate your input on finding the most efficient path to achieve the desired outcome for an animated sequence.

Again thank you so much for a detailed explanation…

As you can see in Collection tab of properties editor, some Freestyle settings are per collection.
If you instance a collection, those settings will be the same for all instances.
On the other hand, collection can be used to restrain Line set rendered in View Layer.
So, what collection put in what view Layer may depend on how you want to stylize lines of collection. But if you split scene in several vie layer for memory gain, what will be important will be polycounts of objects, how round they are (roundness means more segments for lines), how they are occluding other objects or occluded by other objects.

If you don’t want to use Line Art, there are still other easy alternative to obtain contours. You can substract a Crytomatte to a dilated version of it.
You can try filters of compositing nodes.
It exists shader nodes setup rendering only edges, contours.

1 Like

Following your advice, I created separate view layers to manage the scene’s complexity, ensuring that the Freestyle settings are consistent across instances. Despite this, the problem persists, with only parts of the scene getting outlined. I’m still not seeing the Freestyle lines render across the entire scene as they should. It’s quite puzzling and any further advice would be greatly appreciated.

Thank you for your patience.


Status Bar of your blend file indicates that just having file open corresponds to 5.56 GB of ram occupied.
If you split your project in different files ( several files containing assets, other files containing animations of those linked assets, other files with different scenes corresponding to different view layers, other blend files for compositing and video editing) , you can lower memory occupation of file opened used for rendering.

If you split the scene to render outlines of static elements of foreground, you don’t need information about moving objects, shaders of objects, lighting, etc… reducing memory, used by unused data, increases memory available for render computations.
So, in order to really optimize the rendering of expected result ; you may need to make a copy of scene, per pass wanted, and purge the file of any info that is not useful.

And if Freestyle render is still partial, after that ; that means that is not a memory issue. And issue would be related to geometry of Freestyle settings.
From info, you shared. There is no reason to think that is relative to Freestyle settings.
Anyways, if problem is related to objects geometry, splitting scene and trying render of parts of it should help to identify culprit.

That may take a lot of time to investigate scene properly.
Maybe there is a threshold of render file size ; where it will no more be necessary to make optimizations.
But start by trying to make as much links as possible in final render file.
And if it is still not sufficient, make one file per view layer.
And then, if it is still not OK. Make copies of scenes and suppress materials, lighting, etc…

1 Like

I guess this one should rule out the memory related issues right? :sweat:

I am totally confused about it and not really sure how to proceed as well :face_with_diagonal_mouth:

Ideally, to be sure that issue does not come from Compositing set-up, you should look at original Freestyle pass, without any change.

You have described Edge Detection settings.
You have shown Line Set panel settings.
You have shown that there is no modifier susceptible to make lines disappear.

So, the only reasons left for a logical absence of lines are settings of Line Strokes panel ( a certain splitting of chaining, a selection of chains according to their length) or an invisible line color due to Freestyle material setting or Freestyle Texture nodes.

But you probably did not touch those settings at all.

So, you may face a Freestyle bug, already reported.

Or that may be a new one.

After much investigation and your helpful insights, I finally had my a-ha moment.:smile:

The problem stemmed from an animation layer that I didn’t realize was interfering with the Freestyle pass. I originally created a caustics animation for the scene, and it seems that I accidentally included it when setting up the view layers for the Freestyle render. Once I removed this pre-existing animation from the base_scene, everything started to render correctly.

Thank you all for your patience and support, for guiding me through the troubleshooting process. Your advice was invaluable, and it’s always great to know you have a community to turn to when things get tricky.

1 Like