Curves: use radius of middle point to determine curve shape
See {rBb69aad60bda23a53482b2c2ae98715c23a715bc8} for more details.
This commit is contained in:
parent
cc1cc46099
commit
1a71f9d2b8
|
@ -339,8 +339,15 @@ DRWShadingGroup *DRW_shgroup_curves_create_sub(Object *object,
|
|||
blender::VArray<float> radii = curves_component.attribute_get_for_read(
|
||||
"radius", ATTR_DOMAIN_POINT, 0.005f);
|
||||
const blender::IndexRange first_curve_points = curves.points_for_curve(0);
|
||||
const float first_radius = radii[first_curve_points.first()];
|
||||
const float last_radius = radii[first_curve_points.last()];
|
||||
const float middle_radius = radii[first_curve_points.size() / 2];
|
||||
hair_rad_root = radii[first_curve_points.first()];
|
||||
hair_rad_tip = radii[first_curve_points.last()];
|
||||
hair_rad_shape = std::clamp(
|
||||
safe_divide(middle_radius - first_radius, last_radius - first_radius) * 2.0f - 1.0f,
|
||||
-1.0f,
|
||||
1.0f);
|
||||
}
|
||||
|
||||
DRW_shgroup_uniform_texture(shgrp, "hairPointBuffer", curves_cache->final[subdiv].proc_tex);
|
||||
|
|
Loading…
Reference in New Issue