diff options
Diffstat (limited to 'intern/cycles/kernel/kernel_shader.h')
-rw-r--r-- | intern/cycles/kernel/kernel_shader.h | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index 9700aaba80f..535253bc762 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -63,10 +63,8 @@ ccl_device_noinline { PROFILING_INIT(kg, PROFILING_SHADER_SETUP); -#ifdef __INSTANCING__ sd->object = (isect->object == OBJECT_NONE) ? kernel_tex_fetch(__prim_object, isect->prim) : isect->object; -#endif sd->lamp = LAMP_NONE; sd->type = isect->type; @@ -82,10 +80,8 @@ ccl_device_noinline sd->prim = kernel_tex_fetch(__prim_index, isect->prim); sd->ray_length = isect->t; -#ifdef __UV__ sd->u = isect->u; sd->v = isect->v; -#endif #ifdef __HAIR__ if (sd->type & PRIMITIVE_ALL_CURVE) { @@ -125,17 +121,15 @@ ccl_device_noinline sd->flag |= kernel_tex_fetch(__shaders, (sd->shader & SHADER_MASK)).flags; -#ifdef __INSTANCING__ if (isect->object != OBJECT_NONE) { /* instance transform */ object_normal_transform_auto(kg, sd, &sd->N); object_normal_transform_auto(kg, sd, &sd->Ng); -# ifdef __DPDU__ +#ifdef __DPDU__ object_dir_transform_auto(kg, sd, &sd->dPdu); object_dir_transform_auto(kg, sd, &sd->dPdv); -# endif - } #endif + } /* backfacing test */ bool backfacing = (dot(sd->Ng, sd->I) < 0.0f); @@ -185,10 +179,8 @@ ccl_device_inline sd->prim = kernel_tex_fetch(__prim_index, isect->prim); sd->type = isect->type; -# ifdef __UV__ sd->u = isect->u; sd->v = isect->v; -# endif /* fetch triangle data */ if (sd->type == PRIMITIVE_TRIANGLE) { @@ -215,17 +207,15 @@ ccl_device_inline sd->flag |= kernel_tex_fetch(__shaders, (sd->shader & SHADER_MASK)).flags; -# ifdef __INSTANCING__ if (isect->object != OBJECT_NONE) { /* instance transform */ object_normal_transform_auto(kg, sd, &sd->N); object_normal_transform_auto(kg, sd, &sd->Ng); -# ifdef __DPDU__ +# ifdef __DPDU__ object_dir_transform_auto(kg, sd, &sd->dPdu); object_dir_transform_auto(kg, sd, &sd->dPdv); -# endif - } # endif + } /* backfacing test */ if (backfacing) { @@ -284,17 +274,13 @@ ccl_device_inline void shader_setup_from_sample(KernelGlobals *kg, else sd->type = PRIMITIVE_NONE; - /* primitive */ -#ifdef __INSTANCING__ + /* primitive */ sd->object = object; -#endif sd->lamp = LAMP_NONE; /* currently no access to bvh prim index for strand sd->prim*/ sd->prim = prim; -#ifdef __UV__ sd->u = u; sd->v = v; -#endif sd->time = time; sd->ray_length = t; @@ -330,23 +316,19 @@ ccl_device_inline void shader_setup_from_sample(KernelGlobals *kg, if (sd->shader & SHADER_SMOOTH_NORMAL) { sd->N = triangle_smooth_normal(kg, Ng, sd->prim, sd->u, sd->v); -#ifdef __INSTANCING__ if (!(sd->object_flag & SD_OBJECT_TRANSFORM_APPLIED)) { object_normal_transform_auto(kg, sd, &sd->N); } -#endif } /* dPdu/dPdv */ #ifdef __DPDU__ triangle_dPdudv(kg, sd->prim, &sd->dPdu, &sd->dPdv); -# ifdef __INSTANCING__ if (!(sd->object_flag & SD_OBJECT_TRANSFORM_APPLIED)) { object_dir_transform_auto(kg, sd, &sd->dPdu); object_dir_transform_auto(kg, sd, &sd->dPdv); } -# endif #endif } else { @@ -432,15 +414,11 @@ ccl_device_inline void shader_setup_from_background(KernelGlobals *kg, sd->time = ray->time; sd->ray_length = 0.0f; -#ifdef __INSTANCING__ sd->object = OBJECT_NONE; -#endif sd->lamp = LAMP_NONE; sd->prim = PRIM_NONE; -#ifdef __UV__ sd->u = 0.0f; sd->v = 0.0f; -#endif #ifdef __DPDU__ /* dPdu/dPdv */ @@ -481,17 +459,13 @@ ccl_device_inline void shader_setup_from_volume(KernelGlobals *kg, ShaderData *s sd->time = ray->time; sd->ray_length = 0.0f; /* todo: can we set this to some useful value? */ -# ifdef __INSTANCING__ sd->object = OBJECT_NONE; /* todo: fill this for texture coordinates */ -# endif sd->lamp = LAMP_NONE; sd->prim = PRIM_NONE; sd->type = PRIMITIVE_NONE; -# ifdef __UV__ sd->u = 0.0f; sd->v = 0.0f; -# endif # ifdef __DPDU__ /* dPdu/dPdv */ |