diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-11-25 23:17:24 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-11-26 01:02:13 +0400 |
commit | cc55913798aecbdeb3fc6e49c16a26ccbddebd9b (patch) | |
tree | 588bffc09b32253a2a5a12b513dc3b5180cfe40c /source/blender/blenkernel/intern/curve.c | |
parent | a5c7b9202b8451097ba6acf6e3f19bc5cdf091fd (diff) |
Fix T37225: UV map for closed curves incorrectly generated
Summary:
Curve ORCO was not calculating properly for cyclic 2D curves.
- Needed to split vertices for blender internal renderer.
Otherwise it's not possible to map last face to a proper
texture location.
- Needed to tweak curve->mesh conversion to respect cyclic
flag along U direction.
- Removed check for orcodm in curve.c:add_orco_dm since
this code is only called if there're enabled constructive
modifiers on the curve.
Reviewers: brecht
Maniphest Tasks: T37225
Differential Revision: http://developer.blender.org/D45
Diffstat (limited to 'source/blender/blenkernel/intern/curve.c')
-rw-r--r-- | source/blender/blenkernel/intern/curve.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index bdc70ed2afe..d57b5149538 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -1518,6 +1518,9 @@ float *BKE_curve_make_orco(Scene *scene, Object *ob, int *r_numVerts) else numVerts += dl->parts * (dl->nr + 1); } + else if (dl->flag & DL_CYCL_V) { + numVerts += (dl->parts + 1) * dl->nr; + } else numVerts += dl->parts * dl->nr; } @@ -1553,6 +1556,9 @@ float *BKE_curve_make_orco(Scene *scene, Object *ob, int *r_numVerts) if (dl->flag & DL_CYCL_V) sizev++; } + else if (dl->flag & DL_CYCL_V) { + sizev++; + } for (u = 0; u < sizev; u++) { for (v = 0; v < sizeu; v++, fp += 3) { |