Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMai Lavelle <mai.lavelle@gmail.com>2016-09-03 04:37:17 +0300
committerMai Lavelle <mai.lavelle@gmail.com>2016-09-11 20:49:05 +0300
commit013b46d6bda4388736d7953746d6b335ce495b16 (patch)
tree59f8974ed14e7cf3e01ea369590da326dd9a6ed0 /intern/cycles/render
parent92a2c49aab55a2c459a8f6d50e730bdcda966eb5 (diff)
Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIED
Using ones complement for detecting if transform has been applied was confusing and led to several bugs. With this proper checks are made. Also added a few transforms where they were missing, mostly affecting baking and displacement when `P` is used in the shader (previously `P` was in the wrong space for these shaders) Also removed `TIME_INVALID` as this may have resulted in incorrect transforms in some cases. Reviewed By: brecht Differential Revision: https://developer.blender.org/D2192
Diffstat (limited to 'intern/cycles/render')
-rw-r--r--intern/cycles/render/light.cpp3
-rw-r--r--intern/cycles/render/mesh_displace.cpp3
2 files changed, 1 insertions, 5 deletions
diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp
index c833a8b1c46..3b7935803f4 100644
--- a/intern/cycles/render/light.cpp
+++ b/intern/cycles/render/light.cpp
@@ -309,9 +309,6 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen
int object_id = j;
int shader_flag = 0;
- if(transform_applied)
- object_id = ~object_id;
-
if(!(object->visibility & PATH_RAY_DIFFUSE)) {
shader_flag |= SHADER_EXCLUDE_DIFFUSE;
use_light_visibility = true;
diff --git a/intern/cycles/render/mesh_displace.cpp b/intern/cycles/render/mesh_displace.cpp
index ef9cfedd412..adc5b820298 100644
--- a/intern/cycles/render/mesh_displace.cpp
+++ b/intern/cycles/render/mesh_displace.cpp
@@ -86,8 +86,7 @@ bool MeshManager::displace(Device *device, DeviceScene *dscene, Scene *scene, Me
done[t.v[j]] = true;
/* set up object, primitive and barycentric coordinates */
- /* when used, non-instanced convention: object = ~object */
- int object = ~object_index;
+ int object = object_index;
int prim = mesh->tri_offset + i;
float u, v;