style cleanup: make OSL follow our C style convention. http://wiki.blender.org/index.php/Dev:Doc/CodeStyle

This commit is contained in:
2012-10-17 01:47:37 +00:00
parent a1af01249d
commit aeda5142ef
41 changed files with 326 additions and 309 deletions

View File

@@ -167,8 +167,10 @@ help:
@echo " * test_cmake - runs our own cmake file checker which detects errors in the cmake file list definitions" @echo " * test_cmake - runs our own cmake file checker which detects errors in the cmake file list definitions"
@echo " * test_pep8 - checks all python script are pep8 which are tagged to use the stricter formatting" @echo " * test_pep8 - checks all python script are pep8 which are tagged to use the stricter formatting"
@echo " * test_deprecated - checks for deprecation tags in our code which may need to be removed" @echo " * test_deprecated - checks for deprecation tags in our code which may need to be removed"
@echo " * test_style - checks C/C++ conforms with blenders style guide: http://wiki.blender.org/index.php/Dev:Doc/CodeStyle" @echo " * test_style_c - checks C/C++ conforms with blenders style guide: http://wiki.blender.org/index.php/Dev:Doc/CodeStyle"
@echo " * test_style_qtc - same as test_style but outputs QtCreator tasks format" @echo " * test_style_c_qtc - same as test_style but outputs QtCreator tasks format"
@echo " * test_style_osl - checks OpenShadingLanguage conforms with blenders style guide: http://wiki.blender.org/index.php/Dev:Doc/CodeStyle"
@echo " * test_style_osl_qtc - checks OpenShadingLanguage conforms with blenders style guide: http://wiki.blender.org/index.php/Dev:Doc/CodeStyle"
@echo "" @echo ""
@echo "Static Source Code Checking (not associated with building blender)" @echo "Static Source Code Checking (not associated with building blender)"
@echo " * check_cppcheck - run blender source through cppcheck (C & C++)" @echo " * check_cppcheck - run blender source through cppcheck (C & C++)"
@@ -211,28 +213,40 @@ test:
# run pep8 check check on scripts we distribute. # run pep8 check check on scripts we distribute.
test_pep8: test_pep8:
python3.2 source/tests/pep8.py > test_pep8.log 2>&1 python3 source/tests/pep8.py > test_pep8.log 2>&1
@echo "written: test_pep8.log" @echo "written: test_pep8.log"
# run some checks on our cmakefiles. # run some checks on our cmakefiles.
test_cmake: test_cmake:
python3.2 build_files/cmake/cmake_consistency_check.py > test_cmake_consistency.log 2>&1 python3 build_files/cmake/cmake_consistency_check.py > test_cmake_consistency.log 2>&1
@echo "written: test_cmake_consistency.log" @echo "written: test_cmake_consistency.log"
# run deprecation tests, see if we have anything to remove. # run deprecation tests, see if we have anything to remove.
test_deprecated: test_deprecated:
python3.2 source/tests/check_deprecated.py python3 source/tests/check_deprecated.py
test_style: test_style_c:
# run our own checks on C/C++ style # run our own checks on C/C++ style
PYTHONIOENCODING=utf_8 python3.2 $(BLENDER_DIR)/source/tools/check_style_c.py $(BLENDER_DIR)/source/blender $(BLENDER_DIR)/source/creator --no-length-check PYTHONIOENCODING=utf_8 python3 $(BLENDER_DIR)/source/tools/check_style_c.py $(BLENDER_DIR)/source/blender $(BLENDER_DIR)/source/creator --no-length-check
test_style_qtc: test_style_c_qtc:
# run our own checks on C/C++ style # run our own checks on C/C++ style
USE_QTC_TASK=1 \ USE_QTC_TASK=1 \
PYTHONIOENCODING=utf_8 python3.2 $(BLENDER_DIR)/source/tools/check_style_c.py $(BLENDER_DIR)/source/blender $(BLENDER_DIR)/source/creator --no-length-check > \ PYTHONIOENCODING=utf_8 python3 $(BLENDER_DIR)/source/tools/check_style_c.py $(BLENDER_DIR)/source/blender $(BLENDER_DIR)/source/creator --no-length-check > \
test_style.tasks test_style.tasks
@echo "written: test_style.tasks"
test_style_osl:
# run our own checks on C/C++ style
PYTHONIOENCODING=utf_8 python3 $(BLENDER_DIR)/source/tools/check_style_c.py $(BLENDER_DIR)/intern/cycles/kernel/osl
test_style_osl_qtc:
# run our own checks on C/C++ style
USE_QTC_TASK=1 \
PYTHONIOENCODING=utf_8 python3 $(BLENDER_DIR)/source/tools/check_style_c.py $(BLENDER_DIR)/intern/cycles/kernel/osl > \
test_style.tasks
@echo "written: test_style.tasks" @echo "written: test_style.tasks"
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@@ -240,10 +254,10 @@ test_style_qtc:
# #
project_qtcreator: project_qtcreator:
python3.2 build_files/cmake/cmake_qtcreator_project.py $(BUILD_DIR) python3 build_files/cmake/cmake_qtcreator_project.py $(BUILD_DIR)
project_netbeans: project_netbeans:
python3.2 build_files/cmake/cmake_netbeans_project.py $(BUILD_DIR) python3 build_files/cmake/cmake_netbeans_project.py $(BUILD_DIR)
project_eclipse: project_eclipse:
cmake -G"Eclipse CDT4 - Unix Makefiles" -H$(BLENDER_DIR) -B$(BUILD_DIR) cmake -G"Eclipse CDT4 - Unix Makefiles" -H$(BLENDER_DIR) -B$(BUILD_DIR)
@@ -255,29 +269,29 @@ project_eclipse:
check_cppcheck: check_cppcheck:
$(CMAKE_CONFIG) $(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_cppcheck.py cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_cppcheck.py
check_clang_array: check_clang_array:
$(CMAKE_CONFIG) $(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_clang_array.py cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_clang_array.py
check_splint: check_splint:
$(CMAKE_CONFIG) $(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_splint.py cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_splint.py
check_sparse: check_sparse:
$(CMAKE_CONFIG) $(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py
check_smatch: check_smatch:
$(CMAKE_CONFIG) $(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_smatch.py cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_smatch.py
check_spelling_py: check_spelling_py:
cd $(BUILD_DIR) ; PYTHONIOENCODING=utf_8 python3.2 $(BLENDER_DIR)/source/tools/spell_check_source.py $(BLENDER_DIR)/release/scripts cd $(BUILD_DIR) ; PYTHONIOENCODING=utf_8 python3 $(BLENDER_DIR)/source/tools/spell_check_source.py $(BLENDER_DIR)/release/scripts
check_spelling_c: check_spelling_c:
cd $(BUILD_DIR) ; PYTHONIOENCODING=utf_8 python3.2 $(BLENDER_DIR)/source/tools/spell_check_source.py $(BLENDER_DIR)/source cd $(BUILD_DIR) ; PYTHONIOENCODING=utf_8 python3 $(BLENDER_DIR)/source/tools/spell_check_source.py $(BLENDER_DIR)/source
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@@ -310,7 +324,7 @@ doc_dna:
@echo "docs written into: '$(BLENDER_DIR)/doc/blender_file_format/dna.html'" @echo "docs written into: '$(BLENDER_DIR)/doc/blender_file_format/dna.html'"
doc_man: doc_man:
python3.2 doc/manpage/blender.1.py $(BUILD_DIR)/bin/blender python3 doc/manpage/blender.1.py $(BUILD_DIR)/bin/blender
clean: clean:

View File

@@ -112,7 +112,7 @@ def is_glsl(filename):
def is_c(filename): def is_c(filename):
ext = splitext(filename)[1] ext = splitext(filename)[1]
return (ext in (".c", ".cpp", ".cxx", ".m", ".mm", ".rc", ".cc", ".inl")) return (ext in {".c", ".cpp", ".cxx", ".m", ".mm", ".rc", ".cc", ".inl", ".osl"})
def is_c_any(filename): def is_c_any(filename):

View File

@@ -48,7 +48,7 @@ def is_c_header(filename):
def is_c(filename): def is_c(filename):
ext = os.path.splitext(filename)[1] ext = os.path.splitext(filename)[1]
return (ext in (".c", ".cpp", ".cxx", ".m", ".mm", ".rc", ".cc", ".inl")) return (ext in {".c", ".cpp", ".cxx", ".m", ".mm", ".rc", ".cc", ".inl", ".osl"})
def is_c_any(filename): def is_c_any(filename):

View File

@@ -29,12 +29,12 @@ shader node_attribute(
Vector = point(Color); Vector = point(Color);
getattribute(name, Fac); getattribute(name, Fac);
if(bump_offset == "dx") { if (bump_offset == "dx") {
Color += Dx(Color); Color += Dx(Color);
Vector += Dx(Vector); Vector += Dx(Vector);
Fac += Dx(Fac); Fac += Dx(Fac);
} }
else if(bump_offset == "dy") { else if (bump_offset == "dy") {
Color += Dy(Color); Color += Dy(Color);
Vector += Dy(Vector); Vector += Dy(Vector);
Fac += Dy(Fac); Fac += Dy(Fac);

View File

@@ -23,6 +23,6 @@ shader node_background(
float Strength = 1.0, float Strength = 1.0,
output closure color Background = background()) output closure color Background = background())
{ {
Background = Color*Strength*background(); Background = Color * Strength * background();
} }

View File

@@ -26,13 +26,13 @@ shader node_blend_weight(
output float Facing = 0.0) output float Facing = 0.0)
{ {
float f = max(1.0 - Blend, 1e-5); float f = max(1.0 - Blend, 1e-5);
Fresnel = fresnel_dielectric(I, Normal, backfacing()? f: 1.0/f); Fresnel = fresnel_dielectric(I, Normal, backfacing()? f: 1.0 / f);
Facing = abs(dot(I, Normal)); Facing = abs(dot(I, Normal));
if(Blend != 0.5) { if (Blend != 0.5) {
Blend = clamp(Blend, 0.0, 1.0); Blend = clamp(Blend, 0.0, 1.0);
Blend = (Blend < 0.5)? 2.0*Blend: 0.5/(1.0 - Blend); Blend = (Blend < 0.5)? 2.0 * Blend: 0.5 / (1.0 - Blend);
Facing = powf(Facing, Blend); Facing = powf(Facing, Blend);
} }

View File

@@ -40,15 +40,15 @@ float brick(point p, float mortar_size, float bias,
rownum = (int)floor(p[1] / row_height); rownum = (int)floor(p[1] / row_height);
if(offset_frequency && squash_frequency) { if (offset_frequency && squash_frequency) {
brick_width *= ((int)(rownum) % squash_frequency ) ? 1.0 : squash_amount; /* squash */ brick_width *= ((int)(rownum) % squash_frequency ) ? 1.0 : squash_amount; /* squash */
offset = ((int)(rownum) % offset_frequency ) ? 0 : (brick_width*offset_amount); /* offset */ offset = ((int)(rownum) % offset_frequency ) ? 0 : (brick_width * offset_amount); /* offset */
} }
bricknum = (int)floor((p[0]+offset) / brick_width); bricknum = (int)floor((p[0] + offset) / brick_width);
x = (p[0]+offset) - brick_width*bricknum; x = (p[0] + offset) - brick_width * bricknum;
y = p[1] - row_height*rownum; y = p[1] - row_height * rownum;
tint = clamp((brick_noise((rownum << 16) + (bricknum & 65535)) + bias), 0.0, 1.0); tint = clamp((brick_noise((rownum << 16) + (bricknum & 65535)) + bias), 0.0, 1.0);
@@ -77,10 +77,10 @@ shader node_brick_texture(
float tint = 0.0; float tint = 0.0;
color Col = Color1; color Col = Color1;
Fac = brick(Vector*Scale, MortarSize, Bias, BrickWidth, RowHeight, Fac = brick(Vector * Scale, MortarSize, Bias, BrickWidth, RowHeight,
Offset, OffsetFrequency, Squash, SquashFrequency, tint); Offset, OffsetFrequency, Squash, SquashFrequency, tint);
if(Fac != 1.0) { if (Fac != 1.0) {
float facm = 1.0 - tint; float facm = 1.0 - tint;
Col[0] = facm * (Color1[0]) + tint * Color2[0]; Col[0] = facm * (Color1[0]) + tint * Color2[0];
@@ -89,6 +89,5 @@ shader node_brick_texture(
} }
Color = (Fac == 1.0) ? Mortar: Col; Color = (Fac == 1.0) ? Mortar: Col;
} }

View File

@@ -24,7 +24,7 @@ shader node_brightness(
float Contrast = 0.0, float Contrast = 0.0,
output color ColorOut = color(0.8, 0.8, 0.8)) output color ColorOut = color(0.8, 0.8, 0.8))
{ {
float delta = Contrast * (1.0/200.0); float delta = Contrast * (1.0 / 200.0);
float a = 1.0 - delta * 2.0; float a = 1.0 - delta * 2.0;
float b; float b;
@@ -38,7 +38,7 @@ shader node_brightness(
*/ */
if (Contrast > 0.0) { if (Contrast > 0.0) {
a = (a < 0.0 ? 1.0/a : 0.0); a = (a < 0.0 ? 1.0 / a : 0.0);
b = a * (bright_factor - delta); b = a * (bright_factor - delta);
} }
else { else {

View File

@@ -37,10 +37,10 @@ surface node_bump(
vector Ry = cross(N, dPdx); vector Ry = cross(N, dPdx);
float det = dot(dPdx, Rx); float det = dot(dPdx, Rx);
vector surfgrad = dx*Rx + dy*Ry; vector surfgrad = dx * Rx + dy * Ry;
surfgrad *= 0.1; /* todo: remove this factor */ surfgrad *= 0.1; /* todo: remove this factor */
Normal = normalize(abs(det)*N - sign(det)*surfgrad); Normal = normalize(abs(det) * N - sign(det) * surfgrad);
} }

View File

@@ -23,15 +23,15 @@
float checker(point p) float checker(point p)
{ {
p[0] = (p[0] + 0.00001)*0.9999; p[0] = (p[0] + 0.00001) * 0.9999;
p[1] = (p[1] + 0.00001)*0.9999; p[1] = (p[1] + 0.00001) * 0.9999;
p[2] = (p[2] + 0.00001)*0.9999; p[2] = (p[2] + 0.00001) * 0.9999;
int xi = (int)fabs(floor(p[0])); int xi = (int)fabs(floor(p[0]));
int yi = (int)fabs(floor(p[1])); int yi = (int)fabs(floor(p[1]));
int zi = (int)fabs(floor(p[2])); int zi = (int)fabs(floor(p[2]));
if((xi % 2 == yi % 2) == (zi % 2)) { if ((xi % 2 == yi % 2) == (zi % 2)) {
return 1.0; return 1.0;
} }
else { else {
@@ -47,8 +47,8 @@ shader node_checker_texture(
output float Fac = 0.0, output float Fac = 0.0,
output color Color = color(0.0, 0.0, 0.0)) output color Color = color(0.0, 0.0, 0.0))
{ {
Fac = checker(Vector*Scale); Fac = checker(Vector * Scale);
if(Fac == 1.0) { if (Fac == 1.0) {
Color = Color1; Color = Color1;
} }
else { else {

View File

@@ -25,7 +25,7 @@ shader node_convert_from_color(
output point Point = point(0.0, 0.0, 0.0), output point Point = point(0.0, 0.0, 0.0),
output normal Normal = normal(0.0, 0.0, 0.0)) output normal Normal = normal(0.0, 0.0, 0.0))
{ {
Val = Color[0]*0.2126 + Color[1]*0.7152 + Color[2]*0.0722; Val = Color[0] * 0.2126 + Color[1] * 0.7152 + Color[2] * 0.0722;
Vector = vector(Color[0], Color[1], Color[2]); Vector = vector(Color[0], Color[1], Color[2]);
Point = point(Color[0], Color[1], Color[2]); Point = point(Color[0], Color[1], Color[2]);
Normal = normal(Color[0], Color[1], Color[2]); Normal = normal(Color[0], Color[1], Color[2]);

View File

@@ -25,7 +25,7 @@ shader node_convert_from_normal(
output color Color = color(0.0, 0.0, 0.0), output color Color = color(0.0, 0.0, 0.0),
output point Point = point(0.0, 0.0, 0.0)) output point Point = point(0.0, 0.0, 0.0))
{ {
Val = (Normal[0] + Normal[1] + Normal[2])*(1.0/3.0); Val = (Normal[0] + Normal[1] + Normal[2]) * (1.0 / 3.0);
Vector = vector(Normal[0], Normal[1], Normal[2]); Vector = vector(Normal[0], Normal[1], Normal[2]);
Color = color(Normal[0], Normal[1], Normal[2]); Color = color(Normal[0], Normal[1], Normal[2]);
Point = point(Normal[0], Normal[1], Normal[2]); Point = point(Normal[0], Normal[1], Normal[2]);

View File

@@ -25,7 +25,7 @@ shader node_convert_from_point(
output color Color = color(0.0, 0.0, 0.0), output color Color = color(0.0, 0.0, 0.0),
output normal Normal = normal(0.0, 0.0, 0.0)) output normal Normal = normal(0.0, 0.0, 0.0))
{ {
Val = (Point[0] + Point[1] + Point[2])*(1.0/3.0); Val = (Point[0] + Point[1] + Point[2]) * (1.0 / 3.0);
Vector = vector(Point[0], Point[1], Point[2]); Vector = vector(Point[0], Point[1], Point[2]);
Color = color(Point[0], Point[1], Point[2]); Color = color(Point[0], Point[1], Point[2]);
Normal = normal(Point[0], Point[1], Point[2]); Normal = normal(Point[0], Point[1], Point[2]);

View File

@@ -25,7 +25,7 @@ shader node_convert_from_vector(
output point Point = point(0.0, 0.0, 0.0), output point Point = point(0.0, 0.0, 0.0),
output normal Normal = normal(0.0, 0.0, 0.0)) output normal Normal = normal(0.0, 0.0, 0.0))
{ {
Val = (Vector[0] + Vector[1] + Vector[2])*(1.0/3.0); Val = (Vector[0] + Vector[1] + Vector[2]) * (1.0 / 3.0);
Color = color(Vector[0], Vector[1], Vector[2]); Color = color(Vector[0], Vector[1], Vector[2]);
Point = point(Vector[0], Vector[1], Vector[2]); Point = point(Vector[0], Vector[1], Vector[2]);
Normal = normal(Vector[0], Vector[1], Vector[2]); Normal = normal(Vector[0], Vector[1], Vector[2]);

View File

@@ -24,7 +24,7 @@ shader node_diffuse_bsdf(
normal Normal = N, normal Normal = N,
output closure color BSDF = diffuse(Normal)) output closure color BSDF = diffuse(Normal))
{ {
if(Roughness == 0.0) if (Roughness == 0.0)
BSDF = Color * diffuse(Normal); BSDF = Color * diffuse(Normal);
else else
BSDF = Color * oren_nayar(Normal, Roughness); BSDF = Color * oren_nayar(Normal, Roughness);

View File

@@ -24,9 +24,9 @@ shader node_emission(
float Strength = 1.0, float Strength = 1.0,
output closure color Emission = emission()) output closure color Emission = emission())
{ {
if(TotalPower) if (TotalPower)
Emission = ((Strength/surfacearea())*Color)*emission(); Emission = ((Strength / surfacearea()) * Color) * emission();
else else
Emission = (Strength*Color)*emission(); Emission = (Strength * Color) * emission();
} }

View File

@@ -28,7 +28,7 @@ shader node_environment_texture(
{ {
Color = (color)environment(filename, Vector, "alpha", Alpha); Color = (color)environment(filename, Vector, "alpha", Alpha);
if(color_space == "sRGB") if (color_space == "sRGB")
Color = color_srgb_to_scene_linear(Color); Color = color_srgb_to_scene_linear(Color);
} }

View File

@@ -25,7 +25,7 @@ shader node_fresnel(
output float Fac = 0.0) output float Fac = 0.0)
{ {
float f = max(IOR, 1.0 + 1e-5); float f = max(IOR, 1.0 + 1e-5);
float eta = backfacing()? 1.0/f: f; float eta = backfacing()? 1.0 / f: f;
Fac = fresnel_dielectric(I, Normal, eta); Fac = fresnel_dielectric(I, Normal, eta);
} }

View File

@@ -38,11 +38,11 @@ shader node_geometry(
Parametric = point(u, v, 0.0); Parametric = point(u, v, 0.0);
Backfacing = backfacing(); Backfacing = backfacing();
if(bump_offset == "dx") { if (bump_offset == "dx") {
Position += Dx(Position); Position += Dx(Position);
Parametric += Dx(Parametric); Parametric += Dx(Parametric);
} }
else if(bump_offset == "dy") { else if (bump_offset == "dy") {
Position += Dy(Position); Position += Dy(Position);
Parametric += Dy(Parametric); Parametric += Dy(Parametric);
} }

View File

@@ -28,14 +28,16 @@ shader node_glass_bsdf(
output closure color BSDF = diffuse(Normal)) output closure color BSDF = diffuse(Normal))
{ {
float f = max(IOR, 1.0 + 1e-5); float f = max(IOR, 1.0 + 1e-5);
float eta = backfacing()? 1.0/f: f; float eta = backfacing()? 1.0 / f: f;
float Fr = fresnel_dielectric(I, Normal, eta); float Fr = fresnel_dielectric(I, Normal, eta);
if(distribution == "Sharp") if (distribution == "Sharp")
BSDF = Color*(Fr*reflection(Normal) + (1.0-Fr)*refraction(Normal, eta)); BSDF = Color * (Fr * reflection(Normal) + (1.0 - Fr) * refraction(Normal, eta));
else if(distribution == "Beckmann") else if (distribution == "Beckmann")
BSDF = Color*(Fr*microfacet_beckmann(Normal, Roughness, eta) + (1.0-Fr)*microfacet_beckmann_refraction(Normal, Roughness, eta)); BSDF = Color * (Fr * microfacet_beckmann(Normal, Roughness, eta) +
else if(distribution == "GGX") (1.0 - Fr) * microfacet_beckmann_refraction(Normal, Roughness, eta));
BSDF = Color*(Fr*microfacet_ggx(Normal, Roughness, eta) + (1.0-Fr)*microfacet_ggx_refraction(Normal, Roughness, eta)); else if (distribution == "GGX")
BSDF = Color * (Fr * microfacet_ggx(Normal, Roughness, eta) +
(1.0 - Fr) * microfacet_ggx_refraction(Normal, Roughness, eta));
} }

View File

@@ -26,12 +26,12 @@ shader node_glossy_bsdf(
normal Normal = N, normal Normal = N,
output closure color BSDF = diffuse(Normal)) output closure color BSDF = diffuse(Normal))
{ {
if(distribution == "Sharp") if (distribution == "Sharp")
BSDF = Color*reflection(Normal); BSDF = Color * reflection(Normal);
else if(distribution == "Beckmann") else if (distribution == "Beckmann")
BSDF = Color*microfacet_beckmann(Normal, Roughness, 1.0); BSDF = Color * microfacet_beckmann(Normal, Roughness, 1.0);
else if(distribution == "GGX") else if (distribution == "GGX")
BSDF = Color*microfacet_ggx(Normal, Roughness, 1.0); BSDF = Color * microfacet_ggx(Normal, Roughness, 1.0);
} }

View File

@@ -31,31 +31,31 @@ float gradient(point p, string type)
float result = 0.0; float result = 0.0;
if(type == "Linear") { if (type == "Linear") {
result = x; result = x;
} }
else if(type == "Quadratic") { else if (type == "Quadratic") {
float r = max(x, 0.0); float r = max(x, 0.0);
result = r*r; result = r * r;
} }
else if(type == "Easing") { else if (type == "Easing") {
float r = min(max(x, 0.0), 1.0); float r = min(max(x, 0.0), 1.0);
float t = r*r; float t = r * r;
result = (3.0*t - 2.0*t*r); result = (3.0 * t - 2.0 * t * r);
} }
else if(type == "Diagonal") { else if (type == "Diagonal") {
result = (x + y)/2.0; result = (x + y) / 2.0;
} }
else if(type == "Radial") { else if (type == "Radial") {
result = atan2(y, x)/(2.0*M_PI) + 0.5; result = atan2(y, x) / (2.0 * M_PI) + 0.5;
} }
else { else {
float r = max(1.0 - sqrt(x*x + y*y + z*z), 0.0); float r = max(1.0 - sqrt(x * x + y * y + z * z), 0.0);
if(type == "Quadratic Sphere") if (type == "Quadratic Sphere")
result = r*r; result = r * r;
else if(type == "Spherical") else if (type == "Spherical")
result = r; result = r;
} }

View File

@@ -26,9 +26,9 @@ shader node_image_texture(
output color Color = color(0.0, 0.0, 0.0), output color Color = color(0.0, 0.0, 0.0),
output float Alpha = 1.0) output float Alpha = 1.0)
{ {
Color = (color)texture(filename, Vector[0], 1.0-Vector[1], "wrap", "periodic", "alpha", Alpha); Color = (color)texture(filename, Vector[0], 1.0 - Vector[1], "wrap", "periodic", "alpha", Alpha);
if(color_space == "sRGB") if (color_space == "sRGB")
Color = color_srgb_to_scene_linear(Color); Color = color_srgb_to_scene_linear(Color);
} }

View File

@@ -25,51 +25,51 @@ color magic(point p, int n, float distortion)
{ {
float dist = distortion; float dist = distortion;
float x = sin((p[0] + p[1] + p[2])*5.0); float x = sin(( p[0] + p[1] + p[2]) * 5.0);
float y = cos((-p[0] + p[1] - p[2])*5.0); float y = cos((-p[0] + p[1] - p[2]) * 5.0);
float z = -cos((-p[0] - p[1] + p[2])*5.0); float z = -cos((-p[0] - p[1] + p[2]) * 5.0);
if(n > 0) { if (n > 0) {
x *= dist; x *= dist;
y *= dist; y *= dist;
z *= dist; z *= dist;
y = -cos(x-y+z); y = -cos(x - y + z);
y *= dist; y *= dist;
if(n > 1) { if (n > 1) {
x = cos(x-y-z); x = cos(x - y - z);
x *= dist; x *= dist;
if(n > 2) { if (n > 2) {
z = sin(-x-y-z); z = sin(-x - y - z);
z *= dist; z *= dist;
if(n > 3) { if (n > 3) {
x = -cos(-x+y-z); x = -cos(-x + y - z);
x *= dist; x *= dist;
if(n > 4) { if (n > 4) {
y = -sin(-x+y+z); y = -sin(-x + y + z);
y *= dist; y *= dist;
if(n > 5) { if (n > 5) {
y = -cos(-x+y+z); y = -cos(-x + y + z);
y *= dist; y *= dist;
if(n > 6) { if (n > 6) {
x = cos(x+y+z); x = cos(x + y + z);
x *= dist; x *= dist;
if(n > 7) { if (n > 7) {
z = sin(x+y-z); z = sin(x + y - z);
z *= dist; z *= dist;
if(n > 8) { if (n > 8) {
x = -cos(-x-y+z); x = -cos(-x - y + z);
x *= dist; x *= dist;
if(n > 9) { if (n > 9) {
y = -sin(x-y+z); y = -sin(x - y + z);
y *= dist; y *= dist;
} }
} }
@@ -82,7 +82,7 @@ color magic(point p, int n, float distortion)
} }
} }
if(dist != 0.0) { if (dist != 0.0) {
dist *= 2.0; dist *= 2.0;
x /= dist; x /= dist;
y /= dist; y /= dist;
@@ -99,6 +99,6 @@ shader node_magic_texture(
point Vector = P, point Vector = P,
output color Color = color(0.0, 0.0, 0.0)) output color Color = color(0.0, 0.0, 0.0))
{ {
Color = magic(Vector*Scale, Depth, Distortion); Color = magic(Vector * Scale, Depth, Distortion);
} }

View File

@@ -22,20 +22,20 @@ float safe_divide(float a, float b)
{ {
float result; float result;
if(b == 0.0) if (b == 0.0)
result = 0.0; result = 0.0;
else else
result = a/b; result = a / b;
return result; return result;
} }
float safe_log(float a, float b) float safe_log(float a, float b)
{ {
if(a < 0.0 || b < 0.0) if (a < 0.0 || b < 0.0)
return 0.0; return 0.0;
return log(a)/log(b); return log(a) / log(b);
} }
shader node_math( shader node_math(
@@ -47,42 +47,42 @@ shader node_math(
{ {
/* OSL asin, acos, pow check for values that could give rise to nan */ /* OSL asin, acos, pow check for values that could give rise to nan */
if(type == "Add") if (type == "Add")
Value = Value1 + Value2; Value = Value1 + Value2;
if(type == "Subtract") if (type == "Subtract")
Value = Value1 - Value2; Value = Value1 - Value2;
if(type == "Multiply") if (type == "Multiply")
Value = Value1*Value2; Value = Value1 * Value2;
if(type == "Divide") if (type == "Divide")
Value = safe_divide(Value1, Value2); Value = safe_divide(Value1, Value2);
if(type == "Sine") if (type == "Sine")
Value = sin(Value1); Value = sin(Value1);
if(type == "Cosine") if (type == "Cosine")
Value = cos(Value1); Value = cos(Value1);
if(type == "Tangent") if (type == "Tangent")
Value = tan(Value1); Value = tan(Value1);
if(type == "Arcsine") if (type == "Arcsine")
Value = asin(Value1); Value = asin(Value1);
if(type == "Arccosine") if (type == "Arccosine")
Value = acos(Value1); Value = acos(Value1);
if(type == "Arctangent") if (type == "Arctangent")
Value = atan(Value1); Value = atan(Value1);
if(type == "Power") if (type == "Power")
Value = pow(Value1, Value2); Value = pow(Value1, Value2);
if(type == "Logarithm") if (type == "Logarithm")
Value = safe_log(Value1, Value2); Value = safe_log(Value1, Value2);
if(type == "Minimum") if (type == "Minimum")
Value = min(Value1, Value2); Value = min(Value1, Value2);
if(type == "Maximum") if (type == "Maximum")
Value = max(Value1, Value2); Value = max(Value1, Value2);
if(type == "Round") if (type == "Round")
Value = floor(Value1 + 0.5); Value = floor(Value1 + 0.5);
if(type == "Less Than") if (type == "Less Than")
Value = Value1 < Value2; Value = Value1 < Value2;
if(type == "Greater Than") if (type == "Greater Than")
Value = Value1 > Value2; Value = Value1 > Value2;
if(Clamp) if (Clamp)
Value = clamp(Value1, 0.0, 1.0); Value = clamp(Value1, 0.0, 1.0);
} }

View File

@@ -38,7 +38,7 @@ color node_mix_screen(float t, color col1, color col2)
{ {
float tm = 1.0 - t; float tm = 1.0 - t;
return color(1.0) - (color(tm) + t*(color(1.0) - col2))*(color(1.0) - col1); return color(1.0) - (color(tm) + t * (color(1.0) - col2)) * (color(1.0) - col1);
} }
color node_mix_overlay(float t, color col1, color col2) color node_mix_overlay(float t, color col1, color col2)
@@ -47,20 +47,20 @@ color node_mix_overlay(float t, color col1, color col2)
color outcol = col1; color outcol = col1;
if(outcol[0] < 0.5) if (outcol[0] < 0.5)
outcol[0] *= tm + 2.0*t*col2[0]; outcol[0] *= tm + 2.0 * t * col2[0];
else else
outcol[0] = 1.0 - (tm + 2.0*t*(1.0 - col2[0]))*(1.0 - outcol[0]); outcol[0] = 1.0 - (tm + 2.0 * t * (1.0 - col2[0])) * (1.0 - outcol[0]);
if(outcol[1] < 0.5) if (outcol[1] < 0.5)
outcol[1] *= tm + 2.0*t*col2[1]; outcol[1] *= tm + 2.0 * t * col2[1];
else else
outcol[1] = 1.0 - (tm + 2.0*t*(1.0 - col2[1]))*(1.0 - outcol[1]); outcol[1] = 1.0 - (tm + 2.0 * t * (1.0 - col2[1])) * (1.0 - outcol[1]);
if(outcol[2] < 0.5) if (outcol[2] < 0.5)
outcol[2] *= tm + 2.0*t*col2[2]; outcol[2] *= tm + 2.0 * t * col2[2];
else else
outcol[2] = 1.0 - (tm + 2.0*t*(1.0 - col2[2]))*(1.0 - outcol[2]); outcol[2] = 1.0 - (tm + 2.0 * t * (1.0 - col2[2])) * (1.0 - outcol[2]);
return outcol; return outcol;
} }
@@ -76,9 +76,9 @@ color node_mix_div(float t, color col1, color col2)
color outcol = col1; color outcol = col1;
if(col2[0] != 0.0) outcol[0] = tm*outcol[0] + t*outcol[0]/col2[0]; if (col2[0] != 0.0) outcol[0] = tm * outcol[0] + t * outcol[0] / col2[0];
if(col2[1] != 0.0) outcol[1] = tm*outcol[1] + t*outcol[1]/col2[1]; if (col2[1] != 0.0) outcol[1] = tm * outcol[1] + t * outcol[1] / col2[1];
if(col2[2] != 0.0) outcol[2] = tm*outcol[2] + t*outcol[2]/col2[2]; if (col2[2] != 0.0) outcol[2] = tm * outcol[2] + t * outcol[2] / col2[2];
return outcol; return outcol;
} }
@@ -90,41 +90,41 @@ color node_mix_diff(float t, color col1, color col2)
color node_mix_dark(float t, color col1, color col2) color node_mix_dark(float t, color col1, color col2)
{ {
return min(col1, col2*t); return min(col1, col2 * t);
} }
color node_mix_light(float t, color col1, color col2) color node_mix_light(float t, color col1, color col2)
{ {
return max(col1, col2*t); return max(col1, col2 * t);
} }
color node_mix_dodge(float t, color col1, color col2) color node_mix_dodge(float t, color col1, color col2)
{ {
color outcol = col1; color outcol = col1;
if(outcol[0] != 0.0) { if (outcol[0] != 0.0) {
float tmp = 1.0 - t*col2[0]; float tmp = 1.0 - t * col2[0];
if(tmp <= 0.0) if (tmp <= 0.0)
outcol[0] = 1.0; outcol[0] = 1.0;
else if((tmp = outcol[0]/tmp) > 1.0) else if ((tmp = outcol[0] / tmp) > 1.0)
outcol[0] = 1.0; outcol[0] = 1.0;
else else
outcol[0] = tmp; outcol[0] = tmp;
} }
if(outcol[1] != 0.0) { if (outcol[1] != 0.0) {
float tmp = 1.0 - t*col2[1]; float tmp = 1.0 - t * col2[1];
if(tmp <= 0.0) if (tmp <= 0.0)
outcol[1] = 1.0; outcol[1] = 1.0;
else if((tmp = outcol[1]/tmp) > 1.0) else if ((tmp = outcol[1] / tmp) > 1.0)
outcol[1] = 1.0; outcol[1] = 1.0;
else else
outcol[1] = tmp; outcol[1] = tmp;
} }
if(outcol[2] != 0.0) { if (outcol[2] != 0.0) {
float tmp = 1.0 - t*col2[2]; float tmp = 1.0 - t * col2[2];
if(tmp <= 0.0) if (tmp <= 0.0)
outcol[2] = 1.0; outcol[2] = 1.0;
else if((tmp = outcol[2]/tmp) > 1.0) else if ((tmp = outcol[2] / tmp) > 1.0)
outcol[2] = 1.0; outcol[2] = 1.0;
else else
outcol[2] = tmp; outcol[2] = tmp;
@@ -139,32 +139,32 @@ color node_mix_burn(float t, color col1, color col2)
color outcol = col1; color outcol = col1;
tmp = tm + t*col2[0]; tmp = tm + t * col2[0];
if(tmp <= 0.0) if (tmp <= 0.0)
outcol[0] = 0.0; outcol[0] = 0.0;
else if((tmp = (1.0 - (1.0 - outcol[0])/tmp)) < 0.0) else if ((tmp = (1.0 - (1.0 - outcol[0]) / tmp)) < 0.0)
outcol[0] = 0.0; outcol[0] = 0.0;
else if(tmp > 1.0) else if (tmp > 1.0)
outcol[0] = 1.0; outcol[0] = 1.0;
else else
outcol[0] = tmp; outcol[0] = tmp;
tmp = tm + t*col2[1]; tmp = tm + t * col2[1];
if(tmp <= 0.0) if (tmp <= 0.0)
outcol[1] = 0.0; outcol[1] = 0.0;
else if((tmp = (1.0 - (1.0 - outcol[1])/tmp)) < 0.0) else if ((tmp = (1.0 - (1.0 - outcol[1]) / tmp)) < 0.0)
outcol[1] = 0.0; outcol[1] = 0.0;
else if(tmp > 1.0) else if (tmp > 1.0)
outcol[1] = 1.0; outcol[1] = 1.0;
else else
outcol[1] = tmp; outcol[1] = tmp;
tmp = tm + t*col2[2]; tmp = tm + t * col2[2];
if(tmp <= 0.0) if (tmp <= 0.0)
outcol[2] = 0.0; outcol[2] = 0.0;
else if((tmp = (1.0 - (1.0 - outcol[2])/tmp)) < 0.0) else if ((tmp = (1.0 - (1.0 - outcol[2]) / tmp)) < 0.0)
outcol[2] = 0.0; outcol[2] = 0.0;
else if(tmp > 1.0) else if (tmp > 1.0)
outcol[2] = 1.0; outcol[2] = 1.0;
else else
outcol[2] = tmp; outcol[2] = tmp;
@@ -177,7 +177,7 @@ color node_mix_hue(float t, color col1, color col2)
color outcol = col1; color outcol = col1;
color hsv2 = rgb_to_hsv(col2); color hsv2 = rgb_to_hsv(col2);
if(hsv2[1] != 0.0) { if (hsv2[1] != 0.0) {
color hsv = rgb_to_hsv(outcol); color hsv = rgb_to_hsv(outcol);
hsv[0] = hsv2[0]; hsv[0] = hsv2[0];
color tmp = hsv_to_rgb(hsv); color tmp = hsv_to_rgb(hsv);
@@ -196,10 +196,10 @@ color node_mix_sat(float t, color col1, color col2)
color hsv = rgb_to_hsv(outcol); color hsv = rgb_to_hsv(outcol);
if(hsv[1] != 0.0) { if (hsv[1] != 0.0) {
color hsv2 = rgb_to_hsv(col2); color hsv2 = rgb_to_hsv(col2);
hsv[1] = tm*hsv[1] + t*hsv2[1]; hsv[1] = tm * hsv[1] + t * hsv2[1];
outcol = hsv_to_rgb(hsv); outcol = hsv_to_rgb(hsv);
} }
@@ -213,7 +213,7 @@ color node_mix_val(float t, color col1, color col2)
color hsv = rgb_to_hsv(col1); color hsv = rgb_to_hsv(col1);
color hsv2 = rgb_to_hsv(col2); color hsv2 = rgb_to_hsv(col2);
hsv[2] = tm*hsv[2] + t*hsv2[2]; hsv[2] = tm * hsv[2] + t * hsv2[2];
return hsv_to_rgb(hsv); return hsv_to_rgb(hsv);
} }
@@ -223,7 +223,7 @@ color node_mix_color(float t, color col1, color col2)
color outcol = col1; color outcol = col1;
color hsv2 = rgb_to_hsv(col2); color hsv2 = rgb_to_hsv(col2);
if(hsv2[1] != 0.0) { if (hsv2[1] != 0.0) {
color hsv = rgb_to_hsv(outcol); color hsv = rgb_to_hsv(outcol);
hsv[0] = hsv2[0]; hsv[0] = hsv2[0];
hsv[1] = hsv2[1]; hsv[1] = hsv2[1];
@@ -240,29 +240,29 @@ color node_mix_soft(float t, color col1, color col2)
float tm = 1.0 - t; float tm = 1.0 - t;
color one = color(1.0); color one = color(1.0);
color scr = one - (one - col2)*(one - col1); color scr = one - (one - col2) * (one - col1);
return tm*col1 + t*((one - col1)*col2*col1 + col1*scr); return tm * col1 + t * ((one - col1) * col2 * col1 + col1 * scr);
} }
color node_mix_linear(float t, color col1, color col2) color node_mix_linear(float t, color col1, color col2)
{ {
color outcol = col1; color outcol = col1;
if(col2[0] > 0.5) if (col2[0] > 0.5)
outcol[0]= col1[0] + t*(2.0*(col2[0] - 0.5)); outcol[0] = col1[0] + t * (2.0 * (col2[0] - 0.5));
else else
outcol[0]= col1[0] + t*(2.0*(col2[0]) - 1.0); outcol[0] = col1[0] + t * (2.0 * (col2[0]) - 1.0);
if(col2[1] > 0.5) if (col2[1] > 0.5)
outcol[1]= col1[1] + t*(2.0*(col2[1] - 0.5)); outcol[1] = col1[1] + t * (2.0 * (col2[1] - 0.5));
else else
outcol[1]= col1[1] + t*(2.0*(col2[1]) - 1.0); outcol[1] = col1[1] + t * (2.0 * (col2[1]) - 1.0);
if(col2[2] > 0.5) if (col2[2] > 0.5)
outcol[2]= col1[2] + t*(2.0*(col2[2] - 0.5)); outcol[2] = col1[2] + t * (2.0 * (col2[2] - 0.5));
else else
outcol[2]= col1[2] + t*(2.0*(col2[2]) - 1.0); outcol[2] = col1[2] + t * (2.0 * (col2[2]) - 1.0);
return outcol; return outcol;
} }
@@ -288,44 +288,44 @@ shader node_mix(
{ {
float t = clamp(Fac, 0.0, 1.0); float t = clamp(Fac, 0.0, 1.0);
if(type == "Mix") if (type == "Mix")
Color = node_mix_blend(t, Color1, Color2); Color = node_mix_blend(t, Color1, Color2);
if(type == "Add") if (type == "Add")
Color = node_mix_add(t, Color1, Color2); Color = node_mix_add(t, Color1, Color2);
if(type == "Multiply") if (type == "Multiply")
Color = node_mix_mul(t, Color1, Color2); Color = node_mix_mul(t, Color1, Color2);
if(type == "Screen") if (type == "Screen")
Color = node_mix_screen(t, Color1, Color2); Color = node_mix_screen(t, Color1, Color2);
if(type == "Overlay") if (type == "Overlay")
Color = node_mix_overlay(t, Color1, Color2); Color = node_mix_overlay(t, Color1, Color2);
if(type == "Subtract") if (type == "Subtract")
Color = node_mix_sub(t, Color1, Color2); Color = node_mix_sub(t, Color1, Color2);
if(type == "Divide") if (type == "Divide")
Color = node_mix_div(t, Color1, Color2); Color = node_mix_div(t, Color1, Color2);
if(type == "Difference") if (type == "Difference")
Color = node_mix_diff(t, Color1, Color2); Color = node_mix_diff(t, Color1, Color2);
if(type == "Darken") if (type == "Darken")
Color = node_mix_dark(t, Color1, Color2); Color = node_mix_dark(t, Color1, Color2);
if(type == "Lighten") if (type == "Lighten")
Color = node_mix_light(t, Color1, Color2); Color = node_mix_light(t, Color1, Color2);
if(type == "Dodge") if (type == "Dodge")
Color = node_mix_dodge(t, Color1, Color2); Color = node_mix_dodge(t, Color1, Color2);
if(type == "Burn") if (type == "Burn")
Color = node_mix_burn(t, Color1, Color2); Color = node_mix_burn(t, Color1, Color2);
if(type == "Hue") if (type == "Hue")
Color = node_mix_hue(t, Color1, Color2); Color = node_mix_hue(t, Color1, Color2);
if(type == "Saturation") if (type == "Saturation")
Color = node_mix_sat(t, Color1, Color2); Color = node_mix_sat(t, Color1, Color2);
if(type == "Value") if (type == "Value")
Color = node_mix_val (t, Color1, Color2); Color = node_mix_val (t, Color1, Color2);
if(type == "Color") if (type == "Color")
Color = node_mix_color(t, Color1, Color2); Color = node_mix_color(t, Color1, Color2);
if(type == "Soft Light") if (type == "Soft Light")
Color = node_mix_soft(t, Color1, Color2); Color = node_mix_soft(t, Color1, Color2);
if(type == "Linear Light") if (type == "Linear Light")
Color = node_mix_linear(t, Color1, Color2); Color = node_mix_linear(t, Color1, Color2);
if(Clamp) if (Clamp)
Color = node_mix_clamp(Color); Color = node_mix_clamp(Color);
} }

View File

@@ -25,6 +25,6 @@ shader node_mix_closure(
output closure color Closure = background()) output closure color Closure = background())
{ {
float t = clamp(Fac, 0.0, 1.0); float t = clamp(Fac, 0.0, 1.0);
Closure = (1.0 - t)*Closure1 + t*Closure2; Closure = (1.0 - t) * Closure1 + t * Closure2;
} }

View File

@@ -36,14 +36,14 @@ float noise_musgrave_fBm(point p, string basis, float H, float lacunarity, float
float pwHL = pow(lacunarity, -H); float pwHL = pow(lacunarity, -H);
int i; int i;
for(i = 0; i < (int)octaves; i++) { for (i = 0; i < (int)octaves; i++) {
value += noise("perlin", p) * pwr; value += noise("perlin", p) * pwr;
pwr *= pwHL; pwr *= pwHL;
p *= lacunarity; p *= lacunarity;
} }
rmd = octaves - floor(octaves); rmd = octaves - floor(octaves);
if(rmd != 0.0) if (rmd != 0.0)
value += rmd * noise("perlin", p) * pwr; value += rmd * noise("perlin", p) * pwr;
return value; return value;
@@ -64,14 +64,14 @@ float noise_musgrave_multi_fractal(point p, string basis, float H, float lacunar
float pwHL = pow(lacunarity, -H); float pwHL = pow(lacunarity, -H);
int i; int i;
for(i = 0; i < (int)octaves; i++) { for (i = 0; i < (int)octaves; i++) {
value *= (pwr * noise("perlin", p) + 1.0); value *= (pwr * noise("perlin", p) + 1.0);
pwr *= pwHL; pwr *= pwHL;
p *= lacunarity; p *= lacunarity;
} }
rmd = octaves - floor(octaves); rmd = octaves - floor(octaves);
if(rmd != 0.0) if (rmd != 0.0)
value *= (rmd * pwr * noise("perlin", p) + 1.0); /* correct? */ value *= (rmd * pwr * noise("perlin", p) + 1.0); /* correct? */
return value; return value;
@@ -96,7 +96,7 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna
value = offset + noise("perlin", p); value = offset + noise("perlin", p);
p *= lacunarity; p *= lacunarity;
for(i = 1; i < (int)octaves; i++) { for (i = 1; i < (int)octaves; i++) {
increment = (noise("perlin", p) + offset) * pwr * value; increment = (noise("perlin", p) + offset) * pwr * value;
value += increment; value += increment;
pwr *= pwHL; pwr *= pwHL;
@@ -104,7 +104,7 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna
} }
rmd = octaves - floor(octaves); rmd = octaves - floor(octaves);
if(rmd != 0.0) { if (rmd != 0.0) {
increment = (noise("perlin", p) + offset) * pwr * value; increment = (noise("perlin", p) + offset) * pwr * value;
value += rmd * increment; value += rmd * increment;
} }
@@ -120,7 +120,8 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna
* offset: raises the terrain from `sea level' * offset: raises the terrain from `sea level'
*/ */
float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float lacunarity, float octaves, float offset, float gain) float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H,
float lacunarity, float octaves, float offset, float gain)
{ {
float result, signal, weight, rmd; float result, signal, weight, rmd;
float pwHL = pow(lacunarity, -H); float pwHL = pow(lacunarity, -H);
@@ -131,8 +132,8 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float
weight = gain * result; weight = gain * result;
p *= lacunarity; p *= lacunarity;
for(i = 1; (weight > 0.001) && (i < (int)octaves); i++) { for (i = 1; (weight > 0.001) && (i < (int)octaves); i++) {
if(weight > 1.0) if (weight > 1.0)
weight = 1.0; weight = 1.0;
signal = (noise("perlin", p) + offset) * pwr; signal = (noise("perlin", p) + offset) * pwr;
@@ -143,7 +144,7 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float
} }
rmd = octaves - floor(octaves); rmd = octaves - floor(octaves);
if(rmd != 0.0) if (rmd != 0.0)
result += rmd * ((noise("perlin", p) + offset) * pwr); result += rmd * ((noise("perlin", p) + offset) * pwr);
return result; return result;
@@ -157,7 +158,8 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float
* offset: raises the terrain from `sea level' * offset: raises the terrain from `sea level'
*/ */
float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float lacunarity, float octaves, float offset, float gain) float noise_musgrave_ridged_multi_fractal(point p, string basis, float H,
float lacunarity, float octaves, float offset, float gain)
{ {
float result, signal, weight; float result, signal, weight;
float pwHL = pow(lacunarity, -H); float pwHL = pow(lacunarity, -H);
@@ -169,7 +171,7 @@ float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float
result = signal; result = signal;
weight = 1.0; weight = 1.0;
for(i = 1; i < (int)octaves; i++) { for (i = 1; i < (int)octaves; i++) {
p *= lacunarity; p *= lacunarity;
weight = clamp(signal * gain, 0.0, 1.0); weight = clamp(signal * gain, 0.0, 1.0);
signal = offset - fabs(noise("perlin", p)); signal = offset - fabs(noise("perlin", p));
@@ -202,18 +204,18 @@ shader node_musgrave_texture(
string Basis = "Perlin"; string Basis = "Perlin";
float intensity = 1.0; float intensity = 1.0;
point p = Vector*Scale; point p = Vector * Scale;
if(Type == "Multifractal") if (Type == "Multifractal")
Fac = intensity*noise_musgrave_multi_fractal(p, Basis, dimension, lacunarity, octaves); Fac = intensity * noise_musgrave_multi_fractal(p, Basis, dimension, lacunarity, octaves);
else if(Type == "fBM") else if (Type == "fBM")
Fac = intensity*noise_musgrave_fBm(p, Basis, dimension, lacunarity, octaves); Fac = intensity * noise_musgrave_fBm(p, Basis, dimension, lacunarity, octaves);
else if(Type == "Hybrid Multifractal") else if (Type == "Hybrid Multifractal")
Fac = intensity*noise_musgrave_hybrid_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain); Fac = intensity * noise_musgrave_hybrid_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
else if(Type == "Ridged Multifractal") else if (Type == "Ridged Multifractal")
Fac = intensity*noise_musgrave_ridged_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain); Fac = intensity * noise_musgrave_ridged_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
else if(Type == "Hetero Terrain") else if (Type == "Hetero Terrain")
Fac = intensity*noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset); Fac = intensity * noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset);
Color = color(Fac, Fac, Fac); Color = color(Fac, Fac, Fac);
} }

View File

@@ -26,7 +26,7 @@ float noise(point p, string basis, float distortion, float detail, float fac, co
point r; point r;
int hard = 0; int hard = 0;
if(distortion != 0.0) { if (distortion != 0.0) {
r[0] = noise_basis(p + point(13.5), basis) * distortion; r[0] = noise_basis(p + point(13.5), basis) * distortion;
r[1] = noise_basis(p, basis) * distortion; r[1] = noise_basis(p, basis) * distortion;
r[2] = noise_basis(p - point(13.5), basis) * distortion; r[2] = noise_basis(p - point(13.5), basis) * distortion;
@@ -51,6 +51,6 @@ shader node_noise_texture(
output color Color = color(0.2, 0.2, 0.2)) output color Color = color(0.2, 0.2, 0.2))
{ {
string Basis = "Perlin"; string Basis = "Perlin";
Fac = noise(Vector*Scale, Basis, Distortion, Detail, Fac, Color); Fac = noise(Vector * Scale, Basis, Distortion, Detail, Fac, Color);
} }

View File

@@ -20,6 +20,6 @@
displacement node_output_displacement(float Displacement = 0.0) displacement node_output_displacement(float Displacement = 0.0)
{ {
P += N*Displacement*0.1; /* todo: get rid of this factor */ P += N * Displacement * 0.1; /* todo: get rid of this factor */
} }

View File

@@ -28,7 +28,7 @@ shader node_rgb_ramp(
output float Alpha = 1.0 output float Alpha = 1.0
) )
{ {
float f = clamp(Fac, 0.0, 1.0)*(RAMP_TABLE_SIZE-1); float f = clamp(Fac, 0.0, 1.0) * (RAMP_TABLE_SIZE - 1);
int i = (int)f; int i = (int)f;
float t = f - (float)i; float t = f - (float)i;
@@ -37,8 +37,8 @@ shader node_rgb_ramp(
Alpha = ramp_alpha[i]; Alpha = ramp_alpha[i];
if (t > 0.0) { if (t > 0.0) {
Color = (1.0 - t)*Color + t*ramp_color[i+1]; Color = (1.0 - t) * Color + t * ramp_color[i + 1];
Alpha = (1.0 - t)*Alpha + t*ramp_alpha[i+1]; Alpha = (1.0 - t) * Alpha + t * ramp_alpha[i + 1];
} }
} }

View File

@@ -32,10 +32,10 @@ color xyY_to_xyz(float x, float y, float Y)
{ {
float X, Z; float X, Z;
if(y != 0.0) X = (x / y) * Y; if (y != 0.0) X = (x / y) * Y;
else X = 0.0; else X = 0.0;
if(y != 0.0 && Y != 0.0) Z = ((1.0 - x - y) / y) * Y; if (y != 0.0 && Y != 0.0) Z = ((1.0 - x - y) / y) * Y;
else Z = 0.0; else Z = 0.0;
return color(X, Y, Z); return color(X, Y, Z);
@@ -50,11 +50,11 @@ color xyz_to_rgb(float x, float y, float z)
float sky_angle_between(float thetav, float phiv, float theta, float phi) float sky_angle_between(float thetav, float phiv, float theta, float phi)
{ {
float cospsi = sin(thetav)*sin(theta)*cos(phi - phiv) + cos(thetav)*cos(theta); float cospsi = sin(thetav) * sin(theta) * cos(phi - phiv) + cos(thetav) * cos(theta);
if(cospsi > 1.0) if (cospsi > 1.0)
return 0.0; return 0.0;
if(cospsi < -1.0) if (cospsi < -1.0)
return M_PI; return M_PI;
return acos(cospsi); return acos(cospsi);
@@ -70,7 +70,7 @@ float sky_perez_function(float lam[5], float theta, float gamma)
float ctheta = cos(theta); float ctheta = cos(theta);
float cgamma = cos(gamma); float cgamma = cos(gamma);
return (1.0 + lam[0]*exp(lam[1] / ctheta)) * (1.0 + lam[2]*exp(lam[3]*gamma) + lam[4]*cgamma*cgamma); return (1.0 + lam[0] * exp(lam[1] / ctheta)) * (1.0 + lam[2] * exp(lam[3] * gamma) + lam[4] * cgamma * cgamma);
} }
color sky_xyz_radiance(KernelSunSky sunsky, vector dir) color sky_xyz_radiance(KernelSunSky sunsky, vector dir)
@@ -106,42 +106,42 @@ void precompute_sunsky(vector dir, float turbidity, output KernelSunSky sunsky)
sunsky.phi = phi; sunsky.phi = phi;
sunsky.dir = dir; sunsky.dir = dir;
float theta2 = theta*theta; float theta2 = theta * theta;
float theta3 = theta*theta*theta; float theta3 = theta * theta * theta;
float T = turbidity; float T = turbidity;
float T2 = T*T; float T2 = T * T;
float chi = (4.0/ 9.0- T / 120.0) * (M_PI - 2.0* theta); float chi = (4.0 / 9.0 - T / 120.0) * (M_PI - 2.0 * theta);
sunsky.zenith_Y = (4.0453*T - 4.9710) * tan(chi) - 0.2155*T + 2.4192; sunsky.zenith_Y = (4.0453 * T - 4.9710) * tan(chi) - 0.2155 * T + 2.4192;
sunsky.zenith_Y *= 0.06; sunsky.zenith_Y *= 0.06;
sunsky.zenith_x = sunsky.zenith_x =
(0.00166* theta3 - 0.00375* theta2 + 0.00209* theta)*T2 + ( 0.00166 * theta3 - 0.00375 * theta2 + 0.00209 * theta) * T2 +
(-0.02903* theta3 + 0.06377* theta2 - 0.03202* theta + 0.00394)*T + (-0.02903 * theta3 + 0.06377 * theta2 - 0.03202 * theta + 0.00394) * T +
(0.11693* theta3 - 0.21196* theta2 + 0.06052* theta + 0.25886); ( 0.11693 * theta3 - 0.21196 * theta2 + 0.06052 * theta + 0.25886);
sunsky.zenith_y = sunsky.zenith_y =
(0.00275* theta3 - 0.00610* theta2 + 0.00317* theta)*T2 + ( 0.00275 * theta3 - 0.00610 * theta2 + 0.00317 * theta) * T2 +
(-0.04214* theta3 + 0.08970* theta2 - 0.04153* theta + 0.00516)*T + (-0.04214 * theta3 + 0.08970 * theta2 - 0.04153 * theta + 0.00516) * T +
(0.15346* theta3 - 0.26756* theta2 + 0.06670* theta + 0.26688); ( 0.15346 * theta3 - 0.26756 * theta2 + 0.06670 * theta + 0.26688);
sunsky.perez_Y[0] = (0.1787*T - 1.4630); sunsky.perez_Y[0] = ( 0.1787 * T - 1.4630);
sunsky.perez_Y[1] = (-0.3554*T + 0.4275); sunsky.perez_Y[1] = (-0.3554 * T + 0.4275);
sunsky.perez_Y[2] = (-0.0227*T + 5.3251); sunsky.perez_Y[2] = (-0.0227 * T + 5.3251);
sunsky.perez_Y[3] = (0.1206*T - 2.5771); sunsky.perez_Y[3] = ( 0.1206 * T - 2.5771);
sunsky.perez_Y[4] = (-0.0670*T + 0.3703); sunsky.perez_Y[4] = (-0.0670 * T + 0.3703);
sunsky.perez_x[0] = (-0.0193*T - 0.2592); sunsky.perez_x[0] = (-0.0193 * T - 0.2592);
sunsky.perez_x[1] = (-0.0665*T + 0.0008); sunsky.perez_x[1] = (-0.0665 * T + 0.0008);
sunsky.perez_x[2] = (-0.0004*T + 0.2125); sunsky.perez_x[2] = (-0.0004 * T + 0.2125);
sunsky.perez_x[3] = (-0.0641*T - 0.8989); sunsky.perez_x[3] = (-0.0641 * T - 0.8989);
sunsky.perez_x[4] = (-0.0033*T + 0.0452); sunsky.perez_x[4] = (-0.0033 * T + 0.0452);
sunsky.perez_y[0] = (-0.0167*T - 0.2608); sunsky.perez_y[0] = (-0.0167 * T - 0.2608);
sunsky.perez_y[1] = (-0.0950*T + 0.0092); sunsky.perez_y[1] = (-0.0950 * T + 0.0092);
sunsky.perez_y[2] = (-0.0079*T + 0.2102); sunsky.perez_y[2] = (-0.0079 * T + 0.2102);
sunsky.perez_y[3] = (-0.0441*T - 1.6537); sunsky.perez_y[3] = (-0.0441 * T - 1.6537);
sunsky.perez_y[4] = (-0.0109*T + 0.0529); sunsky.perez_y[4] = (-0.0109 * T + 0.0529);
sunsky.zenith_Y /= sky_perez_function(sunsky.perez_Y, 0, theta); sunsky.zenith_Y /= sky_perez_function(sunsky.perez_Y, 0, theta);
sunsky.zenith_x /= sky_perez_function(sunsky.perez_x, 0, theta); sunsky.zenith_x /= sky_perez_function(sunsky.perez_x, 0, theta);

View File

@@ -235,21 +235,21 @@ float noise_turbulence(point p, string basis, float details, int hard)
float rmd = octaves - floor(octaves); float rmd = octaves - floor(octaves);
if(rmd != 0.0) { if (rmd != 0.0) {
float t = noise_basis(fscale*p, basis); float t = noise_basis(fscale * p, basis);
if(hard) if (hard)
t = fabs(2.0*t - 1.0); t = fabs(2.0 * t - 1.0);
float sum2 = sum + t*amp; float sum2 = sum + t*amp;
sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1)); sum *= ((float)(1 << n) / (float)((1 << (n + 1)) - 1));
sum2 *= ((float)(1 << (n+1))/(float)((1 << (n+2)) - 1)); sum2 *= ((float)(1 << (n + 1)) / (float)((1 << (n + 2)) - 1));
return (1.0 - rmd)*sum + rmd*sum2; return (1.0 - rmd)*sum + rmd*sum2;
} }
else { else {
sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1)); sum *= ((float)(1 << n) / (float)((1 << (n + 1)) - 1));
return sum; return sum;
} }
} }

View File

@@ -30,7 +30,7 @@ shader node_texture_coordinate(
output point Window = point(0.0, 0.0, 0.0), output point Window = point(0.0, 0.0, 0.0),
output point Reflection = point(0.0, 0.0, 0.0)) output point Reflection = point(0.0, 0.0, 0.0))
{ {
if(is_background) { if (is_background) {
Generated = P; Generated = P;
UV = point(0.0, 0.0, 0.0); UV = point(0.0, 0.0, 0.0);
Object = P; Object = P;
@@ -48,14 +48,14 @@ shader node_texture_coordinate(
Reflection = reflect(I, Normal); Reflection = reflect(I, Normal);
} }
if(bump_offset == "dx") { if (bump_offset == "dx") {
Generated += Dx(Generated); Generated += Dx(Generated);
UV += Dx(UV); UV += Dx(UV);
Object += Dx(Object); Object += Dx(Object);
Camera += Dx(Camera); Camera += Dx(Camera);
Window += Dx(Window); Window += Dx(Window);
} }
else if(bump_offset == "dy") { else if (bump_offset == "dy") {
Generated += Dy(Generated); Generated += Dy(Generated);
UV += Dy(UV); UV += Dy(UV);
Object += Dy(Object); Object += Dy(Object);

View File

@@ -23,6 +23,6 @@ shader node_translucent_bsdf(
normal Normal = N, normal Normal = N,
output closure color BSDF = diffuse(Normal)) output closure color BSDF = diffuse(Normal))
{ {
BSDF = Color*translucent(Normal); BSDF = Color * translucent(Normal);
} }

View File

@@ -23,6 +23,6 @@ shader node_transparent_bsdf(
normal Normal = N, normal Normal = N,
output closure color BSDF = diffuse(Normal)) output closure color BSDF = diffuse(Normal))
{ {
BSDF = Color*transparent(); BSDF = Color * transparent();
} }

View File

@@ -25,27 +25,27 @@ shader node_vector_math(
output float Value = 0.0, output float Value = 0.0,
output vector Vector = vector(0.0, 0.0, 0.0)) output vector Vector = vector(0.0, 0.0, 0.0))
{ {
if(type == "Add") { if (type == "Add") {
Vector = Vector1 + Vector2; Vector = Vector1 + Vector2;
Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2])) / 3.0;
} }
if(type == "Subtract") { if (type == "Subtract") {
Vector = Vector1 - Vector2; Vector = Vector1 - Vector2;
Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2]))/3.0; Value = (abs(Vector[0]) + abs(Vector[1]) + abs(Vector[2])) / 3.0;
} }
if(type == "Average") { if (type == "Average") {
Value = length(Vector1 + Vector2); Value = length(Vector1 + Vector2);
Vector = normalize(Vector1 + Vector2); Vector = normalize(Vector1 + Vector2);
} }
if(type == "Dot Product") { if (type == "Dot Product") {
Value = dot(Vector1, Vector2); Value = dot(Vector1, Vector2);
} }
if(type == "Cross Product") { if (type == "Cross Product") {
vector c = cross(Vector1, Vector2); vector c = cross(Vector1, Vector2);
Value = length(c); Value = length(c);
Vector = normalize(c); Vector = normalize(c);
} }
if(type == "Normalize") { if (type == "Normalize") {
Value = length(Vector1); Value = length(Vector1);
Vector = normalize(Vector1); Vector = normalize(Vector1);
} }

View File

@@ -27,6 +27,6 @@ shader node_velvet_bsdf(
{ {
float sigma = clamp(Sigma, 0.0, 1.0); float sigma = clamp(Sigma, 0.0, 1.0);
BSDF = Color*ashikhmin_velvet(Normal, sigma, 1.0); BSDF = Color * ashikhmin_velvet(Normal, sigma, 1.0);
} }

View File

@@ -32,16 +32,16 @@ shader node_voronoi_texture(
float da[4]; float da[4];
point pa[4]; point pa[4];
voronoi(Vector*Scale, "Distance Squared", 1.0, da, pa); voronoi(Vector * Scale, "Distance Squared", 1.0, da, pa);
/* Colored output */ /* Colored output */
if(Coloring == "Intensity") { if (Coloring == "Intensity") {
Fac = fabs(da[0]); Fac = fabs(da[0]);
Color = color(Fac); Color = color(Fac);
} }
else { else {
Color = cellnoise_color(pa[0]); Color = cellnoise_color(pa[0]);
Fac = (Color[0]+Color[1]+Color[2])*(1.0/3.0); Fac = (Color[0] + Color[1] + Color[2]) * (1.0 / 3.0);
} }
} }

View File

@@ -25,6 +25,6 @@ shader node_ward_bsdf(
normal Normal = N, normal Normal = N,
output closure color BSDF = diffuse(Normal)) output closure color BSDF = diffuse(Normal))
{ {
BSDF = Color*ward(Normal, normalize(dPdu), RoughnessU, RoughnessV); BSDF = Color * ward(Normal, normalize(dPdu), RoughnessU, RoughnessV);
} }

View File

@@ -30,15 +30,15 @@ float wave(point p, float scale, string type, float detail, float distortion, fl
float result = 0.0; float result = 0.0;
float n = 0.0; float n = 0.0;
if(type == "Bands") { if (type == "Bands") {
n = (x + y + z)*10.0; n = (x + y + z) * 10.0;
} }
else if(type == "Rings") { else if (type == "Rings") {
n = (sqrt(x*x + y*y + z*z)*20.0); n = (sqrt(x * x + y * y + z * z) * 20.0);
} }
if(distortion != 0.0) { if (distortion != 0.0) {
n = n +(distortion * noise_turbulence(p*dscale, "Perlin", detail, 0)); n = n + (distortion * noise_turbulence(p * dscale, "Perlin", detail, 0));
} }
result = noise_wave("Sine", n); result = noise_wave("Sine", n);