diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-03-18 21:06:21 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-03-18 21:06:21 +0300 |
commit | a29186efb414cec130dbfe4f81173b64d37ad10a (patch) | |
tree | cb7b98c42f938050a87ddb141f8f3e1197a25f9c /intern/cycles/blender/blender_curves.cpp | |
parent | b29790a953ff0f31c431daaaa2864e48bd38e94c (diff) | |
parent | 01df4818a6e1d3b93517e48a617310481abd9339 (diff) |
Merge branch 'blender2.7'
Diffstat (limited to 'intern/cycles/blender/blender_curves.cpp')
-rw-r--r-- | intern/cycles/blender/blender_curves.cpp | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/intern/cycles/blender/blender_curves.cpp b/intern/cycles/blender/blender_curves.cpp index 183376db4c1..602e63a3e47 100644 --- a/intern/cycles/blender/blender_curves.cpp +++ b/intern/cycles/blender/blender_curves.cpp @@ -250,7 +250,7 @@ static bool ObtainCacheParticleUV(Mesh *mesh, BL::Mesh::uv_layers_iterator l; b_mesh->uv_layers.begin(l); - float3 uv = make_float3(0.0f, 0.0f, 0.0f); + float2 uv = make_float2(0.0f, 0.0f); if(b_mesh->uv_layers.length()) b_psys.uv_on_emitter(psmd, *b_pa, pa_no, uv_num, &uv.x); CData->curve_uv.push_back_slow(uv); @@ -752,45 +752,29 @@ static void ExportCurveSegmentsMotion(Mesh *mesh, ParticleCurveData *CData, int static void ExportCurveTriangleUV(ParticleCurveData *CData, int vert_offset, int resol, - float3 *uvdata) + float2 *uvdata) { if(uvdata == NULL) return; - - float time = 0.0f; - float prevtime = 0.0f; - int vertexindex = vert_offset; for(int sys = 0; sys < CData->psys_firstcurve.size(); sys++) { for(int curve = CData->psys_firstcurve[sys]; curve < CData->psys_firstcurve[sys] + CData->psys_curvenum[sys]; curve++) { for(int curvekey = CData->curve_firstkey[curve]; curvekey < CData->curve_firstkey[curve] + CData->curve_keynum[curve] - 1; curvekey++) { - const float curve_time = CData->curvekey_time[curvekey]; - const float curve_length = CData->curve_length[curve]; - time = (curve_length > 0.0f) ? curve_time / curve_length : 0.0f; - for(int section = 0; section < resol; section++) { uvdata[vertexindex] = CData->curve_uv[curve]; - uvdata[vertexindex].z = prevtime; vertexindex++; uvdata[vertexindex] = CData->curve_uv[curve]; - uvdata[vertexindex].z = time; vertexindex++; uvdata[vertexindex] = CData->curve_uv[curve]; - uvdata[vertexindex].z = prevtime; vertexindex++; uvdata[vertexindex] = CData->curve_uv[curve]; - uvdata[vertexindex].z = time; vertexindex++; uvdata[vertexindex] = CData->curve_uv[curve]; - uvdata[vertexindex].z = prevtime; vertexindex++; uvdata[vertexindex] = CData->curve_uv[curve]; - uvdata[vertexindex].z = time; vertexindex++; } - - prevtime = time; } } } @@ -1063,9 +1047,9 @@ void BlenderSync::sync_curves(Mesh *mesh, if(active_render) attr_uv = mesh->attributes.add(std, name); else - attr_uv = mesh->attributes.add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CORNER); + attr_uv = mesh->attributes.add(name, TypeFloat2, ATTR_ELEMENT_CORNER); - float3 *uv = attr_uv->data_float3(); + float2 *uv = attr_uv->data_float2(); ExportCurveTriangleUV(&CData, tri_num * 3, used_res, uv); } @@ -1073,9 +1057,9 @@ void BlenderSync::sync_curves(Mesh *mesh, if(active_render) attr_uv = mesh->curve_attributes.add(std, name); else - attr_uv = mesh->curve_attributes.add(name, TypeDesc::TypePoint, ATTR_ELEMENT_CURVE); + attr_uv = mesh->curve_attributes.add(name, TypeFloat2, ATTR_ELEMENT_CURVE); - float3 *uv = attr_uv->data_float3(); + float2 *uv = attr_uv->data_float2(); if(uv) { size_t i = 0; |