[Bf-blender-cvs] [656e7a9] cycles-ptex-12: WIP add Ptex UVs to Cycles mesh
Nicholas Bishop
noreply at git.blender.org
Mon Jan 26 02:04:48 CET 2015
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;
More information about the Bf-blender-cvs
mailing list