Fixed remaining syntax errors in OSL files. node_sepcomb_rgb.osl is split into 2 parts, since OSL only allows one shader per file.

This commit is contained in:
Lukas Toenne
2012-09-02 15:07:51 +00:00
parent ebbfc46bea
commit 092f6344c3
11 changed files with 50 additions and 36 deletions

View File

@@ -303,7 +303,7 @@ __device_inline void path_radiance_clamp(PathRadiance *L, float3 *L_sum, float c
{ {
float sum = fabsf((*L_sum).x) + fabsf((*L_sum).y) + fabsf((*L_sum).z); float sum = fabsf((*L_sum).x) + fabsf((*L_sum).y) + fabsf((*L_sum).z);
if(!isfinite(sum)) { if(!std::isfinite(sum)) {
/* invalid value, reject */ /* invalid value, reject */
*L_sum = make_float3(0.0f, 0.0f, 0.0f); *L_sum = make_float3(0.0f, 0.0f, 0.0f);

View File

@@ -8,6 +8,7 @@ set(SRC_OSL
node_bump.osl node_bump.osl
node_camera.osl node_camera.osl
node_checker_texture.osl node_checker_texture.osl
node_combine_rgb.osl
node_convert_from_color.osl node_convert_from_color.osl
node_convert_from_float.osl node_convert_from_float.osl
node_convert_from_normal.osl node_convert_from_normal.osl
@@ -38,7 +39,7 @@ set(SRC_OSL
node_output_displacement.osl node_output_displacement.osl
node_output_surface.osl node_output_surface.osl
node_output_volume.osl node_output_volume.osl
node_sepcomb_rgb.osl node_separate_rgb.osl
node_sky_texture.osl node_sky_texture.osl
node_texture_coordinate.osl node_texture_coordinate.osl
node_translucent_bsdf.osl node_translucent_bsdf.osl

View File

@@ -20,15 +20,16 @@
shader node_brightness( shader node_brightness(
color ColorIn = color(0.8, 0.8, 0.8), color ColorIn = color(0.8, 0.8, 0.8),
float Bright = 0.0, float Brightness = 0.0,
float Contrast = 0.0, float Contrast = 0.0,
output 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;
Bright *= 1.0/100.0; /* input value is a percentage */
float bright_factor = Brightness / 100.0;
/* /*
* The algorithm is by Werner D. Streidt * The algorithm is by Werner D. Streidt
@@ -38,11 +39,11 @@ 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 * (Brightness - delta); b = a * (bright_factor - delta);
} }
else { else {
delta *= -1.0; delta *= -1.0;
b = a * (Brightness + delta); b = a * (bright_factor + delta);
} }
ColorOut = a * ColorIn + b; ColorOut = a * ColorIn + b;

View File

@@ -49,10 +49,10 @@ shader node_checker_texture(
{ {
Fac = checker(Vector*Scale); Fac = checker(Vector*Scale);
if(Fac == 1.0) { if(Fac == 1.0) {
Color = color(Color1, Color1, Color1); Color = Color1;
} }
else { else {
Color = color(Color2, Color2, Color2); Color = Color2;
} }
} }

View File

@@ -0,0 +1,29 @@
/*
* Copyright 2011, Blender Foundation.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "stdosl.h"
shader node_combine_rgb(
float R = 0.0,
float G = 0.0,
float B = 0.0,
output color Image = color(0.8, 0.8, 0.8))
{
Image = color(R, G, B);
}

View File

@@ -21,13 +21,7 @@
shader node_gamma( shader node_gamma(
color ColorIn = color(0.8, 0.8, 0.8), color ColorIn = color(0.8, 0.8, 0.8),
float Gamma = 1.0, float Gamma = 1.0,
output ColorOut = color(0.8, 0.8, 0.8) output color ColorOut = color(0.0, 0.0, 0.0))
{ {
int i; ColorOut = pow(ColorIn, Gamma);
for (i=0;i<3;i++) {
if (ColorIn[i] > 0.0)
ColorIn[i] = powf(ColorIn[i], Gamma);
}
ColorOut = ColorIn;
} }

View File

@@ -21,7 +21,7 @@
shader node_invert( shader node_invert(
float Fac = 1.0, float Fac = 1.0,
color ColorIn = color(0.8, 0.8, 0.8), color ColorIn = color(0.8, 0.8, 0.8),
output ColorOut = color(0.8, 0.8, 0.8) output color ColorOut = color(0.8, 0.8, 0.8))
{ {
color ColorInv = color(1.0) - ColorIn; color ColorInv = color(1.0) - ColorIn;
ColorOut = mix(ColorIn, ColorInv, Fac); ColorOut = mix(ColorIn, ColorInv, Fac);

View File

@@ -35,7 +35,7 @@ float noise(point p, string basis, float distortion, float detail)
p += r; p += r;
} }
fac = noise_turbulence(p, basis, detail, hard); fac = noise_turbulence(p, basis, (int)detail, hard);
return fac; return fac;

View File

@@ -24,8 +24,7 @@ shader node_normal(
output normal NormalOut = normal(0.0, 0.0, 0.0), output normal NormalOut = normal(0.0, 0.0, 0.0),
output float Dot = 1.0) output float Dot = 1.0)
{ {
Direction = normalize(Direction); NormalOut = normalize(Direction);
NormalOut = Direction; Dot = dot(NormalOut, NormalIn);
Dot = dot(Direction, NormalIn);
} }

View File

@@ -24,17 +24,7 @@ shader node_separate_rgb(
output float G = 0.0, output float G = 0.0,
output float B = 0.0) output float B = 0.0)
{ {
R = Image[0]; R = Image[0];
G = Image[1]; G = Image[1];
B = Image[2]; B = Image[2];
} }
shader node_combine_rgb(
float R = 0.0,
float G = 0.0,
float B = 0.0,
output color Image = color(0.8, 0.8, 0.8)
{
Image = color(R, G, B)
}

View File

@@ -38,7 +38,7 @@ float wave(point p, float scale, string type, float detail, float distortion, fl
} }
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", (int)detail, 0));
} }
result = noise_wave("Sine", n); result = noise_wave("Sine", n);