[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56717] branches/soc-2011-tomato: Merging r56657 through r56716 from trunk into soc-2011-tomato

Sergey Sharybin sergey.vfx at gmail.com
Sun May 12 18:16:49 CEST 2013


Revision: 56717
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56717
Author:   nazgul
Date:     2013-05-12 16:16:48 +0000 (Sun, 12 May 2013)
Log Message:
-----------
Merging r56657 through r56716 from trunk into soc-2011-tomato

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56657
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56716

Modified Paths:
--------------
    branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp
    branches/soc-2011-tomato/extern/libmv/libmv-capi.h
    branches/soc-2011-tomato/extern/libmv/third_party/glog/src/windows/port.h
    branches/soc-2011-tomato/intern/cycles/blender/addon/ui.py
    branches/soc-2011-tomato/intern/cycles/blender/blender_curves.cpp
    branches/soc-2011-tomato/intern/cycles/blender/blender_mesh.cpp
    branches/soc-2011-tomato/intern/cycles/blender/blender_shader.cpp
    branches/soc-2011-tomato/intern/cycles/blender/blender_sync.cpp
    branches/soc-2011-tomato/intern/cycles/blender/blender_sync.h
    branches/soc-2011-tomato/intern/cycles/kernel/closure/bsdf_microfacet.h
    branches/soc-2011-tomato/intern/cycles/kernel/closure/bsdf_phong_ramp.h
    branches/soc-2011-tomato/intern/cycles/kernel/closure/bsdf_ward.h
    branches/soc-2011-tomato/intern/cycles/kernel/closure/bsdf_westin.h
    branches/soc-2011-tomato/intern/cycles/kernel/closure/bssrdf.h
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_light.h
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_montecarlo.h
    branches/soc-2011-tomato/intern/cycles/kernel/osl/osl_services.cpp
    branches/soc-2011-tomato/intern/cycles/kernel/osl/osl_services.h
    branches/soc-2011-tomato/intern/cycles/kernel/shaders/node_bump.osl
    branches/soc-2011-tomato/intern/cycles/kernel/shaders/node_normal_map.osl
    branches/soc-2011-tomato/intern/cycles/kernel/svm/svm_closure.h
    branches/soc-2011-tomato/intern/cycles/kernel/svm/svm_displace.h
    branches/soc-2011-tomato/intern/cycles/kernel/svm/svm_gradient.h
    branches/soc-2011-tomato/intern/cycles/kernel/svm/svm_tex_coord.h
    branches/soc-2011-tomato/intern/cycles/render/bssrdf.cpp
    branches/soc-2011-tomato/intern/cycles/render/camera.cpp
    branches/soc-2011-tomato/intern/cycles/render/graph.cpp
    branches/soc-2011-tomato/intern/cycles/render/graph.h
    branches/soc-2011-tomato/intern/cycles/render/light.cpp
    branches/soc-2011-tomato/intern/cycles/render/nodes.cpp
    branches/soc-2011-tomato/intern/cycles/render/nodes.h
    branches/soc-2011-tomato/intern/cycles/subd/subd_build.cpp
    branches/soc-2011-tomato/intern/cycles/util/util_math.h
    branches/soc-2011-tomato/intern/ghost/intern/GHOST_SystemCocoa.h
    branches/soc-2011-tomato/intern/ghost/intern/GHOST_SystemCocoa.mm
    branches/soc-2011-tomato/intern/ghost/intern/GHOST_WindowCocoa.mm
    branches/soc-2011-tomato/intern/guardedalloc/MEM_guardedalloc.h
    branches/soc-2011-tomato/release/scripts/startup/bl_operators/object_quick_effects.py
    branches/soc-2011-tomato/release/scripts/startup/bl_operators/view3d.py
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/properties_physics_smoke.py
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/properties_render_layer.py
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_clip.py
    branches/soc-2011-tomato/source/blender/blenfont/intern/blf_font.c
    branches/soc-2011-tomato/source/blender/blenfont/intern/blf_glyph.c
    branches/soc-2011-tomato/source/blender/blenfont/intern/blf_internal.h
    branches/soc-2011-tomato/source/blender/blenfont/intern/blf_internal_types.h
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_blender.h
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_brush.h
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_tracking.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/brush.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/depsgraph.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/fcurve.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/freestyle.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/lamp.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/material.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/smoke.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/blenlib/BLI_listbase.h
    branches/soc-2011-tomato/source/blender/blenlib/BLI_utildefines.h
    branches/soc-2011-tomato/source/blender/blenlib/intern/listbase.c
    branches/soc-2011-tomato/source/blender/blenlib/intern/math_matrix.c
    branches/soc-2011-tomato/source/blender/blenlib/intern/string.c
    branches/soc-2011-tomato/source/blender/blenlib/intern/string_cursor_utf8.c
    branches/soc-2011-tomato/source/blender/blenlib/intern/string_utf8.c
    branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
    branches/soc-2011-tomato/source/blender/bmesh/CMakeLists.txt
    branches/soc-2011-tomato/source/blender/bmesh/bmesh.h
    branches/soc-2011-tomato/source/blender/bmesh/intern/bmesh_core.c
    branches/soc-2011-tomato/source/blender/bmesh/intern/bmesh_opdefines.c
    branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_connect.c
    branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_utils.c
    branches/soc-2011-tomato/source/blender/editors/armature/armature_ops.c
    branches/soc-2011-tomato/source/blender/editors/curve/curve_ops.c
    branches/soc-2011-tomato/source/blender/editors/include/ED_transform.h
    branches/soc-2011-tomato/source/blender/editors/include/ED_uvedit.h
    branches/soc-2011-tomato/source/blender/editors/include/UI_interface.h
    branches/soc-2011-tomato/source/blender/editors/interface/interface.c
    branches/soc-2011-tomato/source/blender/editors/interface/interface_layout.c
    branches/soc-2011-tomato/source/blender/editors/interface/interface_regions.c
    branches/soc-2011-tomato/source/blender/editors/interface/interface_templates.c
    branches/soc-2011-tomato/source/blender/editors/interface/interface_widgets.c
    branches/soc-2011-tomato/source/blender/editors/mesh/editmesh_tools.c
    branches/soc-2011-tomato/source/blender/editors/object/object_edit.c
    branches/soc-2011-tomato/source/blender/editors/render/render_internal.c
    branches/soc-2011-tomato/source/blender/editors/render/render_preview.c
    branches/soc-2011-tomato/source/blender/editors/sculpt_paint/paint_image_2d.c
    branches/soc-2011-tomato/source/blender/editors/sculpt_paint/paint_image_proj.c
    branches/soc-2011-tomato/source/blender/editors/space_action/action_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_intern.h
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/space_clip.c
    branches/soc-2011-tomato/source/blender/editors/space_clip/tracking_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_graph/graph_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_logic/logic_window.c
    branches/soc-2011-tomato/source/blender/editors/space_node/drawnode.c
    branches/soc-2011-tomato/source/blender/editors/space_node/node_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_outliner/outliner_draw.c
    branches/soc-2011-tomato/source/blender/editors/space_sequencer/sequencer_ops.c
    branches/soc-2011-tomato/source/blender/editors/space_text/space_text.c
    branches/soc-2011-tomato/source/blender/editors/space_view3d/drawmesh.c
    branches/soc-2011-tomato/source/blender/editors/space_view3d/view3d_header.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform.h
    branches/soc-2011-tomato/source/blender/editors/transform/transform_ops.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform_orientations.c
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_ops.c
    branches/soc-2011-tomato/source/blender/gpu/intern/gpu_extensions.c
    branches/soc-2011-tomato/source/blender/gpu/intern/gpu_simple_shader.c
    branches/soc-2011-tomato/source/blender/gpu/shaders/gpu_shader_material.glsl
    branches/soc-2011-tomato/source/blender/imbuf/IMB_imbuf.h
    branches/soc-2011-tomato/source/blender/imbuf/intern/jpeg.c
    branches/soc-2011-tomato/source/blender/imbuf/intern/rectop.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_smoke_types.h
    branches/soc-2011-tomato/source/blender/makesrna/RNA_access.h
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_access.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_object.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_particle.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_scene.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_smoke.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_space.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_ui_api.c
    branches/soc-2011-tomato/source/blender/modifiers/intern/MOD_array.c
    branches/soc-2011-tomato/source/blender/modifiers/intern/MOD_boolean.c
    branches/soc-2011-tomato/source/blender/nodes/NOD_static_types.h
    branches/soc-2011-tomato/source/blender/nodes/shader/nodes/node_shader_bump.c
    branches/soc-2011-tomato/source/blender/nodes/texture/nodes/node_texture_mixRgb.c
    branches/soc-2011-tomato/source/blender/python/intern/bpy_rna.c
    branches/soc-2011-tomato/source/blender/render/extern/include/RE_pipeline.h
    branches/soc-2011-tomato/source/blender/render/intern/include/render_types.h
    branches/soc-2011-tomato/source/blender/render/intern/source/convertblender.c
    branches/soc-2011-tomato/source/blender/render/intern/source/external_engine.c
    branches/soc-2011-tomato/source/blender/render/intern/source/pipeline.c
    branches/soc-2011-tomato/source/blender/windowmanager/WM_keymap.h
    branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_keymap.c
    branches/soc-2011-tomato/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    branches/soc-2011-tomato/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    branches/soc-2011-tomato/source/gameengine/VideoTexture/ImageBuff.cpp

