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:
authorKarsten Schwenk <macnihilist@gmx.net>2014-06-08 14:16:28 +0400
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2014-06-14 15:49:57 +0400
commit8ce1090d4e8160165281be4b0827dbc1ba28dc8a (patch)
treee65ed8a8bcebab84c50da6a286fa845c6a8ae92e /intern/cycles/kernel/shaders
parentf5cb0cf1a50350e32b6fec5056f23a20606c7ea0 (diff)
Cycles: Ashikhmin-Shirley anisotropic BSDF
* Ashikhmin-Shirley anisotropic BSDF was added as closure * Anisotropic BSDF node now has two distributions Reviewers: brecht, dingto Differential Revision: https://developer.blender.org/D549
Diffstat (limited to 'intern/cycles/kernel/shaders')
-rw-r--r--intern/cycles/kernel/shaders/CMakeLists.txt2
-rw-r--r--intern/cycles/kernel/shaders/node_anisotropic_bsdf.osl (renamed from intern/cycles/kernel/shaders/node_ward_bsdf.osl)8
-rw-r--r--intern/cycles/kernel/shaders/stdosl.h1
3 files changed, 8 insertions, 3 deletions
diff --git a/intern/cycles/kernel/shaders/CMakeLists.txt b/intern/cycles/kernel/shaders/CMakeLists.txt
index b164c2a03f7..0b735ede701 100644
--- a/intern/cycles/kernel/shaders/CMakeLists.txt
+++ b/intern/cycles/kernel/shaders/CMakeLists.txt
@@ -4,6 +4,7 @@
set(SRC_OSL
node_add_closure.osl
node_ambient_occlusion.osl
+ node_anisotropic_bsdf.osl
node_attribute.osl
node_background.osl
node_brick_texture.osl
@@ -73,7 +74,6 @@ set(SRC_OSL
node_vector_transform.osl
node_velvet_bsdf.osl
node_voronoi_texture.osl
- node_ward_bsdf.osl
node_wavelength.osl
node_blackbody.osl
node_wave_texture.osl
diff --git a/intern/cycles/kernel/shaders/node_ward_bsdf.osl b/intern/cycles/kernel/shaders/node_anisotropic_bsdf.osl
index 2d360d594f2..3ecf5b46bef 100644
--- a/intern/cycles/kernel/shaders/node_ward_bsdf.osl
+++ b/intern/cycles/kernel/shaders/node_anisotropic_bsdf.osl
@@ -16,8 +16,9 @@
#include "stdosl.h"
-shader node_ward_bsdf(
+shader node_anisotropic_bsdf(
color Color = 0.0,
+ string distribution = "Ward",
float Roughness = 0.0,
float Anisotropy = 0.0,
float Rotation = 0.0,
@@ -44,6 +45,9 @@ shader node_ward_bsdf(
RoughnessV = Roughness / (1.0 - aniso);
}
- BSDF = Color * ward(Normal, T, RoughnessU, RoughnessV);
+ if (distribution == "Ashikhmin-Shirley")
+ BSDF = Color * ashikhmin_shirley(Normal, T, RoughnessU, RoughnessV);
+ else
+ BSDF = Color * ward(Normal, T, RoughnessU, RoughnessV);
}
diff --git a/intern/cycles/kernel/shaders/stdosl.h b/intern/cycles/kernel/shaders/stdosl.h
index 6f824ea8ebd..20ee4a3df32 100644
--- a/intern/cycles/kernel/shaders/stdosl.h
+++ b/intern/cycles/kernel/shaders/stdosl.h
@@ -486,6 +486,7 @@ 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) BUILTIN;
closure color microfacet_beckmann_refraction(normal N, float ab, float eta) BUILTIN;
+closure color ashikhmin_shirley(normal N, vector T,float ax, float ay) BUILTIN;
closure color ward(normal N, vector T,float ax, float ay) BUILTIN;
closure color ashikhmin_velvet(normal N, float sigma) BUILTIN;
closure color emission() BUILTIN;