Freestyle for Blender

Quick question and possible suggestion:

Why does Freestyle apparently stroke Objects which are outside the Camera’s field of vision? A good deal of Render Time gets expended on Objects which won’t even appear.

To avoid this extra time, it’s currently necessary to either (a) move non-rendered Objects to different Layers, or else (b) keyframe their render-ability off. But this is in breaking with normal actions with the BI renderer, and it can often be a big inconvenience.

So is anybody aware of this and can Freestyle be set to only Render those Objects in the Camera’s field of vision?

David Brennan : i guess that’s what culling is used for?


Ah, thanks, dude. Didn’t know that.

I’ve been testing the “Culling” out (and I see that you’re right - it intends to do exactly what I was looking for) but it does not seem to be working.

In my test Renders with the Culling, the Render time with mesh-heavy Objects moved off-camera is the same as when they were on-camera. (But when the mesh-heavy Objects were moved to a non-Rendered Layer, then the Render time became very fast again.)

Are there any tricks to “Culling” beyond just checking the box?

@@DavidBrennan
There are 2 ways to not calculate mesh “outside” view.
Culling: This cull back faces and out of view faces
Selection by image border: this only select objects inside or partially inside camera view.
[not sure the specific why we need 2 (if they are the same that is)]

There is also grouping (selection by group) but I’m not sure if it is working or worked at right now
to only include or exclude mesh calculation.

Ah, thank you very much, Light Bwk . I’m Rendering a video right now, but as soon as that’s done then I’ll experiment with this and report back. I hope Johantri sees this technique, as well.

Well, unfortunately, I did some test set-ups and even the combo of Culling and Selection by Image Border had a negligible effect of speeding up the Render Time compared to the Scene without the off-camera Objects altogether.

So I guess this is a feature request (or feature improvement) request to the Freestyle team - that Freestyle doesn’t waste Render Time processing off-camera Objects.

A bit offtopic(or not):
During the Blender Party yokohama 2013, in Yokohama, Japan, I’ll be giving a 5 minutes workshop/lecture about Freestyle used for Anime.
So, if you are interested and near Yokohama on 23rd March 2013, you are welcome: http://peatix.com/event/11282


By the way, I’ll be speaking in English but I’ll have instant translation into Japanese.

After…five, six years?..Freestyle is finally coming officially. Within mere days!

Great congratulations and, moreso, great thanks to all the dudes who’ve created this. I know there’s still a lot to be done, but just as it is now, Freestyle is so awesome and I have a blast with it.

It’s Spring! Number One ! Blender Festival !
[For those of you what can’t read the poster]

WHOA nice! No more experimental builds!

Hey there, love freestyle, I have two questions:

  1. Is there a way to make just lines in space, like dimensioning lines? I’m currently using very thin cylinders but the lines have funny shaped ends due to strangeness with visibility. (if we don’t have lines can I request them?)

  2. Can we designate areas to render solid black? Along with my dimensioning lines I want solid black text for the dimensions, not outlined text. (again, if this doesn’t exist can I request it?)

Regarding the idea of just lines in space, the best way to do this (I think) is probably just to isolate the Freestyle lines in the Node Editor. In your Render Layer settings, click off everything except for Freestyle, and then you’ll just get the black (or whatever color) lines. (You can also do this via Render Layers by isolating the “Edge” and turning that on rather than Freestyle.)

Freestyle certainly allows you to render black - you can set your own colors - so I’m not entirely sure what you were asking with the second question. If you are using the “Python Script Mode” and your selected script is colorful and you’d like it just black instead, then I’ll again refer you to the Render Layers. There, isolate Freestyle and then use a Brightness/Contrast node to make it pure black.

I just saw this? Do you live in Japan? I am in Tokyo. I would have come!

Hi ebswift,
I would say that none of your questions are strictly about Freestyle, anyways:

–edit: point 1 doesn’t work, read following posts for working solutions
1 -> to make and render single lines, create simple edges connecting two or more vertices, then select these edges and mark as Freestyle edges to ensure that they will be taken into account by Freestyle.
–edit end

2 -> to have an object rendered as full black you have to assign it a material, set the material color to black and check the “shadeless” option in the material panel.

Personally, for dimension lines (or arrows or whatever), I use bezier curves. I give them thickness by adjusting the Bevel setting and give them a shadeless black material. You might also want to use a constraint, so that they are always perpendicular to the camera (otherwise you get dimensions, arrows and text floating in 3D space, which isn’t always what you want).

For text, and often for dimension lines, I usually don’t want Freestyle to render the edges. So I have a layer (or several layers) where Freestyle is turned off. The Freestyle and non-Freestyle layers then have to be combined using composite nodes, so that you see them both in the final Render. I can upload an example .blend, if that would help.

Except they don’t, at least not in any build I’ve tried. Only Edges connected to true geometry generate Freestyle lines. As some who loves using Blender for a variation vector 2d art, this is a huge shame. I can fill up the space with ngons and non-marked edges to achieve the same result (and it’s a really nice result! no gripes about the Freestyle output in itself), but it winds up taking more time than doing the actual edge-drawing.

Yes, you are right!
Thanks for pointing this out and sorry for me giving a wrong answer! I just tried and edges aren’t rendered if they don’t make a mesh.

Ok, thanks for the discussion on this. Originally I had Solid turned off in the layer settings. I turned that back on, set shadeless on the materials for all the objects I only wanted outlines for and set my dimension markers to a black material. I then grouped all the dimension text into a group called No Outline. The dimensioning lines were left as very thin cylinders. The lines were added to a group called Lines, while all other objects were added to a group called Outline.

In the freestyle settings I created the two line sets for Outline and Line. In outline I set exclusive for the group No Outline and set a line thickness of 3. For Line I set the inclusive group for Lines and made its thickness as 1.

The end result was nice freestyle outlines around my objects with solid black dimensioning numbers and very nice thin dimensioning lines.

Every day I check the SVN and tell myself, “Today could be the day!” Every day…heartbreak.

But I know it’s worth the wait, and it’s better to get the best version of it than a compromised, glitch-y monstrosity.