Commit: 5eeb22cb407a543499c3355d3373b16116acd17c Author: ishbosamiya Date: Thu Jun 13 01:50:08 2019 +0530 Branches: soc-2019-adaptive-cloth https://developer.blender.org/rB5eeb22cb407a543499c3355d3373b16116acd17c
Cloth: support for UVs during obj export =================================================================== M source/blender/blenkernel/intern/cloth.c =================================================================== diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index 9609602bbb5..675a4f7ba44 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -596,6 +596,8 @@ static void cloth_remeshing_export_obj(BMesh *bm, char *file_name) } Face; Vert *verts; verts = MEM_mallocN(sizeof(Vert) * bm->totvert, "Verts"); + UV *uvs; + uvs = MEM_mallocN(sizeof(UV) * bm->totvert, "UVs"); Face *faces; faces = MEM_mallocN(sizeof(Face) * bm->totface, "Faces"); for (int i = 0; i < bm->totface; i++) { @@ -632,6 +634,15 @@ static void cloth_remeshing_export_obj(BMesh *bm, char *file_name) faces[curr_i].uv[faces[curr_i].len - 1] = vert_i + 1; faces[curr_i].len++; } + BMLoop *l; + BMIter liter; + MLoopUV *luv; + const int cd_loop_uv_offset = CustomData_get_offset(&bm->ldata, CD_MLOOPUV); + + BM_ITER_ELEM (l, &liter, v, BM_LOOPS_OF_VERT) { + luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset); + copy_v2_v2(uvs[vert_i].uv, luv->uv); + } vert_i++; } @@ -639,6 +650,10 @@ static void cloth_remeshing_export_obj(BMesh *bm, char *file_name) fprintf(fout, "v %f %f %f\n", verts[i].co[0], verts[i].co[1], verts[i].co[2]); } + for (int i = 0; i < bm->totvert; i++) { + fprintf(fout, "vt %f %f\n", uvs[i].uv[0], uvs[i].uv[1]); + } + for (int i = 0; i < bm->totvert; i++) { fprintf(fout, "vn %f %f %f\n", verts[i].no[0], verts[i].no[1], verts[i].no[2]); } @@ -646,7 +661,7 @@ static void cloth_remeshing_export_obj(BMesh *bm, char *file_name) for (int i = 0; i < bm->totface; i++) { fprintf(fout, "f "); for (int j = 0; j < faces[i].len - 1; j++) { - fprintf(fout, "%d//%d ", faces[i].vi[j], faces[i].vi[j]); + fprintf(fout, "%d/%d/%d ", faces[i].vi[j], faces[i].uv[j], faces[i].vi[j]); } fprintf(fout, "\n"); } @@ -661,6 +676,7 @@ static void cloth_remeshing_export_obj(BMesh *bm, char *file_name) } MEM_freeN(faces); + MEM_freeN(uvs); MEM_freeN(verts); fclose(fout); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs