diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-11-03 18:32:13 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-11-03 18:32:13 +0400 |
commit | 615fe0295fe13c229d7376b02a50ac110b636c47 (patch) | |
tree | 490bcc8d4af2abb7eed7679990fbee29a5376fb9 /intern | |
parent | 6b098d7406f7d84b04be8d8604073de4e06613c9 (diff) |
Cycles OSL: refactoring and fixes
* Moved kernel/osl/nodes to kernel/shaders
* Renamed standard attributes to use geom:, particle:, object: prefixes
* Update stdosl.h to properly reflect the closures we support
* Fix the wrong stdosl.h being used for building shaders
* Add geom:numpolyvertices, geom:trianglevertices, geom:polyvertices attributes
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/blender/addon/engine.py | 1 | ||||
-rw-r--r-- | intern/cycles/blender/addon/enums.py | 1 | ||||
-rw-r--r-- | intern/cycles/kernel/CMakeLists.txt | 1 | ||||
-rw-r--r-- | intern/cycles/kernel/closure/bsdf_microfacet.h | 12 | ||||
-rw-r--r-- | intern/cycles/kernel/kernel_triangle.h | 11 | ||||
-rw-r--r-- | intern/cycles/kernel/osl/CMakeLists.txt | 1 | ||||
-rw-r--r-- | intern/cycles/kernel/osl/osl_services.cpp | 89 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/CMakeLists.txt (renamed from intern/cycles/kernel/osl/nodes/CMakeLists.txt) | 6 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_add_closure.osl (renamed from intern/cycles/kernel/osl/nodes/node_add_closure.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_attribute.osl (renamed from intern/cycles/kernel/osl/nodes/node_attribute.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_background.osl (renamed from intern/cycles/kernel/osl/nodes/node_background.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_brick_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_brick_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_brightness.osl (renamed from intern/cycles/kernel/osl/nodes/node_brightness.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_bump.osl (renamed from intern/cycles/kernel/osl/nodes/node_bump.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_camera.osl (renamed from intern/cycles/kernel/osl/nodes/node_camera.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_checker_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_checker_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_color.h (renamed from intern/cycles/kernel/osl/nodes/node_color.h) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_combine_rgb.osl (renamed from intern/cycles/kernel/osl/nodes/node_combine_rgb.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_convert_from_color.osl (renamed from intern/cycles/kernel/osl/nodes/node_convert_from_color.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_convert_from_float.osl (renamed from intern/cycles/kernel/osl/nodes/node_convert_from_float.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_convert_from_int.osl (renamed from intern/cycles/kernel/osl/nodes/node_convert_from_int.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_convert_from_normal.osl (renamed from intern/cycles/kernel/osl/nodes/node_convert_from_normal.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_convert_from_point.osl (renamed from intern/cycles/kernel/osl/nodes/node_convert_from_point.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_convert_from_vector.osl (renamed from intern/cycles/kernel/osl/nodes/node_convert_from_vector.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_diffuse_bsdf.osl (renamed from intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_emission.osl (renamed from intern/cycles/kernel/osl/nodes/node_emission.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_environment_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_environment_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_fresnel.h (renamed from intern/cycles/kernel/osl/nodes/node_fresnel.h) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_fresnel.osl (renamed from intern/cycles/kernel/osl/nodes/node_fresnel.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_gamma.osl (renamed from intern/cycles/kernel/osl/nodes/node_gamma.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_geometry.osl (renamed from intern/cycles/kernel/osl/nodes/node_geometry.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_glass_bsdf.osl (renamed from intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl) | 4 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_glossy_bsdf.osl (renamed from intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl) | 4 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_gradient_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_gradient_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_holdout.osl (renamed from intern/cycles/kernel/osl/nodes/node_holdout.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_hsv.osl (renamed from intern/cycles/kernel/osl/nodes/node_hsv.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_image_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_image_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_invert.osl (renamed from intern/cycles/kernel/osl/nodes/node_invert.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_layer_weight.osl (renamed from intern/cycles/kernel/osl/nodes/node_layer_weight.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_light_falloff.osl (renamed from intern/cycles/kernel/osl/nodes/node_light_falloff.osl) | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_light_path.osl (renamed from intern/cycles/kernel/osl/nodes/node_light_path.osl) | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_magic_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_magic_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_mapping.osl (renamed from intern/cycles/kernel/osl/nodes/node_mapping.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_math.osl (renamed from intern/cycles/kernel/osl/nodes/node_math.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_mix.osl (renamed from intern/cycles/kernel/osl/nodes/node_mix.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_mix_closure.osl (renamed from intern/cycles/kernel/osl/nodes/node_mix_closure.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_musgrave_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_noise_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_noise_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_normal.osl (renamed from intern/cycles/kernel/osl/nodes/node_normal.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_object_info.osl (renamed from intern/cycles/kernel/osl/nodes/node_object_info.osl) | 8 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_output_displacement.osl (renamed from intern/cycles/kernel/osl/nodes/node_output_displacement.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_output_surface.osl (renamed from intern/cycles/kernel/osl/nodes/node_output_surface.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_output_volume.osl (renamed from intern/cycles/kernel/osl/nodes/node_output_volume.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_particle_info.osl (renamed from intern/cycles/kernel/osl/nodes/node_particle_info.osl) | 14 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_rgb_ramp.osl (renamed from intern/cycles/kernel/osl/nodes/node_rgb_ramp.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_separate_rgb.osl (renamed from intern/cycles/kernel/osl/nodes/node_separate_rgb.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_set_normal.osl (renamed from intern/cycles/kernel/osl/nodes/node_set_normal.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_sky_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_sky_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_texture.h (renamed from intern/cycles/kernel/osl/nodes/node_texture.h) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_texture_coordinate.osl (renamed from intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl) | 8 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_translucent_bsdf.osl (renamed from intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_transparent_bsdf.osl (renamed from intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_value.osl (renamed from intern/cycles/kernel/osl/nodes/node_value.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_vector_math.osl (renamed from intern/cycles/kernel/osl/nodes/node_vector_math.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_velvet_bsdf.osl (renamed from intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl) | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_voronoi_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_ward_bsdf.osl (renamed from intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_wave_texture.osl (renamed from intern/cycles/kernel/osl/nodes/node_wave_texture.osl) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/oslutil.h (renamed from intern/cycles/kernel/osl/nodes/oslutil.h) | 0 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/stdosl.h (renamed from intern/cycles/kernel/osl/nodes/stdosl.h) | 71 | ||||
-rw-r--r-- | intern/cycles/render/mesh.cpp | 4 | ||||
-rw-r--r-- | intern/cycles/util/util_md5.h | 2 |
72 files changed, 122 insertions, 121 deletions
diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index 05b1f883594..e4f80cb4d5d 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -83,3 +83,4 @@ def available_devices(): def with_osl(): import _cycles return _cycles.with_osl + diff --git a/intern/cycles/blender/addon/enums.py b/intern/cycles/blender/addon/enums.py index 6cc3010eb0e..e63e1e84245 100644 --- a/intern/cycles/blender/addon/enums.py +++ b/intern/cycles/blender/addon/enums.py @@ -60,3 +60,4 @@ panorama_types = ( ('FISHEYE_EQUIDISTANT', "Fisheye Equidistant", "Ideal for fulldomes, ignore the sensor dimensions"), ('FISHEYE_EQUISOLID', "Fisheye Equisolid", "Similar to most fisheye modern lens, take sensor dimensions into consideration"), ) + diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index d24c7d4128c..82b0605ab6b 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -134,6 +134,7 @@ endif() if(WITH_CYCLES_OSL) add_subdirectory(osl) + add_subdirectory(shaders) endif() # CPU module diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h b/intern/cycles/kernel/closure/bsdf_microfacet.h index f671e858481..a564b99e759 100644 --- a/intern/cycles/kernel/closure/bsdf_microfacet.h +++ b/intern/cycles/kernel/closure/bsdf_microfacet.h @@ -45,13 +45,10 @@ __device_inline float safe_sqrtf(float f) __device int bsdf_microfacet_ggx_setup(ShaderClosure *sc) { float ag = sc->data0; - float eta = sc->data1; float m_ag = clamp(ag, 1e-4f, 1.0f); - float m_eta = eta; sc->data0 = m_ag; - sc->data1 = m_eta; sc->type = CLOSURE_BSDF_MICROFACET_GGX_ID; return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -82,7 +79,6 @@ __device void bsdf_microfacet_ggx_blur(ShaderClosure *sc, float roughness) __device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { float m_ag = sc->data0; - //float m_eta = sc->data1; int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 N = sc->N; @@ -155,7 +151,6 @@ __device float3 bsdf_microfacet_ggx_eval_transmit(const ShaderClosure *sc, const __device int bsdf_microfacet_ggx_sample(const ShaderClosure *sc, float3 Ng, float3 I, float3 dIdx, float3 dIdy, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { float m_ag = sc->data0; - float m_eta = sc->data1; int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID; float3 N = sc->N; @@ -221,6 +216,7 @@ __device int bsdf_microfacet_ggx_sample(const ShaderClosure *sc, float3 Ng, floa #ifdef __RAY_DIFFERENTIALS__ float3 dRdx, dRdy, dTdx, dTdy; #endif + float m_eta = sc->data1; bool inside; fresnel_dielectric(m_eta, m, I, &R, &T, #ifdef __RAY_DIFFERENTIALS__ @@ -274,12 +270,9 @@ __device int bsdf_microfacet_ggx_sample(const ShaderClosure *sc, float3 Ng, floa __device int bsdf_microfacet_beckmann_setup(ShaderClosure *sc) { float ab = sc->data0; - float eta = sc->data1; float m_ab = clamp(ab, 1e-4f, 1.0f); - float m_eta = eta; sc->data0 = m_ab; - sc->data1 = m_eta; sc->type = CLOSURE_BSDF_MICROFACET_BECKMANN_ID; return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_GLOSSY; @@ -309,7 +302,6 @@ __device void bsdf_microfacet_beckmann_blur(ShaderClosure *sc, float roughness) __device float3 bsdf_microfacet_beckmann_eval_reflect(const ShaderClosure *sc, const float3 I, const float3 omega_in, float *pdf) { float m_ab = sc->data0; - //float m_eta = sc->data1; int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 N = sc->N; @@ -386,7 +378,6 @@ __device float3 bsdf_microfacet_beckmann_eval_transmit(const ShaderClosure *sc, __device int bsdf_microfacet_beckmann_sample(const ShaderClosure *sc, float3 Ng, float3 I, float3 dIdx, float3 dIdy, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf) { float m_ab = sc->data0; - float m_eta = sc->data1; int m_refractive = sc->type == CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID; float3 N = sc->N; @@ -456,6 +447,7 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderClosure *sc, float3 Ng, #ifdef __RAY_DIFFERENTIALS__ float3 dRdx, dRdy, dTdx, dTdy; #endif + float m_eta = sc->data1; bool inside; fresnel_dielectric(m_eta, m, I, &R, &T, #ifdef __RAY_DIFFERENTIALS__ diff --git a/intern/cycles/kernel/kernel_triangle.h b/intern/cycles/kernel/kernel_triangle.h index 43cfa330724..e39ae1d4fbc 100644 --- a/intern/cycles/kernel/kernel_triangle.h +++ b/intern/cycles/kernel/kernel_triangle.h @@ -68,6 +68,17 @@ __device_inline float3 triangle_normal_MT(KernelGlobals *kg, int tri_index, int #endif } +/* Return 3 triangle vertex locations */ +__device_inline void triangle_vertices(KernelGlobals *kg, int tri_index, float3 P[3]) +{ + /* load triangle vertices */ + float3 tri_vindex = float4_to_float3(kernel_tex_fetch(__tri_vindex, tri_index)); + + P[0] = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.x))); + P[1] = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.y))); + P[2] = float4_to_float3(kernel_tex_fetch(__tri_verts, __float_as_int(tri_vindex.z))); +} + __device_inline float3 triangle_smooth_normal(KernelGlobals *kg, int tri_index, float u, float v) { /* load triangle vertices */ diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt index d6449b4349b..8938b16a48f 100644 --- a/intern/cycles/kernel/osl/CMakeLists.txt +++ b/intern/cycles/kernel/osl/CMakeLists.txt @@ -34,4 +34,3 @@ include_directories(SYSTEM ${INC_SYS}) add_library(cycles_kernel_osl ${SRC} ${HEADER_SRC}) -add_subdirectory(nodes) diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp index 7c415e22012..ade085c795d 100644 --- a/intern/cycles/kernel/osl/osl_services.cpp +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -345,6 +345,51 @@ static void set_attribute_float(float f[3], TypeDesc type, bool derivatives, voi } } +static bool set_attribute_int(int i, TypeDesc type, bool derivatives, void *val) +{ + if(type.basetype == TypeDesc::INT && type.aggregate == TypeDesc::SCALAR && type.arraylen == 0) { + int *ival = (int *)val; + ival[0] = i; + + if (derivatives) { + ival[1] = 0; + ival[2] = 0; + } + + return true; + } + + return false; +} + +static bool set_attribute_float3_3(float3 P[3], TypeDesc type, bool derivatives, void *val) +{ + if(type.vecsemantics == TypeDesc::POINT && type.arraylen >= 3) { + float *fval = (float *)val; + + fval[0] = P[0].x; + fval[1] = P[0].y; + fval[2] = P[0].z; + + fval[3] = P[1].x; + fval[4] = P[1].y; + fval[5] = P[1].z; + + fval[6] = P[2].x; + fval[7] = P[2].y; + fval[8] = P[2].z; + + if(type.arraylen > 3) + memset(fval + 3*3, 0, sizeof(float)*3*(type.arraylen - 3)); + if (derivatives) + memset(fval + type.arraylen*3, 0, sizeof(float)*2*3*type.arraylen); + + return true; + } + + return false; +} + static bool get_mesh_attribute(KernelGlobals *kg, const ShaderData *sd, const OSLGlobals::Attribute& attr, const TypeDesc& type, bool derivatives, void *val) { @@ -381,43 +426,45 @@ static void get_object_attribute(const OSLGlobals::Attribute& attr, bool derivat static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ustring name, TypeDesc type, bool derivatives, void *val) { + /* todo: turn this into hash table + callback once */ + /* Object Attributes */ - if (name == "std::object_location") { + if (name == "object:location") { float3 fval[3]; fval[0] = object_location(kg, sd); fval[1] = fval[2] = make_float3(0.0, 0.0, 0.0); /* derivates set to 0 */ set_attribute_float3(fval, type, derivatives, val); return true; } - else if (name == "std::object_index") { + else if (name == "object:index") { float fval[3]; fval[0] = object_pass_id(kg, sd->object); fval[1] = fval[2] = 0.0; /* derivates set to 0 */ set_attribute_float(fval, type, derivatives, val); return true; } - else if (name == "std::dupli_generated") { + else if (name == "geom:dupli_generated") { float3 fval[3]; fval[0] = object_dupli_generated(kg, sd->object); fval[1] = fval[2] = make_float3(0.0, 0.0, 0.0); /* derivates set to 0 */ set_attribute_float3(fval, type, derivatives, val); return true; } - else if (name == "std::dupli_uv") { + else if (name == "geom:dupli_uv") { float3 fval[3]; fval[0] = object_dupli_uv(kg, sd->object); fval[1] = fval[2] = make_float3(0.0, 0.0, 0.0); /* derivates set to 0 */ set_attribute_float3(fval, type, derivatives, val); return true; } - else if (name == "std::material_index") { + else if (name == "material:index") { float fval[3]; fval[0] = shader_pass_id(kg, sd); fval[1] = fval[2] = 0.0; /* derivates set to 0 */ set_attribute_float(fval, type, derivatives, val); return true; } - else if (name == "std::object_random") { + else if (name == "object:random") { float fval[3]; fval[0] = object_random_number(kg, sd->object); fval[1] = fval[2] = 0.0; /* derivates set to 0 */ @@ -426,7 +473,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust } /* Particle Attributes */ - else if (name == "std::particle_index") { + else if (name == "particle:index") { float fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_index(kg, particle_id); @@ -434,7 +481,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust set_attribute_float(fval, type, derivatives, val); return true; } - else if (name == "std::particle_age") { + else if (name == "particle:age") { float fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_age(kg, particle_id); @@ -442,7 +489,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust set_attribute_float(fval, type, derivatives, val); return true; } - else if (name == "std::particle_lifetime") { + else if (name == "particle:lifetime") { float fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_lifetime(kg, particle_id); @@ -450,7 +497,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust set_attribute_float(fval, type, derivatives, val); return true; } - else if (name == "std::particle_location") { + else if (name == "particle:location") { float3 fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_location(kg, particle_id); @@ -459,7 +506,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust return true; } #if 0 /* unsupported */ - else if (name == "std::particle_rotation") { + else if (name == "particle:rotation") { float4 fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_rotation(kg, particle_id); @@ -468,7 +515,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust return true; } #endif - else if (name == "std::particle_size") { + else if (name == "particle:size") { float fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_size(kg, particle_id); @@ -476,7 +523,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust set_attribute_float(fval, type, derivatives, val); return true; } - else if (name == "std::particle_velocity") { + else if (name == "particle:velocity") { float3 fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_velocity(kg, particle_id); @@ -484,7 +531,7 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust set_attribute_float3(fval, type, derivatives, val); return true; } - else if (name == "std::particle_angular_velocity") { + else if (name == "particle:angular_velocity") { float3 fval[3]; uint particle_id = object_particle_id(kg, sd->object); fval[0] = particle_angular_velocity(kg, particle_id); @@ -492,7 +539,17 @@ static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ust set_attribute_float3(fval, type, derivatives, val); return true; } - + else if (name == "geom:numpolyvertices") { + return set_attribute_int(3, type, derivatives, val); + } + else if (name == "geom:trianglevertices" || name == "geom:polyvertices") { + float3 P[3]; + triangle_vertices(kg, sd->prim, P); + object_position_transform(kg, sd, &P[0]); + object_position_transform(kg, sd, &P[1]); + object_position_transform(kg, sd, &P[2]); + return set_attribute_float3_3(P, type, derivatives, val); + } else return false; } @@ -501,7 +558,7 @@ static bool get_background_attribute(KernelGlobals *kg, ShaderData *sd, ustring TypeDesc type, bool derivatives, void *val) { /* Ray Length */ - if (name == "std::ray_length") { + if (name == "path:ray_length") { float fval[3]; fval[0] = sd->ray_length; fval[1] = fval[2] = 0.0; /* derivates set to 0 */ diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/shaders/CMakeLists.txt index da5441f11e0..00ab52a1d13 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/shaders/CMakeLists.txt @@ -76,11 +76,11 @@ set(SRC_OSO # TODO, add a module to compile OSL foreach(_file ${SRC_OSL}) set(_OSL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_file}) - string(REPLACE ".osl" ".oso" _OSO_FILE ${_OSL_FILE}) # TODO, replace extension only + string(REPLACE ".osl" ".oso" _OSO_FILE ${_OSL_FILE}) string(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} _OSO_FILE ${_OSO_FILE}) add_custom_command( OUTPUT ${_OSO_FILE} - COMMAND ${OSL_COMPILER} -O2 ${_OSL_FILE} + COMMAND ${OSL_COMPILER} -O2 -I"${CMAKE_CURRENT_SOURCE_DIR}" ${_OSL_FILE} DEPENDS ${_OSL_FILE} ${SRC_OSL_HEADERS}) list(APPEND SRC_OSO ${_OSO_FILE} @@ -94,3 +94,5 @@ add_custom_target(cycles_osl_shaders ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS}) # CMAKE_CURRENT_SOURCE_DIR is already included in OSO paths delayed_install("" "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader) +delayed_install("${CMAKE_CURRENT_SOURCE_DIR}" "${SRC_OSL_HEADERS}" ${CYCLES_INSTALL_PATH}/shader) + diff --git a/intern/cycles/kernel/osl/nodes/node_add_closure.osl b/intern/cycles/kernel/shaders/node_add_closure.osl index ecf6bf5912e..ecf6bf5912e 100644 --- a/intern/cycles/kernel/osl/nodes/node_add_closure.osl +++ b/intern/cycles/kernel/shaders/node_add_closure.osl diff --git a/intern/cycles/kernel/osl/nodes/node_attribute.osl b/intern/cycles/kernel/shaders/node_attribute.osl index 8e7c846d1a3..8e7c846d1a3 100644 --- a/intern/cycles/kernel/osl/nodes/node_attribute.osl +++ b/intern/cycles/kernel/shaders/node_attribute.osl diff --git a/intern/cycles/kernel/osl/nodes/node_background.osl b/intern/cycles/kernel/shaders/node_background.osl index b51a1685294..b51a1685294 100644 --- a/intern/cycles/kernel/osl/nodes/node_background.osl +++ b/intern/cycles/kernel/shaders/node_background.osl diff --git a/intern/cycles/kernel/osl/nodes/node_brick_texture.osl b/intern/cycles/kernel/shaders/node_brick_texture.osl index 478d9457001..478d9457001 100644 --- a/intern/cycles/kernel/osl/nodes/node_brick_texture.osl +++ b/intern/cycles/kernel/shaders/node_brick_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_brightness.osl b/intern/cycles/kernel/shaders/node_brightness.osl index 8e9f5c9c796..8e9f5c9c796 100644 --- a/intern/cycles/kernel/osl/nodes/node_brightness.osl +++ b/intern/cycles/kernel/shaders/node_brightness.osl diff --git a/intern/cycles/kernel/osl/nodes/node_bump.osl b/intern/cycles/kernel/shaders/node_bump.osl index 24db1b24458..24db1b24458 100644 --- a/intern/cycles/kernel/osl/nodes/node_bump.osl +++ b/intern/cycles/kernel/shaders/node_bump.osl diff --git a/intern/cycles/kernel/osl/nodes/node_camera.osl b/intern/cycles/kernel/shaders/node_camera.osl index 898ebd2bbb2..898ebd2bbb2 100644 --- a/intern/cycles/kernel/osl/nodes/node_camera.osl +++ b/intern/cycles/kernel/shaders/node_camera.osl diff --git a/intern/cycles/kernel/osl/nodes/node_checker_texture.osl b/intern/cycles/kernel/shaders/node_checker_texture.osl index 577caf308ff..577caf308ff 100644 --- a/intern/cycles/kernel/osl/nodes/node_checker_texture.osl +++ b/intern/cycles/kernel/shaders/node_checker_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_color.h b/intern/cycles/kernel/shaders/node_color.h index 80786e4e369..80786e4e369 100644 --- a/intern/cycles/kernel/osl/nodes/node_color.h +++ b/intern/cycles/kernel/shaders/node_color.h diff --git a/intern/cycles/kernel/osl/nodes/node_combine_rgb.osl b/intern/cycles/kernel/shaders/node_combine_rgb.osl index 546369f660e..546369f660e 100644 --- a/intern/cycles/kernel/osl/nodes/node_combine_rgb.osl +++ b/intern/cycles/kernel/shaders/node_combine_rgb.osl diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_color.osl b/intern/cycles/kernel/shaders/node_convert_from_color.osl index 2884c772414..2884c772414 100644 --- a/intern/cycles/kernel/osl/nodes/node_convert_from_color.osl +++ b/intern/cycles/kernel/shaders/node_convert_from_color.osl diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_float.osl b/intern/cycles/kernel/shaders/node_convert_from_float.osl index 4466fbae3a6..4466fbae3a6 100644 --- a/intern/cycles/kernel/osl/nodes/node_convert_from_float.osl +++ b/intern/cycles/kernel/shaders/node_convert_from_float.osl diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_int.osl b/intern/cycles/kernel/shaders/node_convert_from_int.osl index 060d4184fa6..060d4184fa6 100644 --- a/intern/cycles/kernel/osl/nodes/node_convert_from_int.osl +++ b/intern/cycles/kernel/shaders/node_convert_from_int.osl diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_normal.osl b/intern/cycles/kernel/shaders/node_convert_from_normal.osl index 32ef430d93b..32ef430d93b 100644 --- a/intern/cycles/kernel/osl/nodes/node_convert_from_normal.osl +++ b/intern/cycles/kernel/shaders/node_convert_from_normal.osl diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_point.osl b/intern/cycles/kernel/shaders/node_convert_from_point.osl index a9435c8abf4..a9435c8abf4 100644 --- a/intern/cycles/kernel/osl/nodes/node_convert_from_point.osl +++ b/intern/cycles/kernel/shaders/node_convert_from_point.osl diff --git a/intern/cycles/kernel/osl/nodes/node_convert_from_vector.osl b/intern/cycles/kernel/shaders/node_convert_from_vector.osl index 4516f92c753..4516f92c753 100644 --- a/intern/cycles/kernel/osl/nodes/node_convert_from_vector.osl +++ b/intern/cycles/kernel/shaders/node_convert_from_vector.osl diff --git a/intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl b/intern/cycles/kernel/shaders/node_diffuse_bsdf.osl index d6dc17316e8..d6dc17316e8 100644 --- a/intern/cycles/kernel/osl/nodes/node_diffuse_bsdf.osl +++ b/intern/cycles/kernel/shaders/node_diffuse_bsdf.osl diff --git a/intern/cycles/kernel/osl/nodes/node_emission.osl b/intern/cycles/kernel/shaders/node_emission.osl index 7ad0f9f7760..7ad0f9f7760 100644 --- a/intern/cycles/kernel/osl/nodes/node_emission.osl +++ b/intern/cycles/kernel/shaders/node_emission.osl diff --git a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl b/intern/cycles/kernel/shaders/node_environment_texture.osl index bad62e56ab4..bad62e56ab4 100644 --- a/intern/cycles/kernel/osl/nodes/node_environment_texture.osl +++ b/intern/cycles/kernel/shaders/node_environment_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_fresnel.h b/intern/cycles/kernel/shaders/node_fresnel.h index dfd0a23fe1e..dfd0a23fe1e 100644 --- a/intern/cycles/kernel/osl/nodes/node_fresnel.h +++ b/intern/cycles/kernel/shaders/node_fresnel.h diff --git a/intern/cycles/kernel/osl/nodes/node_fresnel.osl b/intern/cycles/kernel/shaders/node_fresnel.osl index e8d8e945f98..e8d8e945f98 100644 --- a/intern/cycles/kernel/osl/nodes/node_fresnel.osl +++ b/intern/cycles/kernel/shaders/node_fresnel.osl diff --git a/intern/cycles/kernel/osl/nodes/node_gamma.osl b/intern/cycles/kernel/shaders/node_gamma.osl index d55e908b0b7..d55e908b0b7 100644 --- a/intern/cycles/kernel/osl/nodes/node_gamma.osl +++ b/intern/cycles/kernel/shaders/node_gamma.osl diff --git a/intern/cycles/kernel/osl/nodes/node_geometry.osl b/intern/cycles/kernel/shaders/node_geometry.osl index a3831cbec9c..a3831cbec9c 100644 --- a/intern/cycles/kernel/osl/nodes/node_geometry.osl +++ b/intern/cycles/kernel/shaders/node_geometry.osl diff --git a/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl b/intern/cycles/kernel/shaders/node_glass_bsdf.osl index f3fcce572cf..30b9d301f32 100644 --- a/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl +++ b/intern/cycles/kernel/shaders/node_glass_bsdf.osl @@ -34,10 +34,10 @@ shader node_glass_bsdf( if (distribution == "Sharp") BSDF = Color * (Fr * reflection(Normal) + (1.0 - Fr) * refraction(Normal, eta)); else if (distribution == "Beckmann") - BSDF = Color * (Fr * microfacet_beckmann(Normal, Roughness, eta) + + BSDF = Color * (Fr * microfacet_beckmann(Normal, Roughness) + (1.0 - Fr) * microfacet_beckmann_refraction(Normal, Roughness, eta)); else if (distribution == "GGX") - BSDF = Color * (Fr * microfacet_ggx(Normal, Roughness, eta) + + BSDF = Color * (Fr * microfacet_ggx(Normal, Roughness) + (1.0 - Fr) * microfacet_ggx_refraction(Normal, Roughness, eta)); } diff --git a/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl b/intern/cycles/kernel/shaders/node_glossy_bsdf.osl index 48d61ea0ab5..03340c74af5 100644 --- a/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl +++ b/intern/cycles/kernel/shaders/node_glossy_bsdf.osl @@ -29,9 +29,9 @@ shader node_glossy_bsdf( if (distribution == "Sharp") BSDF = Color * reflection(Normal); else if (distribution == "Beckmann") - BSDF = Color * microfacet_beckmann(Normal, Roughness, 1.0); + BSDF = Color * microfacet_beckmann(Normal, Roughness); else if (distribution == "GGX") - BSDF = Color * microfacet_ggx(Normal, Roughness, 1.0); + BSDF = Color * microfacet_ggx(Normal, Roughness); } diff --git a/intern/cycles/kernel/osl/nodes/node_gradient_texture.osl b/intern/cycles/kernel/shaders/node_gradient_texture.osl index ae7cfa51f59..ae7cfa51f59 100644 --- a/intern/cycles/kernel/osl/nodes/node_gradient_texture.osl +++ b/intern/cycles/kernel/shaders/node_gradient_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_holdout.osl b/intern/cycles/kernel/shaders/node_holdout.osl index aede50c7ca0..aede50c7ca0 100644 --- a/intern/cycles/kernel/osl/nodes/node_holdout.osl +++ b/intern/cycles/kernel/shaders/node_holdout.osl diff --git a/intern/cycles/kernel/osl/nodes/node_hsv.osl b/intern/cycles/kernel/shaders/node_hsv.osl index 8fd7a1612e8..8fd7a1612e8 100644 --- a/intern/cycles/kernel/osl/nodes/node_hsv.osl +++ b/intern/cycles/kernel/shaders/node_hsv.osl diff --git a/intern/cycles/kernel/osl/nodes/node_image_texture.osl b/intern/cycles/kernel/shaders/node_image_texture.osl index 6393605e6b5..6393605e6b5 100644 --- a/intern/cycles/kernel/osl/nodes/node_image_texture.osl +++ b/intern/cycles/kernel/shaders/node_image_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_invert.osl b/intern/cycles/kernel/shaders/node_invert.osl index 27021942558..27021942558 100644 --- a/intern/cycles/kernel/osl/nodes/node_invert.osl +++ b/intern/cycles/kernel/shaders/node_invert.osl diff --git a/intern/cycles/kernel/osl/nodes/node_layer_weight.osl b/intern/cycles/kernel/shaders/node_layer_weight.osl index 3ea57f71786..3ea57f71786 100644 --- a/intern/cycles/kernel/osl/nodes/node_layer_weight.osl +++ b/intern/cycles/kernel/shaders/node_layer_weight.osl diff --git a/intern/cycles/kernel/osl/nodes/node_light_falloff.osl b/intern/cycles/kernel/shaders/node_light_falloff.osl index 3877b6d5bdc..7ffa6fe0ffb 100644 --- a/intern/cycles/kernel/osl/nodes/node_light_falloff.osl +++ b/intern/cycles/kernel/shaders/node_light_falloff.osl @@ -27,7 +27,7 @@ shader node_light_falloff( { float ray_length = 0.0; float strength = Strength; - getattribute("std::ray_length", ray_length); + getattribute("path:ray_length", ray_length); if (Smooth > 0.0) { float squared = ray_length*ray_length; diff --git a/intern/cycles/kernel/osl/nodes/node_light_path.osl b/intern/cycles/kernel/shaders/node_light_path.osl index ca92a5e6553..9e3f6c7b4a9 100644 --- a/intern/cycles/kernel/osl/nodes/node_light_path.osl +++ b/intern/cycles/kernel/shaders/node_light_path.osl @@ -36,6 +36,6 @@ shader node_light_path( IsReflectionRay = raytype("reflection"); IsTransmissionRay = raytype("refraction"); - getattribute("std::ray_length", RayLength); + getattribute("path:ray_length", RayLength); } diff --git a/intern/cycles/kernel/osl/nodes/node_magic_texture.osl b/intern/cycles/kernel/shaders/node_magic_texture.osl index e464b83bc9e..e464b83bc9e 100644 --- a/intern/cycles/kernel/osl/nodes/node_magic_texture.osl +++ b/intern/cycles/kernel/shaders/node_magic_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_mapping.osl b/intern/cycles/kernel/shaders/node_mapping.osl index 2e720edfc7e..2e720edfc7e 100644 --- a/intern/cycles/kernel/osl/nodes/node_mapping.osl +++ b/intern/cycles/kernel/shaders/node_mapping.osl diff --git a/intern/cycles/kernel/osl/nodes/node_math.osl b/intern/cycles/kernel/shaders/node_math.osl index 24dce898fd2..24dce898fd2 100644 --- a/intern/cycles/kernel/osl/nodes/node_math.osl +++ b/intern/cycles/kernel/shaders/node_math.osl diff --git a/intern/cycles/kernel/osl/nodes/node_mix.osl b/intern/cycles/kernel/shaders/node_mix.osl index 69e68e5ed15..69e68e5ed15 100644 --- a/intern/cycles/kernel/osl/nodes/node_mix.osl +++ b/intern/cycles/kernel/shaders/node_mix.osl diff --git a/intern/cycles/kernel/osl/nodes/node_mix_closure.osl b/intern/cycles/kernel/shaders/node_mix_closure.osl index e28dd1fc436..e28dd1fc436 100644 --- a/intern/cycles/kernel/osl/nodes/node_mix_closure.osl +++ b/intern/cycles/kernel/shaders/node_mix_closure.osl diff --git a/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl b/intern/cycles/kernel/shaders/node_musgrave_texture.osl index 71461b8fd79..71461b8fd79 100644 --- a/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl +++ b/intern/cycles/kernel/shaders/node_musgrave_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_noise_texture.osl b/intern/cycles/kernel/shaders/node_noise_texture.osl index 227b2bf8cea..227b2bf8cea 100644 --- a/intern/cycles/kernel/osl/nodes/node_noise_texture.osl +++ b/intern/cycles/kernel/shaders/node_noise_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_normal.osl b/intern/cycles/kernel/shaders/node_normal.osl index d5f16acb88c..d5f16acb88c 100644 --- a/intern/cycles/kernel/osl/nodes/node_normal.osl +++ b/intern/cycles/kernel/shaders/node_normal.osl diff --git a/intern/cycles/kernel/osl/nodes/node_object_info.osl b/intern/cycles/kernel/shaders/node_object_info.osl index 0d503258179..c3b1ff29f09 100644 --- a/intern/cycles/kernel/osl/nodes/node_object_info.osl +++ b/intern/cycles/kernel/shaders/node_object_info.osl @@ -24,9 +24,9 @@ shader node_object_info( output float MaterialIndex = 0.0, output float Random = 0.0) { - getattribute("std::object_location", Location); - getattribute("std::object_index", ObjectIndex); - getattribute("std::material_index", MaterialIndex); - getattribute("std::object_random", Random); + getattribute("object:location", Location); + getattribute("object:index", ObjectIndex); + getattribute("material:index", MaterialIndex); + getattribute("object:random", Random); } diff --git a/intern/cycles/kernel/osl/nodes/node_output_displacement.osl b/intern/cycles/kernel/shaders/node_output_displacement.osl index 5649b879c5b..5649b879c5b 100644 --- a/intern/cycles/kernel/osl/nodes/node_output_displacement.osl +++ b/intern/cycles/kernel/shaders/node_output_displacement.osl diff --git a/intern/cycles/kernel/osl/nodes/node_output_surface.osl b/intern/cycles/kernel/shaders/node_output_surface.osl index 6efaf91121b..6efaf91121b 100644 --- a/intern/cycles/kernel/osl/nodes/node_output_surface.osl +++ b/intern/cycles/kernel/shaders/node_output_surface.osl diff --git a/intern/cycles/kernel/osl/nodes/node_output_volume.osl b/intern/cycles/kernel/shaders/node_output_volume.osl index 18094242dc7..18094242dc7 100644 --- a/intern/cycles/kernel/osl/nodes/node_output_volume.osl +++ b/intern/cycles/kernel/shaders/node_output_volume.osl diff --git a/intern/cycles/kernel/osl/nodes/node_particle_info.osl b/intern/cycles/kernel/shaders/node_particle_info.osl index ba51ccbd953..5e59ad1a990 100644 --- a/intern/cycles/kernel/osl/nodes/node_particle_info.osl +++ b/intern/cycles/kernel/shaders/node_particle_info.osl @@ -27,12 +27,12 @@ shader node_particle_info( output vector Velocity = point(0.0, 0.0, 0.0), output vector AngularVelocity = point(0.0, 0.0, 0.0)) { - getattribute("std::particle_index", Index); - getattribute("std::particle_age", Age); - getattribute("std::particle_lifetime", Lifetime); - getattribute("std::particle_location", Location); - getattribute("std::particle_size", Size); - getattribute("std::particle_velocity", Velocity); - getattribute("std::particle_angular_velocity", AngularVelocity); + getattribute("particle:index", Index); + getattribute("particle:age", Age); + getattribute("particle:lifetime", Lifetime); + getattribute("particle:location", Location); + getattribute("particle:size", Size); + getattribute("particle:velocity", Velocity); + getattribute("particle:angular_velocity", AngularVelocity); } diff --git a/intern/cycles/kernel/osl/nodes/node_rgb_ramp.osl b/intern/cycles/kernel/shaders/node_rgb_ramp.osl index a128ebbd1cf..a128ebbd1cf 100644 --- a/intern/cycles/kernel/osl/nodes/node_rgb_ramp.osl +++ b/intern/cycles/kernel/shaders/node_rgb_ramp.osl diff --git a/intern/cycles/kernel/osl/nodes/node_separate_rgb.osl b/intern/cycles/kernel/shaders/node_separate_rgb.osl index b48bd7e59d6..b48bd7e59d6 100644 --- a/intern/cycles/kernel/osl/nodes/node_separate_rgb.osl +++ b/intern/cycles/kernel/shaders/node_separate_rgb.osl diff --git a/intern/cycles/kernel/osl/nodes/node_set_normal.osl b/intern/cycles/kernel/shaders/node_set_normal.osl index 27a4b2f5b8b..27a4b2f5b8b 100644 --- a/intern/cycles/kernel/osl/nodes/node_set_normal.osl +++ b/intern/cycles/kernel/shaders/node_set_normal.osl diff --git a/intern/cycles/kernel/osl/nodes/node_sky_texture.osl b/intern/cycles/kernel/shaders/node_sky_texture.osl index 932fb1e2f17..932fb1e2f17 100644 --- a/intern/cycles/kernel/osl/nodes/node_sky_texture.osl +++ b/intern/cycles/kernel/shaders/node_sky_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_texture.h b/intern/cycles/kernel/shaders/node_texture.h index 1b3ba8207ab..1b3ba8207ab 100644 --- a/intern/cycles/kernel/osl/nodes/node_texture.h +++ b/intern/cycles/kernel/shaders/node_texture.h diff --git a/intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl b/intern/cycles/kernel/shaders/node_texture_coordinate.osl index 405ed118c2b..791838dfffe 100644 --- a/intern/cycles/kernel/osl/nodes/node_texture_coordinate.osl +++ b/intern/cycles/kernel/shaders/node_texture_coordinate.osl @@ -44,12 +44,12 @@ shader node_texture_coordinate( } else { if (from_dupli) { - getattribute("std::dupli_generated", Generated); - getattribute("std::dupli_uv", UV); + getattribute("geom:dupli_generated", Generated); + getattribute("geom:dupli_uv", UV); } else { - getattribute("std::generated", Generated); - getattribute("std::uv", UV); + getattribute("geom:generated", Generated); + getattribute("geom:uv", UV); } Object = transform("object", P); diff --git a/intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl b/intern/cycles/kernel/shaders/node_translucent_bsdf.osl index e7efe73700c..e7efe73700c 100644 --- a/intern/cycles/kernel/osl/nodes/node_translucent_bsdf.osl +++ b/intern/cycles/kernel/shaders/node_translucent_bsdf.osl diff --git a/intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl b/intern/cycles/kernel/shaders/node_transparent_bsdf.osl index 875bce3f16c..875bce3f16c 100644 --- a/intern/cycles/kernel/osl/nodes/node_transparent_bsdf.osl +++ b/intern/cycles/kernel/shaders/node_transparent_bsdf.osl diff --git a/intern/cycles/kernel/osl/nodes/node_value.osl b/intern/cycles/kernel/shaders/node_value.osl index bee6f39f2bc..bee6f39f2bc 100644 --- a/intern/cycles/kernel/osl/nodes/node_value.osl +++ b/intern/cycles/kernel/shaders/node_value.osl diff --git a/intern/cycles/kernel/osl/nodes/node_vector_math.osl b/intern/cycles/kernel/shaders/node_vector_math.osl index f22a6e8441a..f22a6e8441a 100644 --- a/intern/cycles/kernel/osl/nodes/node_vector_math.osl +++ b/intern/cycles/kernel/shaders/node_vector_math.osl diff --git a/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl b/intern/cycles/kernel/shaders/node_velvet_bsdf.osl index 4bb4e39a1ba..3aa662bdd08 100644 --- a/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl +++ b/intern/cycles/kernel/shaders/node_velvet_bsdf.osl @@ -27,6 +27,6 @@ shader node_velvet_bsdf( { float sigma = clamp(Sigma, 0.0, 1.0); - BSDF = Color * ashikhmin_velvet(Normal, sigma, 1.0); + BSDF = Color * ashikhmin_velvet(Normal, sigma); } diff --git a/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl b/intern/cycles/kernel/shaders/node_voronoi_texture.osl index a44df00a267..a44df00a267 100644 --- a/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl +++ b/intern/cycles/kernel/shaders/node_voronoi_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl b/intern/cycles/kernel/shaders/node_ward_bsdf.osl index e204be123b8..e204be123b8 100644 --- a/intern/cycles/kernel/osl/nodes/node_ward_bsdf.osl +++ b/intern/cycles/kernel/shaders/node_ward_bsdf.osl diff --git a/intern/cycles/kernel/osl/nodes/node_wave_texture.osl b/intern/cycles/kernel/shaders/node_wave_texture.osl index 79b8a8885d1..79b8a8885d1 100644 --- a/intern/cycles/kernel/osl/nodes/node_wave_texture.osl +++ b/intern/cycles/kernel/shaders/node_wave_texture.osl diff --git a/intern/cycles/kernel/osl/nodes/oslutil.h b/intern/cycles/kernel/shaders/oslutil.h index 6c91684d9a6..6c91684d9a6 100644 --- a/intern/cycles/kernel/osl/nodes/oslutil.h +++ b/intern/cycles/kernel/shaders/oslutil.h diff --git a/intern/cycles/kernel/osl/nodes/stdosl.h b/intern/cycles/kernel/shaders/stdosl.h index e5accf4eb54..4237291c7a4 100644 --- a/intern/cycles/kernel/osl/nodes/stdosl.h +++ b/intern/cycles/kernel/shaders/stdosl.h @@ -434,81 +434,18 @@ string concat (string a, string b, string c, string d, string e, string f) { closure color diffuse(normal N) BUILTIN; closure color oren_nayar(normal N, float sigma) BUILTIN; closure color translucent(normal N) BUILTIN; -closure color reflection(normal N, float eta) BUILTIN; -closure color reflection(normal N) { return reflection (N, 0.0); } +closure color reflection(normal N) BUILTIN; closure color refraction(normal N, float eta) BUILTIN; -closure color dielectric(normal N, float eta) BUILTIN; closure color transparent() BUILTIN; -closure color microfacet_ggx(normal N, float ag, float eta) BUILTIN; +closure color microfacet_ggx(normal N, float ag) BUILTIN; closure color microfacet_ggx_refraction(normal N, float ag, float eta) BUILTIN; -closure color microfacet_beckmann(normal N, float ab, float eta) BUILTIN; +closure color microfacet_beckmann(normal N, float ab) BUILTIN; closure color microfacet_beckmann_refraction(normal N, float ab, float eta) BUILTIN; closure color ward(normal N, vector T,float ax, float ay) BUILTIN; -closure color phong(normal N, float exponent) BUILTIN; -closure color phong_ramp(normal N, float exponent, color colors[8]) BUILTIN; -closure color hair_diffuse(vector T) BUILTIN; -closure color hair_specular(vector T, float offset, float exponent) BUILTIN; -closure color ashikhmin_velvet(normal N, float sigma, float eta) BUILTIN; -closure color westin_backscatter(normal N, float roughness) BUILTIN; -closure color westin_sheen(normal N, float edginess) BUILTIN; -closure color bssrdf_cubic(color radius) BUILTIN; -closure color emission(float inner_angle, float outer_angle) BUILTIN; -closure color emission(float outer_angle) BUILTIN; +closure color ashikhmin_velvet(normal N, float sigma) BUILTIN; closure color emission() BUILTIN; -closure color debug(string tag) BUILTIN; closure color background() BUILTIN; closure color holdout() BUILTIN; -closure color subsurface(float eta, float g, color mfp, color albedo) BUILTIN; - -closure color cloth(normal N, float s, float t, float dsdx, float dtdx, float dsdy, float dtdy, - float area_scaled, vector dPdu, color diff_warp_col, color diff_weft_col, - color spec_warp_col, color spec_weft_col, float fresnel_warp, float fresnel_weft, - float spread_x_mult, float spread_y_mult, int pattern, float pattern_angle, - float warp_width_scale, float weft_width_scale, float thread_count_mult_u, - float thread_count_mult_v) BUILTIN; -closure color cloth_specular(normal N, color spec_col[4], float eta[4], int thread_pattern[4], - float pattern_weight[4], int current_thread, float brdf_interp, - float btf_interp, float uux, float vvx, float area_scaled, vector dPdu, - float eccentricity[4], float angle[4], float Kx[4], float Ky[4], - float Sx[4], float Sy[4]) BUILTIN; -closure color fakefur_diffuse(normal N, vector T, float fur_reflectivity, float fur_transmission, - float shadow_start, float shadow_end, float fur_attenuation, float fur_density, - float fur_avg_radius, float fur_length, float fur_shadow_fraction) BUILTIN; -closure color fakefur_specular(normal N, vector T, float offset, float exp, float fur_reflectivity, - float fur_transmission, float shadow_start, float shadow_end, - float fur_attenuation, float fur_density, float fur_avg_radius, - float fur_length, float fur_shadow_fraction) BUILTIN; - -closure color fakefur_skin(vector N, vector T, float fur_reflectivity, float fur_transmission, - float shadow_start, float shadow_end, float fur_attenuation, float fur_density, - float fur_avg_radius, float fur_length) BUILTIN; - - -closure color cloth(normal N, float s, float t, color diff_warp, color diff_weft, - color spec_warp, color spec_weft, float fresnel_warp, float fresnel_weft, - float spread_x_mult, float spread_y_mult, int pattern, float pattern_angle, - float warp_width_scale, float weft_width_scale, float thread_count_mult_u, - float thread_count_mult_v) -{ - - return cloth(N, s, t, Dx(s), Dx(t), Dy(s), Dy(t), area(P), dPdu, diff_warp, diff_weft, spec_warp, spec_weft, - fresnel_warp, fresnel_weft, spread_x_mult, spread_y_mult, pattern, pattern_angle, - warp_width_scale, weft_width_scale, thread_count_mult_u, thread_count_mult_v); -} - -closure color cloth(normal N, float s, float t, color diff_warp, color diff_weft, - color spec_warp, color spec_weft, float fresnel_warp, float fresnel_weft, - float spread_x_mult, float spread_y_mult, int pattern, float pattern_angle, - float warp_width_scale, float weft_width_scale, float thread_count_mult_u, - float thread_count_mult_v, string tok, string val) -{ - - return cloth(N, s, t, Dx(s), Dx(t), Dy(s), Dy(t), area(P), dPdu, diff_warp, diff_weft, spec_warp, spec_weft, - fresnel_warp, fresnel_weft, spread_x_mult, spread_y_mult, pattern, pattern_angle, - warp_width_scale, weft_width_scale, thread_count_mult_u, thread_count_mult_v, tok, val); -} - - // Renderer state int raytype (string typename) BUILTIN; diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index 3c41b4f1ad3..13c06a922cc 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -366,8 +366,8 @@ void MeshManager::update_osl_attributes(Device *device, Scene *scene, vector<Att osl_attr.type = TypeDesc::TypeColor; if(req.std != ATTR_STD_NONE) { - /* if standard attribute, add lookup by std:: name convention */ - ustring stdname(std::string("std::") + std::string(attribute_standard_name(req.std))); + /* if standard attribute, add lookup by geom: name convention */ + ustring stdname(string("geom:") + string(attribute_standard_name(req.std))); og->attribute_map[i][stdname] = osl_attr; } else if(req.name != ustring()) { diff --git a/intern/cycles/util/util_md5.h b/intern/cycles/util/util_md5.h index 43e08e64f39..aab177d9fe6 100644 --- a/intern/cycles/util/util_md5.h +++ b/intern/cycles/util/util_md5.h @@ -44,7 +44,7 @@ public: bool append_file(const string& filepath); string get_hex(); - protected: +protected: void process(const uint8_t *data); void finish(uint8_t digest[16]); |