[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45678] trunk/blender/intern/cycles: Fix #30966: cycles nan mesh vertices got set to (0, 0, 0), now remove them instead.
Brecht Van Lommel
brechtvanlommel at pandora.be
Mon Apr 16 10:35:21 CEST 2012
Revision: 45678
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45678
Author: blendix
Date: 2012-04-16 08:35:21 +0000 (Mon, 16 Apr 2012)
Log Message:
-----------
Fix #30966: cycles nan mesh vertices got set to (0, 0, 0), now remove them instead.
Modified Paths:
--------------
trunk/blender/intern/cycles/app/cycles_xml.cpp
trunk/blender/intern/cycles/kernel/kernel_bvh.h
trunk/blender/intern/cycles/kernel/kernel_camera.h
trunk/blender/intern/cycles/kernel/kernel_mbvh.h
trunk/blender/intern/cycles/kernel/kernel_object.h
trunk/blender/intern/cycles/kernel/kernel_passes.h
trunk/blender/intern/cycles/kernel/kernel_qbvh.h
trunk/blender/intern/cycles/kernel/svm/svm_camera.h
trunk/blender/intern/cycles/kernel/svm/svm_mapping.h
trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h
trunk/blender/intern/cycles/render/camera.cpp
trunk/blender/intern/cycles/render/light.cpp
trunk/blender/intern/cycles/render/object.cpp
trunk/blender/intern/cycles/subd/subd_dice.cpp
trunk/blender/intern/cycles/subd/subd_split.cpp
trunk/blender/intern/cycles/util/util_boundbox.h
trunk/blender/intern/cycles/util/util_transform.h
Modified: trunk/blender/intern/cycles/app/cycles_xml.cpp
===================================================================
--- trunk/blender/intern/cycles/app/cycles_xml.cpp 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/app/cycles_xml.cpp 2012-04-16 08:35:21 UTC (rev 45678)
@@ -724,7 +724,7 @@
LinearQuadPatch *bpatch = new LinearQuadPatch();
for(int i = 0; i < 4; i++)
- P[i] = transform(&state.tfm, P[i]);
+ P[i] = transform_point(&state.tfm, P[i]);
memcpy(bpatch->hull, &P[0], sizeof(bpatch->hull));
patch = bpatch;
@@ -738,7 +738,7 @@
BicubicPatch *bpatch = new BicubicPatch();
for(int i = 0; i < 16; i++)
- P[i] = transform(&state.tfm, P[i]);
+ P[i] = transform_point(&state.tfm, P[i]);
memcpy(bpatch->hull, &P[0], sizeof(bpatch->hull));
patch = bpatch;
@@ -777,7 +777,7 @@
Light *light = new Light();
light->shader = state.shader;
xml_read_float3(&light->co, node, "P");
- light->co = transform(&state.tfm, light->co);
+ light->co = transform_point(&state.tfm, light->co);
state.scene->lights.push_back(light);
}
Modified: trunk/blender/intern/cycles/kernel/kernel_bvh.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_bvh.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/kernel_bvh.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -59,7 +59,7 @@
{
Transform tfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM);
- *P = transform(&tfm, ray->P);
+ *P = transform_point(&tfm, ray->P);
float3 dir = transform_direction(&tfm, ray->D);
@@ -351,7 +351,7 @@
if(isect->object != ~0) {
Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_INVERSE_TRANSFORM);
- P = transform(&tfm, P);
+ P = transform_point(&tfm, P);
D = transform_direction(&tfm, D*t);
D = normalize_len(D, &t);
}
@@ -367,7 +367,7 @@
if(isect->object != ~0) {
Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_TRANSFORM);
- P = transform(&tfm, P);
+ P = transform_point(&tfm, P);
}
return P;
Modified: trunk/blender/intern/cycles/kernel/kernel_camera.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_camera.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/kernel_camera.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -39,7 +39,7 @@
{
/* create ray form raster position */
Transform rastertocamera = kernel_data.cam.rastertocamera;
- float3 Pcamera = transform(&rastertocamera, make_float3(raster_x, raster_y, 0.0f));
+ float3 Pcamera = transform_perspective(&rastertocamera, make_float3(raster_x, raster_y, 0.0f));
ray->P = make_float3(0.0f, 0.0f, 0.0f);
ray->D = Pcamera;
@@ -63,7 +63,7 @@
/* transform ray from camera to world */
Transform cameratoworld = kernel_data.cam.cameratoworld;
- ray->P = transform(&cameratoworld, ray->P);
+ ray->P = transform_point(&cameratoworld, ray->P);
ray->D = transform_direction(&cameratoworld, ray->D);
ray->D = normalize(ray->D);
@@ -93,7 +93,7 @@
{
/* create ray form raster position */
Transform rastertocamera = kernel_data.cam.rastertocamera;
- float3 Pcamera = transform(&rastertocamera, make_float3(raster_x, raster_y, 0.0f));
+ float3 Pcamera = transform_perspective(&rastertocamera, make_float3(raster_x, raster_y, 0.0f));
ray->P = Pcamera;
ray->D = make_float3(0.0f, 0.0f, 1.0f);
@@ -101,7 +101,7 @@
/* transform ray from camera to world */
Transform cameratoworld = kernel_data.cam.cameratoworld;
- ray->P = transform(&cameratoworld, ray->P);
+ ray->P = transform_point(&cameratoworld, ray->P);
ray->D = transform_direction(&cameratoworld, ray->D);
ray->D = normalize(ray->D);
@@ -127,7 +127,7 @@
__device void camera_sample_environment(KernelGlobals *kg, float raster_x, float raster_y, Ray *ray)
{
Transform rastertocamera = kernel_data.cam.rastertocamera;
- float3 Pcamera = transform(&rastertocamera, make_float3(raster_x, raster_y, 0.0f));
+ float3 Pcamera = transform_perspective(&rastertocamera, make_float3(raster_x, raster_y, 0.0f));
/* create ray form raster position */
ray->P = make_float3(0.0, 0.0f, 0.0f);
@@ -136,7 +136,7 @@
/* transform ray from camera to world */
Transform cameratoworld = kernel_data.cam.cameratoworld;
- ray->P = transform(&cameratoworld, ray->P);
+ ray->P = transform_point(&cameratoworld, ray->P);
ray->D = transform_direction(&cameratoworld, ray->D);
ray->D = normalize(ray->D);
@@ -145,10 +145,10 @@
ray->dP.dx = make_float3(0.0f, 0.0f, 0.0f);
ray->dP.dy = make_float3(0.0f, 0.0f, 0.0f);
- Pcamera = transform(&rastertocamera, make_float3(raster_x + 1.0f, raster_y, 0.0f));
+ Pcamera = transform_perspective(&rastertocamera, make_float3(raster_x + 1.0f, raster_y, 0.0f));
ray->dD.dx = normalize(transform_direction(&cameratoworld, equirectangular_to_direction(Pcamera.x, Pcamera.y))) - ray->D;
- Pcamera = transform(&rastertocamera, make_float3(raster_x, raster_y + 1.0f, 0.0f));
+ Pcamera = transform_perspective(&rastertocamera, make_float3(raster_x, raster_y + 1.0f, 0.0f));
ray->dD.dy = normalize(transform_direction(&cameratoworld, equirectangular_to_direction(Pcamera.x, Pcamera.y))) - ray->D;
#endif
Modified: trunk/blender/intern/cycles/kernel/kernel_mbvh.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_mbvh.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/kernel_mbvh.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -61,7 +61,7 @@
{
Transform tfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM);
- ray->P = transform(&tfm, ray->origP);
+ ray->P = transform_point(&tfm, ray->origP);
float3 dir = ray->origD;
Modified: trunk/blender/intern/cycles/kernel/kernel_object.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_object.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/kernel_object.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -42,7 +42,7 @@
__device_inline void object_position_transform(KernelGlobals *kg, int object, float3 *P)
{
Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM);
- *P = transform(&tfm, *P);
+ *P = transform_point(&tfm, *P);
}
__device_inline void object_normal_transform(KernelGlobals *kg, int object, float3 *N)
Modified: trunk/blender/intern/cycles/kernel/kernel_passes.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_passes.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/kernel_passes.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -53,7 +53,7 @@
if(sample == 0) {
if(flag & PASS_DEPTH) {
Transform tfm = kernel_data.cam.worldtocamera;
- float depth = len(transform(&tfm, sd->P));
+ float depth = len(transform_point(&tfm, sd->P));
kernel_write_pass_float(buffer + kernel_data.film.pass_depth, sample, depth);
}
Modified: trunk/blender/intern/cycles/kernel/kernel_qbvh.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_qbvh.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/kernel_qbvh.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -50,7 +50,7 @@
{
Transform tfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM);
- *P = transform(&tfm, ray->P);
+ *P = transform_point(&tfm, ray->P);
float3 dir = transform_direction(&tfm, ray->D);
@@ -384,7 +384,7 @@
if(isect->object != ~0) {
Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_INVERSE_TRANSFORM);
- P = transform(&tfm, P);
+ P = transform_point(&tfm, P);
D = transform_direction(&tfm, D*t);
D = normalize_len(D, &t);
}
@@ -400,7 +400,7 @@
if(isect->object != ~0) {
Transform tfm = object_fetch_transform(kg, isect->object, OBJECT_TRANSFORM);
- P = transform(&tfm, P);
+ P = transform_point(&tfm, P);
}
return P;
Modified: trunk/blender/intern/cycles/kernel/svm/svm_camera.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_camera.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/svm/svm_camera.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -25,7 +25,7 @@
float3 vector;
Transform tfm = kernel_data.cam.worldtocamera;
- vector = transform(&tfm, sd->P);
+ vector = transform_point(&tfm, sd->P);
zdepth = vector.z;
distance = len(vector);
Modified: trunk/blender/intern/cycles/kernel/svm/svm_mapping.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_mapping.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/svm/svm_mapping.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -30,7 +30,7 @@
tfm.z = read_node_float(kg, offset);
tfm.w = read_node_float(kg, offset);
- float3 r = transform(&tfm, v);
+ float3 r = transform_point(&tfm, v);
stack_store_float3(stack, out_offset, r);
}
Modified: trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h 2012-04-16 08:11:07 UTC (rev 45677)
+++ trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h 2012-04-16 08:35:21 UTC (rev 45678)
@@ -34,7 +34,7 @@
case NODE_TEXCO_OBJECT: {
if(sd->object != ~0) {
Transform tfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM);
- data = transform(&tfm, sd->P);
+ data = transform_point(&tfm, sd->P);
}
else
data = sd->P;
@@ -44,18 +44,18 @@
Transform tfm = kernel_data.cam.worldtocamera;
if(sd->object != ~0)
- data = transform(&tfm, sd->P);
+ data = transform_point(&tfm, sd->P);
else
- data = transform(&tfm, sd->P + svm_background_offset(kg));
+ data = transform_point(&tfm, sd->P + svm_background_offset(kg));
break;
}
case NODE_TEXCO_WINDOW: {
Transform tfm = kernel_data.cam.worldtondc;
if(sd->object != ~0)
- data = transform(&tfm, sd->P);
+ data = transform_perspective(&tfm, sd->P);
else
- data = transform(&tfm, sd->P + svm_background_offset(kg));
+ data = transform_perspective(&tfm, sd->P + svm_background_offset(kg));
break;
}
case NODE_TEXCO_REFLECTION: {
@@ -79,7 +79,7 @@
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list