[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58241] branches/soc-2013-dingto: Merged revision(s) 58226-58240 from trunk/blender into soc-2013-dingto.

Thomas Dinges blender at dingto.org
Sun Jul 14 18:54:21 CEST 2013


Revision: 58241
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58241
Author:   dingto
Date:     2013-07-14 16:54:20 +0000 (Sun, 14 Jul 2013)
Log Message:
-----------
Merged revision(s) 58226-58240 from trunk/blender into soc-2013-dingto. 

Modified Paths:
--------------
    branches/soc-2013-dingto/intern/cycles/blender/blender_mesh.cpp
    branches/soc-2013-dingto/intern/cycles/blender/blender_sync.h
    branches/soc-2013-dingto/intern/cycles/render/film.cpp
    branches/soc-2013-dingto/intern/cycles/render/light.cpp
    branches/soc-2013-dingto/intern/cycles/render/mesh.cpp
    branches/soc-2013-dingto/intern/cycles/render/mesh.h
    branches/soc-2013-dingto/intern/cycles/render/tables.cpp
    branches/soc-2013-dingto/source/blender/blenkernel/intern/particle.c
    branches/soc-2013-dingto/source/blender/blenkernel/intern/particle_system.c
    branches/soc-2013-dingto/source/blender/collada/ArmatureImporter.cpp
    branches/soc-2013-dingto/source/blender/collada/ArmatureImporter.h
    branches/soc-2013-dingto/source/blender/collada/DocumentImporter.cpp
    branches/soc-2013-dingto/source/blender/collada/TransformWriter.cpp
    branches/soc-2013-dingto/source/blender/editors/space_image/image_ops.c
    branches/soc-2013-dingto/source/blender/makesdna/DNA_particle_types.h
    branches/soc-2013-dingto/source/blender/makesrna/intern/rna_particle.c
    branches/soc-2013-dingto/source/blender/modifiers/intern/MOD_screw.c

Property Changed:
----------------
    branches/soc-2013-dingto/


Property changes on: branches/soc-2013-dingto
___________________________________________________________________
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/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-depsgraph_mt:57516
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57315-57365,57369-58225
   + /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/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-depsgraph_mt:57516
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57315-57365,57369-58240

Modified: branches/soc-2013-dingto/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/blender/blender_mesh.cpp	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/intern/cycles/blender/blender_mesh.cpp	2013-07-14 16:54:20 UTC (rev 58241)
@@ -212,13 +212,27 @@
 
 static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector<uint>& used_shaders)
 {
-	/* create vertices */
+	/* count vertices and faces */
+	int numverts = b_mesh.vertices.length();
+	int numfaces = b_mesh.tessfaces.length();
+	int numtris = 0;
+
 	BL::Mesh::vertices_iterator v;
+	BL::Mesh::tessfaces_iterator f;
 
-	for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v)
-		mesh->verts.push_back(get_float3(v->co()));
+	for(b_mesh.tessfaces.begin(f); f != b_mesh.tessfaces.end(); ++f) {
+		int4 vi = get_int4(f->vertices_raw());
+		numtris += (vi[3] == 0)? 1: 2;
+	}
 
-	/* create vertex normals */
+	/* reserve memory */
+	mesh->reserve(numverts, numtris, 0, 0);
+
+	/* create vertex coordinates and normals */
+	int i = 0;
+	for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v, ++i)
+		mesh->verts[i] = get_float3(v->co());
+
 	Attribute *attr_N = mesh->attributes.add(ATTR_STD_VERTEX_NORMAL);
 	float3 *N = attr_N->data_float3();
 
@@ -226,10 +240,10 @@
 		*N = get_float3(v->normal());
 
 	/* create faces */
-	BL::Mesh::tessfaces_iterator f;
-	vector<int> nverts;
+	vector<int> nverts(numfaces);
+	int fi = 0, ti = 0;
 
