Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/shaders/node_brick_texture.osl
| Context not available. | |||||
| return 0.5 * ((float)nn / 1073741824.0); | return 0.5 * ((float)nn / 1073741824.0); | ||||
| } | } | ||||
| float brick(point p, float mortar_size, float bias, | float brick(point p, float mortar_size, float mortar_smooth, float bias, | ||||
| float BrickWidth, float row_height, float offset_amount, int offset_frequency, | float BrickWidth, float row_height, float offset_amount, int offset_frequency, | ||||
| float squash_amount, int squash_frequency, float tint) | float squash_amount, int squash_frequency, float tint) | ||||
| { | { | ||||
| Context not available. | |||||
| 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); | ||||
| return (x < mortar_size || y < mortar_size || | float min_dist = min(min(x, y), min(brick_width - x, row_height - y)); | ||||
| x > (brick_width - mortar_size) || | if(min_dist >= mortar_size) { | ||||
| y > (row_height - mortar_size)) ? 1.0 : 0.0; | return 0.0; | ||||
| } | |||||
| else if(mortar_smooth == 0.0) { | |||||
| return 1.0; | |||||
| } | |||||
| else { | |||||
| min_dist = 1.0 - min_dist/mortar_size; | |||||
| return smoothstep(0.0, mortar_smooth, min_dist); | |||||
| } | |||||
| } | } | ||||
| shader node_brick_texture( | shader node_brick_texture( | ||||
| Context not available. | |||||
| color Mortar = 0.0, | color Mortar = 0.0, | ||||
| float Scale = 5.0, | float Scale = 5.0, | ||||
| float MortarSize = 0.02, | float MortarSize = 0.02, | ||||
| float MortarSmooth = 0.0, | |||||
| float Bias = 0.0, | float Bias = 0.0, | ||||
| float BrickWidth = 0.5, | float BrickWidth = 0.5, | ||||
| float RowHeight = 0.25, | float RowHeight = 0.25, | ||||
| Context not available. | |||||
| float tint = 0.0; | float tint = 0.0; | ||||
| color Col = Color1; | color Col = Color1; | ||||
| Fac = brick(p * Scale, MortarSize, Bias, BrickWidth, RowHeight, | Fac = brick(p * Scale, MortarSize, MortarSmooth, Bias, BrickWidth, RowHeight, | ||||
| offset, offset_frequency, squash, squash_frequency, tint); | offset, offset_frequency, squash, squash_frequency, tint); | ||||
| if (Fac != 1.0) { | if (Fac != 1.0) { | ||||
| Context not available. | |||||
| Col = facm * Color1 + tint * Color2; | Col = facm * Color1 + tint * Color2; | ||||
| } | } | ||||
| Color = (Fac == 1.0) ? Mortar : Col; | Color = mix(Col, Mortar, Fac); | ||||
| } | } | ||||
| Context not available. | |||||