Added Paths:
-----------
    branches/soc-2011-tomato/source/blender/bmesh/intern/bmesh_edgeloop.c
    branches/soc-2011-tomato/source/blender/bmesh/intern/bmesh_edgeloop.h
    branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_bridge.c

Property Changed:
----------------
    branches/soc-2011-tomato/
    branches/soc-2011-tomato/source/blender/editors/interface/interface.c
    branches/soc-2011-tomato/source/blender/editors/space_outliner/


Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-56656
   + /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-56716

Modified: branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp
===================================================================
--- branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp	2013-05-12 16:04:14 UTC (rev 56716)
+++ branches/soc-2011-tomato/extern/libmv/libmv-capi.cpp	2013-05-12 16:16:48 UTC (rev 56717)
@@ -420,23 +420,6 @@
 	void *callback_customdata_;
 };
 
-int libmv_refineParametersAreValid(int parameters) {
-	return (parameters == (LIBMV_REFINE_FOCAL_LENGTH))         ||
-	       (parameters == (LIBMV_REFINE_FOCAL_LENGTH           |
-	                       LIBMV_REFINE_PRINCIPAL_POINT))      ||
-	       (parameters == (LIBMV_REFINE_FOCAL_LENGTH           |
-	                       LIBMV_REFINE_PRINCIPAL_POINT        |
-	                       LIBMV_REFINE_RADIAL_DISTORTION_K1   |
-	                       LIBMV_REFINE_RADIAL_DISTORTION_K2)) ||
-	       (parameters == (LIBMV_REFINE_FOCAL_LENGTH           |
-	                       LIBMV_REFINE_RADIAL_DISTORTION_K1   |
-	                       LIBMV_REFINE_RADIAL_DISTORTION_K2)) ||
-	       (parameters == (LIBMV_REFINE_FOCAL_LENGTH           |
-	                       LIBMV_REFINE_RADIAL_DISTORTION_K1)) ||
-	       (parameters == (LIBMV_REFINE_RADIAL_DISTORTION_K1   |
-	                       LIBMV_REFINE_RADIAL_DISTORTION_K2));
-}
-
 static void libmv_solveRefineIntrinsics(libmv::Tracks *tracks, libmv::CameraIntrinsics *intrinsics,
 			libmv::EuclideanReconstruction *reconstruction, int refine_intrinsics,
 			reconstruct_progress_update_cb progress_update_callback, void *callback_customdata,
@@ -1046,7 +1029,7 @@
 
 /* ************ utils ************ */
 
-void libmv_applyCameraIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
+void libmv_ApplyCameraIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
                                  double x, double y, double *x1, double *y1)
 {
 	libmv::CameraIntrinsics camera_intrinsics;
@@ -1060,8 +1043,8 @@
 	}
 }
 