-	for(b_mesh.tessfaces.begin(f); f != b_mesh.tessfaces.end(); ++f) {
+	for(b_mesh.tessfaces.begin(f); f != b_mesh.tessfaces.end(); ++f, ++fi) {
 		int4 vi = get_int4(f->vertices_raw());
 		int n = (vi[3] == 0)? 3: 4;
 		int mi = clamp(f->material_index(), 0, used_shaders.size()-1);
@@ -239,18 +253,18 @@
 		if(n == 4) {
 			if(len_squared(cross(mesh->verts[vi[1]] - mesh->verts[vi[0]], mesh->verts[vi[2]] - mesh->verts[vi[0]])) == 0.0f ||
 				len_squared(cross(mesh->verts[vi[2]] - mesh->verts[vi[0]], mesh->verts[vi[3]] - mesh->verts[vi[0]])) == 0.0f) {
-				mesh->add_triangle(vi[0], vi[1], vi[3], shader, smooth);
-				mesh->add_triangle(vi[2], vi[3], vi[1], shader, smooth);
+				mesh->set_triangle(ti++, vi[0], vi[1], vi[3], shader, smooth);
+				mesh->set_triangle(ti++, vi[2], vi[3], vi[1], shader, smooth);
 			}
 			else {
-				mesh->add_triangle(vi[0], vi[1], vi[2], shader, smooth);
-				mesh->add_triangle(vi[0], vi[2], vi[3], shader, smooth);
+				mesh->set_triangle(ti++, vi[0], vi[1], vi[2], shader, smooth);
+				mesh->set_triangle(ti++, vi[0], vi[2], vi[3], shader, smooth);
 			}
 		}
 		else
-			mesh->add_triangle(vi[0], vi[1], vi[2], shader, smooth);
+			mesh->set_triangle(ti++, vi[0], vi[1], vi[2], shader, smooth);
 
-		nverts.push_back(n);
+		nverts[fi] = n;
 	}
 
 	/* create vertex color attributes */

Modified: branches/soc-2013-dingto/intern/cycles/blender/blender_sync.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/blender/blender_sync.h	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/intern/cycles/blender/blender_sync.h	2013-07-14 16:54:20 UTC (rev 58241)
@@ -127,6 +127,7 @@
 		  use_surfaces(true),
 		  use_hair(true),
 		  use_viewport_visibility(false),
+		  use_localview(false),
 		  samples(0), bound_samples(false)
 		{}
 

Modified: branches/soc-2013-dingto/intern/cycles/render/film.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/render/film.cpp	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/intern/cycles/render/film.cpp	2013-07-14 16:54:20 UTC (rev 58241)
@@ -359,12 +359,15 @@
 			case PASS_BACKGROUND:
 				kfilm->pass_background = kfilm->pass_stride;
 				kfilm->use_light_pass = 1;
+				break;
 			case PASS_AO:
 				kfilm->pass_ao = kfilm->pass_stride;
 				kfilm->use_light_pass = 1;
+				break;
 			case PASS_SHADOW:
 				kfilm->pass_shadow = kfilm->pass_stride;
 				kfilm->use_light_pass = 1;
+				break;
 			case PASS_NONE:
 				break;
 		}

Modified: branches/soc-2013-dingto/intern/cycles/render/light.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/render/light.cpp	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/intern/cycles/render/light.cpp	2013-07-14 16:54:20 UTC (rev 58241)
@@ -53,7 +53,7 @@
 	}
 
 	/* compute on device */
-	float4 *d_output_data = d_output.resize(width*height);
+	d_output.resize(width*height);
 	memset((void*)d_output.data_pointer, 0, d_output.memory_size());
 
 	device->const_copy_to("__data", &dscene->data, sizeof(dscene->data));
@@ -82,7 +82,7 @@
 	device->mem_free(d_input);
 	device->mem_free(d_output);
 
-	d_output_data = reinterpret_cast<float4*>(d_output.data_pointer);
+	float4 *d_output_data = reinterpret_cast<float4*>(d_output.data_pointer);
 
 	pixels.resize(width*height);
 

