diff options
author | Stuart Broadfoot <gbroadfoot@hotmail.com> | 2013-08-18 17:41:53 +0400 |
---|---|---|
committer | Stuart Broadfoot <gbroadfoot@hotmail.com> | 2013-08-18 17:41:53 +0400 |
commit | 2fd11a6617b84dbe5cae1a2c3f9145830b2bbfd4 (patch) | |
tree | 3446f01329b3a009d9cbd2e25ae7d171e6aa5e84 /intern/cycles/render | |
parent | 19d3e230e6d0cc52ebd82a8b5d0efbbeb396a9cf (diff) |
Updates for the Cycle Hair UI. With the following changes
- Removed the cycles subdivision and interpolation of hairkeys.
- Removed the parent settings.
- Removed all of the advanced settings and presets.
- This simplifies the UI to a few settings for the primitive type and a shape mode.
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/attribute.cpp | 5 | ||||
-rw-r--r-- | intern/cycles/render/curves.cpp | 31 | ||||
-rw-r--r-- | intern/cycles/render/curves.h | 14 |
3 files changed, 11 insertions, 39 deletions
diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp index 3137ea5327b..57e76a6a8f9 100644 --- a/intern/cycles/render/attribute.cpp +++ b/intern/cycles/render/attribute.cpp @@ -147,8 +147,6 @@ const char *Attribute::standard_name(AttributeStandard std) return "motion_post"; else if(std == ATTR_STD_PARTICLE) return "particle"; - else if(std == ATTR_STD_CURVE_TANGENT) - return "curve_tangent"; else if(std == ATTR_STD_CURVE_INTERCEPT) return "curve_intercept"; @@ -277,9 +275,6 @@ Attribute *AttributeSet::add(AttributeStandard std, ustring name) case ATTR_STD_MOTION_POST: attr = add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE_KEY); break; - case ATTR_STD_CURVE_TANGENT: - attr = add(name, TypeDesc::TypeVector, ATTR_ELEMENT_CURVE_KEY); - break; case ATTR_STD_CURVE_INTERCEPT: attr = add(name, TypeDesc::TypeFloat, ATTR_ELEMENT_CURVE_KEY); break; diff --git a/intern/cycles/render/curves.cpp b/intern/cycles/render/curves.cpp index 502bed06930..8f9a232f672 100644 --- a/intern/cycles/render/curves.cpp +++ b/intern/cycles/render/curves.cpp @@ -80,27 +80,21 @@ void curvebounds(float *lower, float *upper, float3 *p, int dim) CurveSystemManager::CurveSystemManager() { primitive = CURVE_LINE_SEGMENTS; + curve_shape = CURVE_THICK; line_method = CURVE_CORRECTED; - interpolation = CURVE_CARDINAL; triangle_method = CURVE_CAMERA_TRIANGLES; resolution = 3; - segments = 1; subdivisions = 3; - normalmix = 1.0f; encasing_ratio = 1.01f; minimum_width = 0.0f; maximum_width = 0.0f; use_curves = true; - use_smooth = true; - use_parents = false; use_encasing = true; use_backfacing = false; - use_joined = false; use_tangent_normal = false; use_tangent_normal_geometry = false; - use_tangent_normal_correction = false; need_update = true; need_mesh_update = false; @@ -138,18 +132,13 @@ void CurveSystemManager::device_update(Device *device, DeviceScene *dscene, Scen if(use_tangent_normal) kcurve->curveflags |= CURVE_KN_TANGENTGNORMAL; - if(use_tangent_normal_correction) - kcurve->curveflags |= CURVE_KN_NORMALCORRECTION; if(use_tangent_normal_geometry) kcurve->curveflags |= CURVE_KN_TRUETANGENTGNORMAL; - if(use_joined) - kcurve->curveflags |= CURVE_KN_CURVEDATA; if(use_backfacing) kcurve->curveflags |= CURVE_KN_BACKFACING; if(use_encasing) kcurve->curveflags |= CURVE_KN_ENCLOSEFILTER; - kcurve->normalmix = normalmix; kcurve->encasing_ratio = encasing_ratio; kcurve->minimum_width = minimum_width; kcurve->maximum_width = maximum_width; @@ -168,39 +157,29 @@ void CurveSystemManager::device_free(Device *device, DeviceScene *dscene) bool CurveSystemManager::modified(const CurveSystemManager& CurveSystemManager) { - return !(line_method == CurveSystemManager.line_method && - interpolation == CurveSystemManager.interpolation && + return !(curve_shape == CurveSystemManager.curve_shape && + line_method == CurveSystemManager.line_method && primitive == CurveSystemManager.primitive && use_encasing == CurveSystemManager.use_encasing && use_tangent_normal == CurveSystemManager.use_tangent_normal && - use_tangent_normal_correction == CurveSystemManager.use_tangent_normal_correction && use_tangent_normal_geometry == CurveSystemManager.use_tangent_normal_geometry && encasing_ratio == CurveSystemManager.encasing_ratio && minimum_width == CurveSystemManager.minimum_width && maximum_width == CurveSystemManager.maximum_width && use_backfacing == CurveSystemManager.use_backfacing && - normalmix == CurveSystemManager.normalmix && - use_smooth == CurveSystemManager.use_smooth && triangle_method == CurveSystemManager.triangle_method && resolution == CurveSystemManager.resolution && use_curves == CurveSystemManager.use_curves && - use_joined == CurveSystemManager.use_joined && - segments == CurveSystemManager.segments && - use_parents == CurveSystemManager.use_parents && subdivisions == CurveSystemManager.subdivisions); } bool CurveSystemManager::modified_mesh(const CurveSystemManager& CurveSystemManager) { return !(primitive == CurveSystemManager.primitive && - interpolation == CurveSystemManager.interpolation && - use_parents == CurveSystemManager.use_parents && - use_smooth == CurveSystemManager.use_smooth && + curve_shape == CurveSystemManager.curve_shape && triangle_method == CurveSystemManager.triangle_method && resolution == CurveSystemManager.resolution && - use_curves == CurveSystemManager.use_curves && - use_joined == CurveSystemManager.use_joined && - segments == CurveSystemManager.segments); + use_curves == CurveSystemManager.use_curves); } void CurveSystemManager::tag_update(Scene *scene) diff --git a/intern/cycles/render/curves.h b/intern/cycles/render/curves.h index 42f0498617e..088702d39ed 100644 --- a/intern/cycles/render/curves.h +++ b/intern/cycles/render/curves.h @@ -48,9 +48,13 @@ typedef enum curve_primitives { CURVE_RIBBONS } curve_primitives; +typedef enum curve_shape { + CURVE_RIBBON, + CURVE_THICK +} curve_shape; + typedef enum curve_triangles { CURVE_CAMERA_TRIANGLES, - CURVE_RIBBON_TRIANGLES, CURVE_TESSELATED_TRIANGLES } curve_triangles; @@ -99,27 +103,21 @@ class CurveSystemManager { public: int primitive; + int curve_shape; int line_method; - int interpolation; int triangle_method; int resolution; - int segments; int subdivisions; - float normalmix; float encasing_ratio; float minimum_width; float maximum_width; bool use_curves; - bool use_smooth; - bool use_parents; bool use_encasing; bool use_backfacing; bool use_tangent_normal; - bool use_tangent_normal_correction; bool use_tangent_normal_geometry; - bool use_joined; bool need_update; bool need_mesh_update; |