-void libmv_InvertIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
-                            double x, double y, double *x1, double *y1)
+void libmv_InvertCameraIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
+                                  double x, double y, double *x1, double *y1)
 {
 	libmv::CameraIntrinsics camera_intrinsics;
 

Modified: branches/soc-2011-tomato/extern/libmv/libmv-capi.h
===================================================================
--- branches/soc-2011-tomato/extern/libmv/libmv-capi.h	2013-05-12 16:04:14 UTC (rev 56716)
+++ branches/soc-2011-tomato/extern/libmv/libmv-capi.h	2013-05-12 16:16:48 UTC (rev 56717)
@@ -103,8 +103,6 @@
 
 typedef void (*reconstruct_progress_update_cb) (void *customdata, double progress, const char *message);
 
-int libmv_refineParametersAreValid(int parameters);
-
 struct libmv_Reconstruction *libmv_solveReconstruction(struct libmv_Tracks *libmv_tracks,
 			libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
 			libmv_reconstructionOptions *libmv_reconstruction_options,
@@ -163,9 +161,9 @@
 			float *src, float *dst, int width, int height, float overscan, int channels);
 
 /* utils */
-void libmv_applyCameraIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
+void libmv_ApplyCameraIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
 			double x, double y, double *x1, double *y1);
-void libmv_InvertIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
+void libmv_InvertCameraIntrinsics(libmv_cameraIntrinsicsOptions *libmv_camera_intrinsics_options,
 			double x, double y, double *x1, double *y1);
 
 #ifdef __cplusplus

