Commit: cbcbf976200b0fdb6dcb841da3e74f326a5d0d6f
Author: Mai Lavelle
Date:   Fri Jun 17 09:18:02 2016 -0400
Branches: temp-cycles-microdisplacement
https://developer.blender.org/rBcbcbf976200b0fdb6dcb841da3e74f326a5d0d6f

Store ptex offset for faces

Each ngon is split into multiple faces, need to keep track of how they relate.

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

M       intern/cycles/render/mesh.cpp
M       intern/cycles/render/mesh.h

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

diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp
index 2968f7a..87467d2 100644
--- a/intern/cycles/render/mesh.cpp
+++ b/intern/cycles/render/mesh.cpp
@@ -308,7 +308,14 @@ void Mesh::add_subd_face(int* corners, int num_corners, 
int shader_, bool smooth
                subd_face_corners.push_back_reserved(corners[i]);
        }
 
-       subd_faces.push_back_reserved({start_corner, num_corners, shader_, 
smooth_});
+       int ptex_offset = 0;
+
+       if(subd_faces.size()) {
+               SubdFace& s = subd_faces[subd_faces.size()-1];
+               ptex_offset = s.ptex_offset + (s.num_corners == 4 ? 1 : 
s.num_corners);
+       }
+
+       subd_faces.push_back_reserved({start_corner, num_corners, shader_, 
smooth_, ptex_offset});
 }
 
 void Mesh::compute_bounds()
diff --git a/intern/cycles/render/mesh.h b/intern/cycles/render/mesh.h
index 221e70c..a3d66aa 100644
--- a/intern/cycles/render/mesh.h
+++ b/intern/cycles/render/mesh.h
@@ -95,6 +95,7 @@ public:
                int num_corners;
                int shader;
                bool smooth;
+               int ptex_offset;
 
                bool is_quad() { return num_corners == 4; }
                float3 normal(const Mesh *mesh) const;

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

Reply via email to