Cycles Hair: Strand Minimum Pixel Size

Code is added to restrict the pixel size of strands in cycles. It works best with ribbon primitives and a preset for these is included. It uses distance dependent expansion of the strands and then stochastic strand removal to give a fading. To prevent a slowdown for triangle mesh objects in the BVH an extra visibility flag has been added. It is also only applied for camera rays.

The strand width settings are also changed, so that the particle size is not included in the width calculation. Instead there is a separate particle system parameter for width scaling.
This commit is contained in:
Stuart Broadfoot
2013-04-15 21:38:31 +00:00
parent ceb61eb14d
commit 638b084f82
17 changed files with 272 additions and 37 deletions

View File

@@ -37,7 +37,8 @@ typedef enum curve_presets {
CURVE_TANGENT_SHADING,
CURVE_TRUE_NORMAL,
CURVE_ACCURATE_PRESET,
CURVE_SMOOTH_CURVES
CURVE_SMOOTH_CURVES,
CURVE_SMOOTH_RIBBONS
} curve_presets;
typedef enum curve_primitives {
@@ -107,6 +108,8 @@ public:
float normalmix;
float encasing_ratio;
float minimum_width;
float maximum_width;
bool use_curves;
bool use_smooth;