user: What is Edge Types and how is it used in Blender Python scripting?

assistant: Edge types are basic algorithms for the selection of lines from geometry.
When using the parameter editor you have to choose at least one edge type in order to get a render output,
but several edge types can be combined in one line set.
Edge types can also be excluded from calculation by pressing the *X* next to them.

[image reference removed]

Examples of some basic edge types:
Silhouette (green), Crease (black), Border (blue) and Edge Marks (red)
([blend-file](https://archive.blender.org/wiki/2015/index.php/File:EdgeType.zip) by LightBWK).

Type
:   Silhouette
    :   Draws silhouettes around your closed objects by rendering lines where the surface normal transitions between
        pointing toward and away from the camera. It is often good for organic objects (like Suzanne & Sphere),
        and bad for sharp edges, like a box. It cannot render open mesh objects like open cylinders and flat planes.

    Crease
    :   Shows only edges whose adjacent faces form an angle sharper than the defined view map’s *Crease Angle*.

        [image reference removed]

        Crease Angle proof of concept for 121° by LightBWK
        ([blend-file](https://archive.blender.org/wiki/2015/index.php/File:CreaseAngle.zip)).

    Border
    :   Border shows open mesh edges, i.e. edges that belong to only one face. An open cylinder has open edges at
        the top and bottom, and a plane is open all around. Suzanne’s eye socket is an open edge.

    Edge Mark
    :   Renders marked edges. See [Edge Marks](#edge-marks) for details.

    Contour
    :   Draws lines around each object, separating it from other objects behind it, or the scene background.

    External Contour
    :   Draws lines around all objects, separating them from the scene background, but not each other.

    [image reference removed]

    Left pair: Contour; Right pair: External Contour.

    Material Boundary
    :   Draws lines where two materials meet on the same object.

    Suggestive Contour
    :   Draws some lines which would form the *Silhouette* of the mesh if the view point was shifted.
        Depends on your view map settings for *Kr Derivative Epsilon* and *Sphere Radius*
        (further information: [File:Manual-2.6-Render-Freestyle-PrincetownLinestyle.pdf](https://archive.blender.org/wiki/2015/index.php/File:Manual-2.6-Render-Freestyle-PrincetownLinestyle.pdf)).

    Ridge & Valley
    :   Draws lines marking crests of ridges and valleys, i.e. places where the surface curvature is at
        its minimum or maximum. Depends on your *Sphere Radius* view map settings.

### Edge Marks

In Edit Mode you can mark “Freestyle Edges” in the same manner
you can mark “Seams” for UV unwrapping or “Sharp” for edge split.
These marked edges are available to render when you select *Edge Mark*.

Internally, edge marks are stored as the `freestyle_edge`
[attribute](../../../modeling/geometry_nodes/attributes_reference.xhtml).

Marking edges is done as follows:

1. Select the mesh object and enter *Edit Mode*.
2. Select the edges you want to be marked.
3. Press `Ctrl`-`E` and select *Mark Freestyle Edge*.

Edge marks are useful when you want to draw lines along particular mesh edges.
The examples below explain the use of edge marks.

[image reference removed]

Marking Freestyle Edges in Edit Mode; the edge marks are highlighted in green.

With *Edge Marks* enabled, the previously-marked lines are always rendered.
You can see the black contour lines and the blue lines that are made with edge marks.

|  |  |
| --- | --- |
| ../../../_images/render_freestyle_parameter-editor_line-set_edge-marks-example-1.png   Render without Edge Marks. | ../../../_images/render_freestyle_parameter-editor_line-set_edge-marks-example-2.png   Render with Edge Marks enabled. |

What are edge marks good for?

- When you need to render marks on an almost-flat plane, when other edge types cannot detect any line.
- When you want full control of edge rendering. Often used for edges of squarish shapes.
- Mark the whole base mesh to be rendered for base mesh preview.

What are edge marks not good for?

- Round outer edges (use instead *Contour/External Contour/Silhouette*).