Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/nodes.cpp
| Show First 20 Lines • Show All 1,251 Lines • ▼ Show 20 Lines | NODE_DEFINE(BrickTextureNode) | ||||
| SOCKET_IN_POINT(vector, "Vector", make_float3(0.0f, 0.0f, 0.0f), SocketType::LINK_TEXTURE_GENERATED); | SOCKET_IN_POINT(vector, "Vector", make_float3(0.0f, 0.0f, 0.0f), SocketType::LINK_TEXTURE_GENERATED); | ||||
| SOCKET_IN_COLOR(color1, "Color1", make_float3(0.0f, 0.0f, 0.0f)); | SOCKET_IN_COLOR(color1, "Color1", make_float3(0.0f, 0.0f, 0.0f)); | ||||
| SOCKET_IN_COLOR(color2, "Color2", make_float3(0.0f, 0.0f, 0.0f)); | SOCKET_IN_COLOR(color2, "Color2", make_float3(0.0f, 0.0f, 0.0f)); | ||||
| SOCKET_IN_COLOR(mortar, "Mortar", make_float3(0.0f, 0.0f, 0.0f)); | SOCKET_IN_COLOR(mortar, "Mortar", make_float3(0.0f, 0.0f, 0.0f)); | ||||
| SOCKET_IN_FLOAT(scale, "Scale", 5.0f); | SOCKET_IN_FLOAT(scale, "Scale", 5.0f); | ||||
| SOCKET_IN_FLOAT(mortar_size, "Mortar Size", 0.02f); | SOCKET_IN_FLOAT(mortar_size, "Mortar Size", 0.02f); | ||||
| SOCKET_IN_FLOAT(mortar_smooth, "Mortar Smooth", 0.0f); | |||||
| SOCKET_IN_FLOAT(bias, "Bias", 0.0f); | SOCKET_IN_FLOAT(bias, "Bias", 0.0f); | ||||
| SOCKET_IN_FLOAT(brick_width, "Brick Width", 0.5f); | SOCKET_IN_FLOAT(brick_width, "Brick Width", 0.5f); | ||||
| SOCKET_IN_FLOAT(row_height, "Row Height", 0.25f); | SOCKET_IN_FLOAT(row_height, "Row Height", 0.25f); | ||||
| SOCKET_OUT_COLOR(color, "Color"); | SOCKET_OUT_COLOR(color, "Color"); | ||||
| SOCKET_OUT_FLOAT(fac, "Fac"); | SOCKET_OUT_FLOAT(fac, "Fac"); | ||||
| return type; | return type; | ||||
| } | } | ||||
| BrickTextureNode::BrickTextureNode() | BrickTextureNode::BrickTextureNode() | ||||
| : TextureNode(node_type) | : TextureNode(node_type) | ||||
| { | { | ||||
| } | } | ||||
| void BrickTextureNode::compile(SVMCompiler& compiler) | void BrickTextureNode::compile(SVMCompiler& compiler) | ||||
| { | { | ||||
| ShaderInput *vector_in = input("Vector"); | ShaderInput *vector_in = input("Vector"); | ||||
| ShaderInput *color1_in = input("Color1"); | ShaderInput *color1_in = input("Color1"); | ||||
| ShaderInput *color2_in = input("Color2"); | ShaderInput *color2_in = input("Color2"); | ||||
| ShaderInput *mortar_in = input("Mortar"); | ShaderInput *mortar_in = input("Mortar"); | ||||
| ShaderInput *scale_in = input("Scale"); | ShaderInput *scale_in = input("Scale"); | ||||
| ShaderInput *mortar_size_in = input("Mortar Size"); | ShaderInput *mortar_size_in = input("Mortar Size"); | ||||
| ShaderInput *mortar_smooth_in = input("Mortar Smooth"); | |||||
| ShaderInput *bias_in = input("Bias"); | ShaderInput *bias_in = input("Bias"); | ||||
| ShaderInput *brick_width_in = input("Brick Width"); | ShaderInput *brick_width_in = input("Brick Width"); | ||||
| ShaderInput *row_height_in = input("Row Height"); | ShaderInput *row_height_in = input("Row Height"); | ||||
| ShaderOutput *color_out = output("Color"); | ShaderOutput *color_out = output("Color"); | ||||
| ShaderOutput *fac_out = output("Fac"); | ShaderOutput *fac_out = output("Fac"); | ||||
| int vector_offset = tex_mapping.compile_begin(compiler, vector_in); | int vector_offset = tex_mapping.compile_begin(compiler, vector_in); | ||||
| compiler.add_node(NODE_TEX_BRICK, | compiler.add_node(NODE_TEX_BRICK, | ||||
| compiler.encode_uchar4( | compiler.encode_uchar4( | ||||
| vector_offset, | vector_offset, | ||||
| compiler.stack_assign(color1_in), | compiler.stack_assign(color1_in), | ||||
| compiler.stack_assign(color2_in), | compiler.stack_assign(color2_in), | ||||
| compiler.stack_assign(mortar_in)), | compiler.stack_assign(mortar_in)), | ||||
| compiler.encode_uchar4( | compiler.encode_uchar4( | ||||
| compiler.stack_assign_if_linked(scale_in), | compiler.stack_assign_if_linked(scale_in), | ||||
| compiler.stack_assign_if_linked(mortar_size_in), | compiler.stack_assign_if_linked(mortar_size_in), | ||||
| compiler.stack_assign_if_linked(bias_in), | compiler.stack_assign_if_linked(bias_in), | ||||
| compiler.stack_assign_if_linked(brick_width_in)), | compiler.stack_assign_if_linked(brick_width_in)), | ||||
| compiler.encode_uchar4( | compiler.encode_uchar4( | ||||
| compiler.stack_assign_if_linked(row_height_in), | compiler.stack_assign_if_linked(row_height_in), | ||||
| compiler.stack_assign_if_linked(color_out), | compiler.stack_assign_if_linked(color_out), | ||||
| compiler.stack_assign_if_linked(fac_out))); | compiler.stack_assign_if_linked(fac_out), | ||||
| compiler.stack_assign_if_linked(mortar_smooth_in))); | |||||
| compiler.add_node(compiler.encode_uchar4(offset_frequency, squash_frequency), | compiler.add_node(compiler.encode_uchar4(offset_frequency, squash_frequency), | ||||
| __float_as_int(scale), | __float_as_int(scale), | ||||
| __float_as_int(mortar_size), | __float_as_int(mortar_size), | ||||
| __float_as_int(bias)); | __float_as_int(bias)); | ||||
| compiler.add_node(__float_as_int(brick_width), | compiler.add_node(__float_as_int(brick_width), | ||||
| __float_as_int(row_height), | __float_as_int(row_height), | ||||
| __float_as_int(offset), | __float_as_int(offset), | ||||
| __float_as_int(squash)); | __float_as_int(squash)); | ||||
| compiler.add_node(__float_as_int(mortar_smooth), | |||||
| SVM_STACK_INVALID, | |||||
| SVM_STACK_INVALID, | |||||
| SVM_STACK_INVALID); | |||||
| tex_mapping.compile_end(compiler, vector_in, vector_offset); | tex_mapping.compile_end(compiler, vector_in, vector_offset); | ||||
| } | } | ||||
| void BrickTextureNode::compile(OSLCompiler& compiler) | void BrickTextureNode::compile(OSLCompiler& compiler) | ||||
| { | { | ||||
| tex_mapping.compile(compiler); | tex_mapping.compile(compiler); | ||||
| compiler.parameter(this, "offset"); | compiler.parameter(this, "offset"); | ||||
| ▲ Show 20 Lines • Show All 4,021 Lines • Show Last 20 Lines | |||||