Curves: Hair to Curves rename in Cycles/EEVEE UI
Change uses of "Hair" in Render Settings UI in the property editor and the "Hair Info" node to use the "Curves" name to reflect the design described in T95355, where hair is just a use case of a more general curves data type. While these settings still affect the particle hair system, the idea is that if we have to choose one naming scheme to align with, we should choose the option that aligns with future plans and current development efforts, especially since the particle system is considered a legacy feature. A few notes: - "Principled Hair BSDF" is not affected since it's meant for hair. - Python API property identifiers are not affected. Differential Revision: https://developer.blender.org/D14573
This commit is contained in:
parent
74db0f3d5f
commit
8b04308953
|
@ -65,8 +65,8 @@ enum_panorama_types = (
|
|||
)
|
||||
|
||||
enum_curve_shape = (
|
||||
('RIBBONS', "Rounded Ribbons", "Render hair as flat ribbon with rounded normals, for fast rendering"),
|
||||
('THICK', "3D Curves", "Render hair as 3D curve, for accurate results when viewing hair close up"),
|
||||
('RIBBONS', "Rounded Ribbons", "Render curves as flat ribbons with rounded normals, for fast rendering"),
|
||||
('THICK', "3D Curves", "Render curves as circular 3D geometry, for accurate results when viewing closely"),
|
||||
)
|
||||
|
||||
enum_use_layer_samples = (
|
||||
|
@ -428,14 +428,14 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
|
|||
min_light_bounces: IntProperty(
|
||||
name="Min Light Bounces",
|
||||
description="Minimum number of light bounces. Setting this higher reduces noise in the first bounces, "
|
||||
"but can also be less efficient for more complex geometry like hair and volumes",
|
||||
"but can also be less efficient for more complex geometry like curves and volumes",
|
||||
min=0, max=1024,
|
||||
default=0,
|
||||
)
|
||||
min_transparent_bounces: IntProperty(
|
||||
name="Min Transparent Bounces",
|
||||
description="Minimum number of transparent bounces. Setting this higher reduces noise in the first bounces, "
|
||||
"but can also be less efficient for more complex geometry like hair and volumes",
|
||||
"but can also be less efficient for more complex geometry like curves and volumes",
|
||||
min=0, max=1024,
|
||||
default=0,
|
||||
)
|
||||
|
@ -649,8 +649,8 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
|
|||
default=False,
|
||||
)
|
||||
debug_use_hair_bvh: BoolProperty(
|
||||
name="Use Hair BVH",
|
||||
description="Use special type BVH optimized for hair (uses more ram but renders faster)",
|
||||
name="Use Curves BVH",
|
||||
description="Use special type BVH optimized for curves (uses more ram but renders faster)",
|
||||
default=True,
|
||||
)
|
||||
debug_use_compact_bvh: BoolProperty(
|
||||
|
@ -1270,7 +1270,7 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup):
|
|||
|
||||
shape: EnumProperty(
|
||||
name="Shape",
|
||||
description="Form of hair",
|
||||
description="Form of curves",
|
||||
items=enum_curve_shape,
|
||||
default='RIBBONS',
|
||||
)
|
||||
|
@ -1284,8 +1284,8 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup):
|
|||
@classmethod
|
||||
def register(cls):
|
||||
bpy.types.Scene.cycles_curves = PointerProperty(
|
||||
name="Cycles Hair Rendering Settings",
|
||||
description="Cycles hair rendering settings",
|
||||
name="Cycles Curves Rendering Settings",
|
||||
description="Cycles curves rendering settings",
|
||||
type=cls,
|
||||
)
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ from bl_ui.utils import PresetPanel
|
|||
from bpy.types import Panel
|
||||
|
||||
from bl_ui.properties_grease_pencil_common import GreasePencilSimplifyPanel
|
||||
from bl_ui.properties_render import draw_hair_settings
|
||||
from bl_ui.properties_render import draw_curves_settings
|
||||
from bl_ui.properties_view_layer import ViewLayerCryptomattePanel, ViewLayerAOVPanel, ViewLayerLightgroupsPanel
|
||||
|
||||
class CyclesPresetPanel(PresetPanel, Panel):
|
||||
|
@ -336,8 +336,8 @@ class CYCLES_RENDER_PT_subdivision(CyclesButtonsPanel, Panel):
|
|||
col.prop(cscene, "dicing_camera")
|
||||
|
||||
|
||||
class CYCLES_RENDER_PT_hair(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Hair"
|
||||
class CYCLES_RENDER_PT_curves(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Curves"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -353,13 +353,13 @@ class CYCLES_RENDER_PT_hair(CyclesButtonsPanel, Panel):
|
|||
if ccscene.shape == 'RIBBONS':
|
||||
col.prop(ccscene, "subdivisions", text="Curve Subdivisions")
|
||||
|
||||
class CYCLES_RENDER_PT_hair_viewport_display(CyclesButtonsPanel, Panel):
|
||||
class CYCLES_RENDER_PT_curves_viewport_display(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Viewport Display"
|
||||
bl_parent_id = "CYCLES_RENDER_PT_hair"
|
||||
bl_parent_id = "CYCLES_RENDER_PT_curves"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
def draw(self, context):
|
||||
draw_hair_settings(self, context)
|
||||
draw_curves_settings(self, context)
|
||||
|
||||
class CYCLES_RENDER_PT_volumes(CyclesButtonsPanel, Panel):
|
||||
bl_label = "Volumes"
|
||||
|
@ -757,7 +757,7 @@ class CYCLES_RENDER_PT_filter(CyclesButtonsPanel, Panel):
|
|||
col = layout.column(heading="Include")
|
||||
col.prop(view_layer, "use_sky", text="Environment")
|
||||
col.prop(view_layer, "use_solid", text="Surfaces")
|
||||
col.prop(view_layer, "use_strand", text="Hair")
|
||||
col.prop(view_layer, "use_strand", text="Curves")
|
||||
col.prop(view_layer, "use_volumes", text="Volumes")
|
||||
|
||||
col = layout.column(heading="Use")
|
||||
|
@ -2218,8 +2218,8 @@ classes = (
|
|||
CYCLES_RENDER_PT_light_paths_fast_gi,
|
||||
CYCLES_RENDER_PT_volumes,
|
||||
CYCLES_RENDER_PT_subdivision,
|
||||
CYCLES_RENDER_PT_hair,
|
||||
CYCLES_RENDER_PT_hair_viewport_display,
|
||||
CYCLES_RENDER_PT_curves,
|
||||
CYCLES_RENDER_PT_curves_viewport_display,
|
||||
CYCLES_RENDER_PT_simplify,
|
||||
CYCLES_RENDER_PT_simplify_viewport,
|
||||
CYCLES_RENDER_PT_simplify_render,
|
||||
|
|
|
@ -484,7 +484,7 @@ class RENDER_PT_eevee_film(RenderButtonsPanel, Panel):
|
|||
sub.prop(props, "overscan_size", text="")
|
||||
|
||||
|
||||
def draw_hair_settings(self, context):
|
||||
def draw_curves_settings(self, context):
|
||||
layout = self.layout
|
||||
scene = context.scene
|
||||
rd = scene.render
|
||||
|
@ -497,7 +497,7 @@ def draw_hair_settings(self, context):
|
|||
|
||||
|
||||
class RENDER_PT_eevee_hair(RenderButtonsPanel, Panel):
|
||||
bl_label = "Hair"
|
||||
bl_label = "Curves"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_EEVEE'}
|
||||
|
||||
|
@ -506,7 +506,7 @@ class RENDER_PT_eevee_hair(RenderButtonsPanel, Panel):
|
|||
return (context.engine in cls.COMPAT_ENGINES)
|
||||
|
||||
def draw(self, context):
|
||||
draw_hair_settings(self, context)
|
||||
draw_curves_settings(self, context)
|
||||
|
||||
|
||||
class RENDER_PT_eevee_performance(RenderButtonsPanel, Panel):
|
||||
|
|
|
@ -6318,13 +6318,13 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
|
|||
/* Hairs */
|
||||
prop = RNA_def_property(srna, "hair_type", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_items(prop, hair_shape_type_items);
|
||||
RNA_def_property_ui_text(prop, "Hair Shape Type", "Hair shape type");
|
||||
RNA_def_property_ui_text(prop, "Curves Shape Type", "Curves shape type");
|
||||
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, "rna_Scene_glsl_update");
|
||||
|
||||
prop = RNA_def_property(srna, "hair_subdiv", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_range(prop, 0, 3);
|
||||
RNA_def_property_ui_text(
|
||||
prop, "Additional Subdivision", "Additional subdivision along the hair");
|
||||
prop, "Additional Subdivision", "Additional subdivision along the curves");
|
||||
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, "rna_Scene_glsl_update");
|
||||
|
||||
/* Performance */
|
||||
|
|
|
@ -81,7 +81,7 @@ DefNode(ShaderNode, SH_NODE_LIGHT_PATH, 0, "LIG
|
|||
DefNode(ShaderNode, SH_NODE_LIGHT_FALLOFF, 0, "LIGHT_FALLOFF", LightFalloff, "Light Falloff", "" )
|
||||
DefNode(ShaderNode, SH_NODE_OBJECT_INFO, 0, "OBJECT_INFO", ObjectInfo, "Object Info", "" )
|
||||
DefNode(ShaderNode, SH_NODE_PARTICLE_INFO, 0, "PARTICLE_INFO", ParticleInfo, "Particle Info", "" )
|
||||
DefNode(ShaderNode, SH_NODE_HAIR_INFO, 0, "HAIR_INFO", HairInfo, "Hair Info", "" )
|
||||
DefNode(ShaderNode, SH_NODE_HAIR_INFO, 0, "HAIR_INFO", HairInfo, "Curves Info", "" )
|
||||
DefNode(ShaderNode, SH_NODE_POINT_INFO, 0, "POINT_INFO", PointInfo, "Point Info", "" )
|
||||
DefNode(ShaderNode, SH_NODE_VOLUME_INFO, 0, "VOLUME_INFO", VolumeInfo, "Volume Info", "" )
|
||||
DefNode(ShaderNode, SH_NODE_WIREFRAME, def_sh_tex_wireframe, "WIREFRAME", Wireframe, "Wireframe", "" )
|
||||
|
|
|
@ -37,7 +37,7 @@ void register_node_type_sh_hair_info()
|
|||
|
||||
static bNodeType ntype;
|
||||
|
||||
sh_node_type_base(&ntype, SH_NODE_HAIR_INFO, "Hair Info", NODE_CLASS_INPUT);
|
||||
sh_node_type_base(&ntype, SH_NODE_HAIR_INFO, "Curves Info", NODE_CLASS_INPUT);
|
||||
ntype.declare = file_ns::node_declare;
|
||||
node_type_gpu(&ntype, file_ns::node_shader_gpu_hair_info);
|
||||
|
||||
|
|
Loading…
Reference in New Issue