[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