Per-material line color settings for Freestyle.
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Mon, 7 Jul 2014 06:54:46 +0000 (15:54 +0900)
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Mon, 7 Jul 2014 07:19:51 +0000 (16:19 +0900)
commit7915d7277ac8c605f016f30f943080556244fb59
tree4e137b5a4e98fad4911815a938cae8fd00783030
parentdc40928087e9b1183a6df2b38bb6a9a610e4ed13
Per-material line color settings for Freestyle.

New properties 'line_color' and 'line_priority' are added to Material ID data blocks.

The 'line_color' property allows users to specify a per-material line color that can be
used as a Freestyle line color through Material color modifiers of line style settings.

The new line color property is intended to provide a solution for line color
stylization when a proper Freestyle support for Cycles is implemented (likely
as part of the upcoming Blender 2.72 release; see Patch D632).  Materials in
Cycles are usually set up using shader nodes, and Freestyle won't be capable
of retrieving colors and other properties from node-based materials any soon.

The new line color property of materials addresses this foreseen limitation by
providing artists with an intuitive alternative mean to specify line colors on a
per-material basis independently from node trees.

The 'line_priority' property gives users a way to control line colors at material
boundaries.  When a line is drawn along a feature edge at material boundaries,
one of the two materials on both sides of the edge has to be picked up to
determine the line color.  So far there was no way to control this selection
(which was in effect at random).  Now the material with a higher line color
priority will be selected.

The new per-material line settings are shown in the new Freestyle Line tab in
the Material context of the Properties window (only when Freestyle is enabled).
14 files changed:
release/scripts/freestyle/modules/freestyle/functions.py
release/scripts/freestyle/modules/parameter_editor.py
release/scripts/startup/bl_ui/properties_freestyle.py
source/blender/blenkernel/BKE_blender.h
source/blender/blenkernel/intern/linestyle.c
source/blender/blenloader/intern/versioning_270.c
source/blender/blenloader/intern/versioning_defaults.c
source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp
source/blender/freestyle/intern/python/BPy_FrsMaterial.cpp
source/blender/freestyle/intern/scene_graph/FrsMaterial.h
source/blender/makesdna/DNA_linestyle_types.h
source/blender/makesdna/DNA_material_types.h
source/blender/makesrna/intern/rna_linestyle.c
source/blender/makesrna/intern/rna_material.c