From e9ba345c46c93a193193f01d4bfac714a666d384 Mon Sep 17 00:00:00 2001 From: Stuart Broadfoot Date: Fri, 28 Dec 2012 14:21:30 +0000 Subject: New feature Patch [#33445] - Experimental Cycles Hair Rendering (CPU only) This patch allows hair data to be exported to cycles and introduces a new line segment primitive to render with. The UI appears under the particle tab and there is a new hair info node available. It is only available under the experimental feature set and for cpu rendering. --- intern/cycles/kernel/svm/svm_tex_coord.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'intern/cycles/kernel/svm/svm_tex_coord.h') diff --git a/intern/cycles/kernel/svm/svm_tex_coord.h b/intern/cycles/kernel/svm/svm_tex_coord.h index 9f2d3367420..5e7c92ba93c 100644 --- a/intern/cycles/kernel/svm/svm_tex_coord.h +++ b/intern/cycles/kernel/svm/svm_tex_coord.h @@ -242,7 +242,11 @@ __device void svm_node_normal_map(KernelGlobals *kg, ShaderData *sd, float *stac if(space == NODE_NORMAL_MAP_TANGENT) { /* tangent space */ - if(sd->object == ~0) { +#ifdef __HAIR__ + if(sd->object == ~0 || sd->curve_seg != ~0) { +#else + if(sd->object == ~0) { +#endif stack_store_float3(stack, normal_offset, make_float3(0.0f, 0.0f, 0.0f)); return; } @@ -297,7 +301,11 @@ __device void svm_node_tangent(KernelGlobals *kg, ShaderData *sd, float *stack, /* UV map */ int attr_offset = find_attribute(kg, sd, node.z); +#ifdef __HAIR__ + if(attr_offset == ATTR_STD_NOT_FOUND || sd->curve_seg != ~0) +#else if(attr_offset == ATTR_STD_NOT_FOUND) +#endif tangent = make_float3(0.0f, 0.0f, 0.0f); else tangent = triangle_attribute_float3(kg, sd, ATTR_ELEMENT_CORNER, attr_offset, NULL, NULL); @@ -307,7 +315,11 @@ __device void svm_node_tangent(KernelGlobals *kg, ShaderData *sd, float *stack, int attr_offset = find_attribute(kg, sd, node.z); float3 generated; +#ifdef __HAIR__ + if(attr_offset == ATTR_STD_NOT_FOUND || sd->curve_seg != ~0) +#else if(attr_offset == ATTR_STD_NOT_FOUND) +#endif generated = sd->P; else generated = triangle_attribute_float3(kg, sd, ATTR_ELEMENT_VERTEX, attr_offset, NULL, NULL); -- cgit v1.2.3