Modified: branches/soc-2011-tomato/extern/libmv/third_party/glog/src/windows/port.h
===================================================================
--- branches/soc-2011-tomato/extern/libmv/third_party/glog/src/windows/port.h	2013-05-12 16:04:14 UTC (rev 56716)
+++ branches/soc-2011-tomato/extern/libmv/third_party/glog/src/windows/port.h	2013-05-12 16:16:48 UTC (rev 56717)
@@ -94,7 +94,10 @@
 #define strncasecmp  _strnicmp
 
 /* In windows-land, hash<> is called hash_compare<> (from xhash.h) */
-#define hash  hash_compare
+/* VC11 provides std::hash */
+#if defined(_MSC_VER) && (_MSC_VER < 1700)
+#define hash hash_compare
+#endif
 
 /* Sleep is in ms, on windows */
 #define sleep(secs)  Sleep((secs) * 1000)

Modified: branches/soc-2011-tomato/intern/cycles/blender/addon/ui.py
===================================================================
--- branches/soc-2011-tomato/intern/cycles/blender/addon/ui.py	2013-05-12 16:04:14 UTC (rev 56716)
+++ branches/soc-2011-tomato/intern/cycles/blender/addon/ui.py	2013-05-12 16:16:48 UTC (rev 56717)
@@ -300,10 +300,13 @@
         col = split.column()
         col.label(text="Material:")
         col.prop(rl, "material_override", text="")
+        col.separator()
+        col.prop(rl, "samples")
 
         col = split.column()
-        col.prop(rl, "samples")
         col.prop(rl, "use_sky", "Use Environment")
+        col.prop(rl, "use_solid", "Use Surfaces")
+        col.prop(rl, "use_strand", "Use Hair")
 
 
 class CyclesRender_PT_layer_passes(CyclesButtonsPanel, Panel):

