Commit: 656e7a911ee2a4f1b44df6761376394c82840d49
Author: Nicholas Bishop
Date:   Mon Jan 19 16:03:04 2015 +0100
Branches: cycles-ptex-12
https://developer.blender.org/rB656e7a911ee2a4f1b44df6761376394c82840d49

WIP add Ptex UVs to Cycles mesh

===================================================================

M       intern/cycles/blender/blender_mesh.cpp

===================================================================

diff --git a/intern/cycles/blender/blender_mesh.cpp 
b/intern/cycles/blender/blender_mesh.cpp
index 8805443..19d03c3 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -355,6 +355,38 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh 
b_mesh, const vector<
                nverts[fi] = n;
        }
 
+       // create ptex face-id attributes */
+       {
+               Attribute *face_id_attr = 
mesh->attributes.add(ATTR_STD_PTEX_UV);
+               mesh->attributes.reserve();
+
+               float3 (*dst)[3] = (float3(*)[3])face_id_attr->data_float3();
+               size_t cur_tri = 0;
+               size_t cur_tessface = 0;
+
+               const int pattern[2][3] = {
+                       {0, 1, 2},
+                       {0, 2, 3}
+               };
+
+               for (b_mesh.tessfaces.begin(f); f != b_mesh.tessfaces.end(); 
++f) {
+                       BL::PtexTessFace ptex = f->ptex_tess_face();
+                       const int num_triangles = (nverts[cur_tessface] == 4) ? 
2 : 1;
+
+                       for (int i = 0; i < num_triangles; i++) {
+                               for (int j = 0; j < 3; j++) {
+                                       BL::PtexLoop corner = 
ptex.corners[pattern[i][j]];
+                                       dst[cur_tri][j] = 
make_float3(corner.uv()[0],
+                                                                               
                  corner.uv()[1],
+                                                                               
                  corner.id());
+                               }
+                               cur_tri++;
+                       }
+
+                       cur_tessface++;
+               }
+       }
+
        /* create vertex color attributes */
        {
                BL::Mesh::tessface_vertex_colors_iterator l;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to