Cycles Hair: Introduction of Cardinal Spline Curve Segments and minor fixes.

The curve segment primitive has been added. This includes an intersection function and changes to the BVH.

A few small errors in the line segment intersection routine are also fixed.
This commit is contained in:
Stuart Broadfoot
2013-01-15 19:44:41 +00:00
parent 0967b39be1
commit 3373b8154b
9 changed files with 548 additions and 82 deletions

View File

@@ -29,6 +29,8 @@ class DeviceScene;
class Progress;
class Scene;
void curvebounds(float *lower, float *upper, float3 *p, int dim);
typedef enum curve_presets {
CURVE_CUSTOM,
CURVE_TANGENT_SHADING,
@@ -39,13 +41,14 @@ typedef enum curve_presets {
typedef enum curve_primitives {
CURVE_TRIANGLES,
CURVE_LINE_SEGMENTS,
CURVE_SEGMENTS
CURVE_SEGMENTS,
CURVE_RIBBONS
} curve_primitives;
typedef enum curve_triangles {
CURVE_CAMERA,
CURVE_RIBBONS,
CURVE_TESSELATED
CURVE_CAMERA_TRIANGLES,
CURVE_RIBBON_TRIANGLES,
CURVE_TESSELATED_TRIANGLES
} curve_triangles;
typedef enum curve_lines {
@@ -98,6 +101,7 @@ public:
int triangle_method;
int resolution;
int segments;
int subdivisions;
float normalmix;
float encasing_ratio;