[Bf-blender-cvs] [cbcbf97] temp-cycles-microdisplacement: Store ptex offset for faces

Mai Lavelle noreply at git.blender.org
Fri Jun 24 19:26:40 CEST 2016


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;




More information about the Bf-blender-cvs mailing list