ss_isect->num_hits = 0;
const int object_flag = kernel_tex_fetch(__object_flag, subsurface_object);
- if(!(object_flag & SD_TRANSFORM_APPLIED)) {
+ if(!(object_flag & SD_OBJECT_TRANSFORM_APPLIED)) {
#if BVH_FEATURE(BVH_MOTION)
Transform ob_itfm;
bvh_instance_motion_push(kg,
ss_isect->num_hits = 0;
const int object_flag = kernel_tex_fetch(__object_flag, subsurface_object);
- if(!(object_flag & SD_TRANSFORM_APPLIED)) {
+ if(!(object_flag & SD_OBJECT_TRANSFORM_APPLIED)) {
#if BVH_FEATURE(BVH_MOTION)
Transform ob_itfm;
bvh_instance_motion_push(kg,
}
/* Compute face normal. */
float3 Ng;
- if(ccl_fetch(sd, flag) & SD_NEGATIVE_SCALE_APPLIED) {
+ if(ccl_fetch(sd, flag) & SD_OBJECT_NEGATIVE_SCALE_APPLIED) {
Ng = normalize(cross(verts[2] - verts[0], verts[1] - verts[0]));
}
else {
if(is_curve_primitive) {
center = curve_motion_center_location(kg, sd);
- if(!(ccl_fetch(sd, flag) & SD_TRANSFORM_APPLIED))
+ if(!(ccl_fetch(sd, flag) & SD_OBJECT_TRANSFORM_APPLIED))
object_position_transform(kg, sd, ¢er);
}
else
const float3 v2 = float4_to_float3(kernel_tex_fetch(__prim_tri_verts, tri_vindex.w+2));
/* return normal */
- if(ccl_fetch(sd, flag) & SD_NEGATIVE_SCALE_APPLIED)
+ if(ccl_fetch(sd, flag) & SD_OBJECT_NEGATIVE_SCALE_APPLIED)
return normalize(cross(v2 - v0, v1 - v0));
else
return normalize(cross(v1 - v0, v2 - v0));
int object_flag = kernel_tex_fetch(__object_flag, object);
/* compute normal */
- if(object_flag & SD_NEGATIVE_SCALE_APPLIED)
+ if(object_flag & SD_OBJECT_NEGATIVE_SCALE_APPLIED)
*Ng = normalize(cross(v2 - v0, v1 - v0));
else
*Ng = normalize(cross(v1 - v0, v2 - v0));
P, Ng, Ng,
shader, object, prim,
u, v, 1.0f, 0.5f,
- !(kernel_tex_fetch(__object_flag, object) & SD_TRANSFORM_APPLIED),
+ !(kernel_tex_fetch(__object_flag, object) & SD_OBJECT_TRANSFORM_APPLIED),
LAMP_NONE);
sd.I = sd.N;
{
#ifdef __INSTANCING__
/* instance transform */
- if(!(kernel_tex_fetch(__object_flag, object) & SD_TRANSFORM_APPLIED)) {
+ if(!(kernel_tex_fetch(__object_flag, object) & SD_OBJECT_TRANSFORM_APPLIED)) {
# ifdef __OBJECT_MOTION__
Transform itfm;
Transform tfm = object_fetch_transform_motion_test(kg, object, time, &itfm);
/* holdout */
#ifdef __HOLDOUT__
- if((sd.flag & (SD_HOLDOUT|SD_HOLDOUT_MASK)) && (state.flag & PATH_RAY_CAMERA)) {
+ if((sd.flag & (SD_HOLDOUT|SD_OBJECT_HOLDOUT_MASK)) && (state.flag & PATH_RAY_CAMERA)) {
if(kernel_data.background.transparent) {
float3 holdout_weight;
- if(sd.flag & SD_HOLDOUT_MASK)
+ if(sd.flag & SD_OBJECT_HOLDOUT_MASK)
holdout_weight = make_float3(1.0f, 1.0f, 1.0f);
else
holdout_weight = shader_holdout_eval(kg, &sd);
L_transparent += average(holdout_weight*throughput);
}
- if(sd.flag & SD_HOLDOUT_MASK)
+ if(sd.flag & SD_OBJECT_HOLDOUT_MASK)
break;
}
#endif /* __HOLDOUT__ */
/* holdout */
#ifdef __HOLDOUT__
- if(sd.flag & (SD_HOLDOUT|SD_HOLDOUT_MASK)) {
+ if(sd.flag & (SD_HOLDOUT|SD_OBJECT_HOLDOUT_MASK)) {
if(kernel_data.background.transparent) {
float3 holdout_weight;
- if(sd.flag & SD_HOLDOUT_MASK)
+ if(sd.flag & SD_OBJECT_HOLDOUT_MASK)
holdout_weight = make_float3(1.0f, 1.0f, 1.0f);
else
holdout_weight = shader_holdout_eval(kg, &sd);
L_transparent += average(holdout_weight*throughput);
}
- if(sd.flag & SD_HOLDOUT_MASK)
+ if(sd.flag & SD_OBJECT_HOLDOUT_MASK)
break;
}
#endif /* __HOLDOUT__ */
ccl_fetch(sd, N) = triangle_smooth_normal(kg, ccl_fetch(sd, prim), ccl_fetch(sd, u), ccl_fetch(sd, v));
#ifdef __INSTANCING__
- if(!(ccl_fetch(sd, flag) & SD_TRANSFORM_APPLIED)) {
+ if(!(ccl_fetch(sd, flag) & SD_OBJECT_TRANSFORM_APPLIED)) {
object_normal_transform_auto(kg, sd, &ccl_fetch(sd, N));
}
#endif
triangle_dPdudv(kg, ccl_fetch(sd, prim), &ccl_fetch(sd, dPdu), &ccl_fetch(sd, dPdv));
# ifdef __INSTANCING__
- if(!(ccl_fetch(sd, flag) & SD_TRANSFORM_APPLIED)) {
+ if(!(ccl_fetch(sd, flag) & SD_OBJECT_TRANSFORM_APPLIED)) {
object_dir_transform_auto(kg, sd, &ccl_fetch(sd, dPdu));
object_dir_transform_auto(kg, sd, &ccl_fetch(sd, dPdv));
}
P, Ng, I,
shader, object, prim,
u, v, 0.0f, 0.5f,
- !(kernel_tex_fetch(__object_flag, object) & SD_TRANSFORM_APPLIED),
+ !(kernel_tex_fetch(__object_flag, object) & SD_OBJECT_TRANSFORM_APPLIED),
LAMP_NONE);
}
SD_VOLUME_CUBIC|SD_HAS_BUMP|SD_HAS_DISPLACEMENT|SD_HAS_CONSTANT_EMISSION),
/* object flags */
- SD_HOLDOUT_MASK = (1 << 24), /* holdout for camera rays */
- SD_OBJECT_MOTION = (1 << 25), /* has object motion blur */
- SD_TRANSFORM_APPLIED = (1 << 26), /* vertices have transform applied */
- SD_NEGATIVE_SCALE_APPLIED = (1 << 27), /* vertices have negative scale applied */
- SD_OBJECT_HAS_VOLUME = (1 << 28), /* object has a volume shader */
- SD_OBJECT_INTERSECTS_VOLUME = (1 << 29), /* object intersects AABB of an object with volume shader */
- SD_OBJECT_HAS_VERTEX_MOTION = (1 << 30), /* has position for motion vertices */
-
- SD_OBJECT_FLAGS = (SD_HOLDOUT_MASK|SD_OBJECT_MOTION|SD_TRANSFORM_APPLIED|
- SD_NEGATIVE_SCALE_APPLIED|SD_OBJECT_HAS_VOLUME|
+ SD_OBJECT_HOLDOUT_MASK = (1 << 24), /* holdout for camera rays */
+ SD_OBJECT_MOTION = (1 << 25), /* has object motion blur */
+ SD_OBJECT_TRANSFORM_APPLIED = (1 << 26), /* vertices have transform applied */
+ SD_OBJECT_NEGATIVE_SCALE_APPLIED = (1 << 27), /* vertices have negative scale applied */
+ SD_OBJECT_HAS_VOLUME = (1 << 28), /* object has a volume shader */
+ SD_OBJECT_INTERSECTS_VOLUME = (1 << 29), /* object intersects AABB of an object with volume shader */
+ SD_OBJECT_HAS_VERTEX_MOTION = (1 << 30), /* has position for motion vertices */
+
+ SD_OBJECT_FLAGS = (SD_OBJECT_HOLDOUT_MASK|SD_OBJECT_MOTION|SD_OBJECT_TRANSFORM_APPLIED|
+ SD_OBJECT_NEGATIVE_SCALE_APPLIED|SD_OBJECT_HAS_VOLUME|
SD_OBJECT_INTERSECTS_VOLUME)
};
else
motion_triangle_vertices(kg, sd->object, sd->prim, sd->time, P);
- if(!(sd->flag & SD_TRANSFORM_APPLIED)) {
+ if(!(sd->flag & SD_OBJECT_TRANSFORM_APPLIED)) {
object_position_transform(kg, sd, &P[0]);
object_position_transform(kg, sd, &P[1]);
object_position_transform(kg, sd, &P[2]);
/* holdout */
#ifdef __HOLDOUT__
- if((ccl_fetch(sd, flag) & (SD_HOLDOUT|SD_HOLDOUT_MASK)) &&
+ if((ccl_fetch(sd, flag) & (SD_HOLDOUT|SD_OBJECT_HOLDOUT_MASK)) &&
(state->flag & PATH_RAY_CAMERA))
{
if(kernel_data.background.transparent) {
float3 holdout_weight;
- if(ccl_fetch(sd, flag) & SD_HOLDOUT_MASK)
+ if(ccl_fetch(sd, flag) & SD_OBJECT_HOLDOUT_MASK)
holdout_weight = make_float3(1.0f, 1.0f, 1.0f);
else
holdout_weight = shader_holdout_eval(kg, sd);
L_transparent_coop[ray_index] += average(holdout_weight*throughput);
}
- if(ccl_fetch(sd, flag) & SD_HOLDOUT_MASK) {
+ if(ccl_fetch(sd, flag) & SD_OBJECT_HOLDOUT_MASK) {
ASSIGN_RAY_STATE(ray_state, ray_index, RAY_UPDATE_BUFFER);
*enqueue_flag = 1;
}
else
motion_triangle_vertices(kg, ccl_fetch(sd, object), ccl_fetch(sd, prim), ccl_fetch(sd, time), Co);
- if(!(ccl_fetch(sd, flag) & SD_TRANSFORM_APPLIED)) {
+ if(!(ccl_fetch(sd, flag) & SD_OBJECT_TRANSFORM_APPLIED)) {
object_position_transform(kg, sd, &Co[0]);
object_position_transform(kg, sd, &Co[1]);
object_position_transform(kg, sd, &Co[2]);
/* Object flag. */
if(ob->use_holdout) {
- flag |= SD_HOLDOUT_MASK;
+ flag |= SD_OBJECT_HOLDOUT_MASK;
}
state->object_flag[object_index] = flag;
if(progress.get_cancel()) return;
}
- object_flag[i] |= SD_TRANSFORM_APPLIED;
+ object_flag[i] |= SD_OBJECT_TRANSFORM_APPLIED;
if(object->mesh->transform_negative_scaled)
- object_flag[i] |= SD_NEGATIVE_SCALE_APPLIED;
+ object_flag[i] |= SD_OBJECT_NEGATIVE_SCALE_APPLIED;
}
else
have_instancing = true;