0
$\begingroup$

I want to be able to select the edges freestyle determines (e.g. silhouette edges), and then, say, draw only those silhouette edges from another view. Is it possible?

$\endgroup$
0
$\begingroup$

Freestyle generates it's edges based on the settings used. This includes the camera position relative to the model. Your example of a silhouette edge will always be the outer boundary of the object and "feature edges of interest" which can change through an animation or camera move.

The way to fully control where a line is drawn is to mark the edges as freestyle edges. You can cut extra edges through your geometry to get edges exactly where you want them.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Yes, but can freestyle mark the edges it rendered from a view as "freestyle edges" for me? Or should I do it manually (this seems silly...). $\endgroup$ – Mikhail Jul 29 '14 at 18:20
  • $\begingroup$ No freestyle won't mark any edges as freestyle edges, you need to manually specify which ones you want to use. Silhouette or suggestive contours don't have to line up with actual geometry edges so picking what to mark would be impossible. $\endgroup$ – sambler Jul 30 '14 at 8:49
1
$\begingroup$

Freestyle does not keep track of mesh edges selected as feature edges. It is not trivial to identify the mesh edges corresponding to the feature edges from the information Freestyle can provide.

Freestyle feature edges are ordinary straight edges between two vertices. It would be possible to map the feature edges to input mesh edges (to some extent, because the mapping involves comparison of vertices that are floating-point real numbers). To make it possible, you need to apply all mesh modifiers, since there is no way to select dynamically generated edges (e.g., by a subsurf modifier). Anyway some programming effort using the Blender Python API is required.

Depending on your application requirements, another solution could be to visualize Freestyle feature edges by creating a new curve object. The script viewmap_to_curve.py shown in this link is a style module you can use as it is in the Python Scripting mode of Freestyle. All visible feature edges will be converted into a single curve object named Viewmap at the location of the feature edges in the 3D space. This allows you to look at the feature edges from a different view point (as illustrated in this blog article). By a bit of Python programming to extend the script, it is possible to select feature edges of a certain edge type, e.g., to visualize only silhouette lines.

| improve this answer | |
$\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.