[Bf-blender-cvs] [feb4360] temp_custom_loop_normals: Fix for one of last change - we always use clnors when present, have to reflect that on rendrers too!

Bastien Montagne noreply at git.blender.org
Thu Nov 6 20:54:49 CET 2014


Commit: feb4360975b1bf2720eff0bdabb76f0d1cbcb709
Author: Bastien Montagne
Date:   Thu Nov 6 20:53:40 2014 +0100
Branches: temp_custom_loop_normals
https://developer.blender.org/rBfeb4360975b1bf2720eff0bdabb76f0d1cbcb709

Fix for one of last change - we always use clnors when present, have to reflect that on rendrers too!

Easy for cycles, slightly messy for BI... :/

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

M	intern/cycles/blender/blender_mesh.cpp
M	source/blender/render/intern/source/convertblender.c

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

diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index a5e4b7b..1b45f93 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -264,7 +264,7 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector<
 	int numverts = b_mesh.vertices.length();
 	int numfaces = b_mesh.tessfaces.length();
 	int numtris = 0;
-	bool use_loop_normals = b_mesh.use_auto_smooth();
+	bool use_loop_normals = b_mesh.use_auto_smooth() || b_mesh.has_custom_normals();
 
 	BL::Mesh::vertices_iterator v;
 	BL::Mesh::tessfaces_iterator f;
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index c732aa4..a41c4d2 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -3179,6 +3179,9 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
 		dm= mesh_create_derived_render(re->scene, ob, mask);
 	if (dm==NULL) return;	/* in case duplicated object fails? */
 
+	/* In case we have some tessloopnormal data available, always do autosmooth! */
+	do_autosmooth = do_autosmooth || ((dm->getTessFaceDataArray(dm, CD_TESSLOOPNORMAL) != NULL) && !do_displace);
+
 	if (mask & CD_MASK_ORCO) {
 		orco = get_object_orco(re, ob);
 		if (!orco) {




More information about the Bf-blender-cvs mailing list