Modified: branches/soc-2011-tomato/intern/cycles/blender/blender_curves.cpp
===================================================================
--- branches/soc-2011-tomato/intern/cycles/blender/blender_curves.cpp	2013-05-12 16:04:14 UTC (rev 56716)
+++ branches/soc-2011-tomato/intern/cycles/blender/blender_curves.cpp	2013-05-12 16:16:48 UTC (rev 56717)
@@ -73,32 +73,36 @@
 void interp_weights(float t, float data[4], int type)
 {
 	float t2, t3, fc;
+	
+	switch (type) {
+		case CURVE_LINEAR:
+			data[0] =          0.0f;
+			data[1] = -t     + 1.0f;
+			data[2] =  t;
+			data[3] =          0.0f;
+			break;
+		case CURVE_CARDINAL:
+			t2 = t * t;
+			t3 = t2 * t;
+			fc = 0.71f;
 
-	if(type == CURVE_LINEAR) {
-		data[0] =          0.0f;
-		data[1] = -t     + 1.0f;
-		data[2] =  t;
-		data[3] =          0.0f;
-	}
-	else if(type == CURVE_CARDINAL) {
-		t2 = t * t;
-		t3 = t2 * t;
-		fc = 0.71f;
+			data[0] = -fc          * t3  + 2.0f * fc          * t2 - fc * t;
+			data[1] =  (2.0f - fc) * t3  + (fc - 3.0f)        * t2 + 1.0f;
+			data[2] =  (fc - 2.0f) * t3  + (3.0f - 2.0f * fc) * t2 + fc * t;
+			data[3] =  fc          * t3  - fc * t2;
+			break;
+		case CURVE_BSPLINE:
+			t2 = t * t;
+			t3 = t2 * t;
 
-		data[0] = -fc          * t3  + 2.0f * fc          * t2 - fc * t;
-		data[1] =  (2.0f - fc) * t3  + (fc - 3.0f)        * t2 + 1.0f;
-		data[2] =  (fc - 2.0f) * t3  + (3.0f - 2.0f * fc) * t2 + fc * t;
-		data[3] =  fc          * t3  - fc * t2;
+			data[0] = -0.16666666f * t3  + 0.5f * t2   - 0.5f * t    + 0.16666666f;
+			data[1] =  0.5f        * t3  - t2                        + 0.66666666f;
+			data[2] = -0.5f        * t3  + 0.5f * t2   + 0.5f * t    + 0.16666666f;
+			data[3] =  0.16666666f * t3;
+			break;
+		default:
+			break;
 	}
-	else if(type == CURVE_BSPLINE) {
-		t2 = t * t;
-		t3 = t2 * t;
-
-		data[0] = -0.16666666f * t3  + 0.5f * t2   - 0.5f * t    + 0.16666666f;
-		data[1] =  0.5f        * t3  - t2                        + 0.66666666f;
-		data[2] = -0.5f        * t3  + 0.5f * t2   + 0.5f * t    + 0.16666666f;
-		data[3] =  0.16666666f * t3;
-	}
 }
 
 void curveinterp_v3_v3v3v3v3(float3 *p, float3 *v1, float3 *v2, float3 *v3, float3 *v4, const float w[4])
@@ -665,7 +669,7 @@
 					if(CData->psys_closetip[sys] && (subv == segments) && (curvekey == CData->curve_firstkey[curve] + CData->curve_keynum[curve] - 2))
 						radius = shaperadius(CData->psys_shape[sys], CData->psys_rootradius[sys], 0.0f, 0.95f);
 
-					float angle = 2 * M_PI_F / (float)resolution;
+					float angle = M_2PI_F / (float)resolution;
 					for(int section = 0 ; section < resolution; section++) {
 						float3 ickey_loc_shf = ickey_loc + radius * (cosf(angle * section) * xbasis + sinf(angle * section) * ybasis);
 						mesh->verts.push_back(ickey_loc_shf);

Modified: branches/soc-2011-tomato/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- branches/soc-2011-tomato/intern/cycles/blender/blender_mesh.cpp	2013-05-12 16:04:14 UTC (rev 56716)
+++ branches/soc-2011-tomato/intern/cycles/blender/blender_mesh.cpp	2013-05-12 16:16:48 UTC (rev 56717)
@@ -82,16 +82,22 @@
 	MikkUserData *userdata = (MikkUserData*)context->m_pUserData;
 	BL::MeshTextureFace tf = userdata->layer.data[face_num];
 	float3 tfuv;
-
-	if(vert_num == 0)
-		tfuv = get_float3(tf.uv1());
-	else if(vert_num == 1)
-		tfuv = get_float3(tf.uv2());
-	else if(vert_num == 2)
-		tfuv = get_float3(tf.uv3());
-	else
-		tfuv = get_float3(tf.uv4());
 	
+	switch (vert_num) {
+		case 0:
+			tfuv = get_float3(tf.uv1());
+			break;
+		case 1:
+			tfuv = get_float3(tf.uv2());
+			break;
+		case 2:
+			tfuv = get_float3(tf.uv3());
+			break;
+		default:
+			tfuv = get_float3(tf.uv4());
+			break;
+	}
+	
 	uv[0] = tfuv.x;
 	uv[1] = tfuv.y;
 }
@@ -100,10 +106,17 @@
 {
 	MikkUserData *userdata = (MikkUserData*)context->m_pUserData;
 	BL::MeshTessFace f = userdata->mesh.tessfaces[face_num];
-	int4 vi = get_int4(f.vertices_raw());
-	BL::MeshVertex v = userdata->mesh.vertices[vi[vert_num]];
-	float3 vN = get_float3(v.normal());
+	float3 vN;
 
+	if(f.use_smooth()) {
+		int4 vi = get_int4(f.vertices_raw());
+		BL::MeshVertex v = userdata->mesh.vertices[vi[vert_num]];
+		vN = get_float3(v.normal());
+	}
+	else {
+		vN = get_float3(f.normal());
+	}
+
 	N[0] = vN.x;

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list