Modified: branches/soc-2013-dingto/intern/cycles/render/mesh.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/render/mesh.cpp	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/intern/cycles/render/mesh.cpp	2013-07-14 16:54:20 UTC (rev 58241)
@@ -98,6 +98,18 @@
 	transform_normal = transform_identity();
 }
 
+void Mesh::set_triangle(int i, int v0, int v1, int v2, int shader_, bool smooth_)
+{
+	Triangle tri;
+	tri.v[0] = v0;
+	tri.v[1] = v1;
+	tri.v[2] = v2;
+
+	triangles[i] = tri;
+	shader[i] = shader_;
+	smooth[i] = smooth_;
+}
+
 void Mesh::add_triangle(int v0, int v1, int v2, int shader_, bool smooth_)
 {
 	Triangle tri;

Modified: branches/soc-2013-dingto/intern/cycles/render/mesh.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/render/mesh.h	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/intern/cycles/render/mesh.h	2013-07-14 16:54:20 UTC (rev 58241)
@@ -110,6 +110,7 @@
 
 	void reserve(int numverts, int numfaces, int numcurves, int numcurvekeys);
 	void clear();
+	void set_triangle(int i, int v0, int v1, int v2, int shader, bool smooth);
 	void add_triangle(int v0, int v1, int v2, int shader, bool smooth);
 	void add_curve_key(float3 loc, float radius);
 	void add_curve(int first_key, int num_keys, int shader);

Modified: branches/soc-2013-dingto/intern/cycles/render/tables.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/render/tables.cpp	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/intern/cycles/render/tables.cpp	2013-07-14 16:54:20 UTC (rev 58241)
@@ -99,7 +99,7 @@
 	for(table = lookup_tables.begin(); table != lookup_tables.end(); table++) {
 		if(table->offset == offset) {
 			lookup_tables.erase(table);
-			break;
+			return;
 		}
 	}
 

Modified: branches/soc-2013-dingto/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/soc-2013-dingto/source/blender/blenkernel/intern/particle.c	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/source/blender/blenkernel/intern/particle.c	2013-07-14 16:54:20 UTC (rev 58241)
@@ -4510,7 +4510,7 @@
 			num = DMCACHE_NOTFOUND;
 		}
 
-		if (mtface && num != DMCACHE_NOTFOUND) {
+		if (mtface && !ELEM(num, DMCACHE_NOTFOUND, DMCACHE_ISCHILD)) {
 			mface = psmd->dm->getTessFaceData(psmd->dm, num, CD_MFACE);
 			mtface += num;
 			psys_interpolate_uvs(mtface, mface->v4, pa->fuv, uv);

Modified: branches/soc-2013-dingto/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- branches/soc-2013-dingto/source/blender/blenkernel/intern/particle_system.c	2013-07-14 16:24:42 UTC (rev 58240)
+++ branches/soc-2013-dingto/source/blender/blenkernel/intern/particle_system.c	2013-07-14 16:54:20 UTC (rev 58241)
@@ -1660,17 +1660,22 @@
 {
 	Object *ob = sim->ob;
 	ParticleSystem *psys = sim->psys;
-	ParticleSettings *part;
+	ParticleSettings *part = psys->part;
 	ParticleTexture ptex;
 	float fac, phasefac, nor[3] = {0,0,0},loc[3],vel[3] = {0.0,0.0,0.0},rot[4],q2[4];
 	float r_vel[3],r_ave[3],r_rot[4],vec[3],p_vel[3] = {0.0,0.0,0.0};
 	float x_vec[3] = {1.0,0.0,0.0}, utan[3] = {0.0,1.0,0.0}, vtan[3] = {0.0,0.0,1.0}, rot_vec[3] = {0.0,0.0,0.0};
 	float q_phase[4];
+
+	const bool use_boids = ((part->phystype == PART_PHYS_BOIDS) &&
+	                        (pa->boid != NULL));
+	const bool use_tangents = ((use_boids == false) &&
+	                           ((part->tanfac != 0.0f) || (part->rotmode == PART_ROT_NOR_TAN)));
+
 	int p = pa - psys->particles;
-	part=psys->part;
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list