Cycles: checker texture node, patch by Thomas.
This commit is contained in:
@@ -712,6 +712,54 @@ void MagicTextureNode::compile(OSLCompiler& compiler)
|
||||
compiler.add(this, "node_magic_texture");
|
||||
}
|
||||
|
||||
/* Checker Texture */
|
||||
|
||||
CheckerTextureNode::CheckerTextureNode()
|
||||
: TextureNode("checker_texture")
|
||||
{
|
||||
add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED);
|
||||
add_input("Color1", SHADER_SOCKET_COLOR);
|
||||
add_input("Color2", SHADER_SOCKET_COLOR);
|
||||
add_input("Scale", SHADER_SOCKET_FLOAT, 1.0f);
|
||||
|
||||
add_output("Color", SHADER_SOCKET_COLOR);
|
||||
add_output("Fac", SHADER_SOCKET_FLOAT);
|
||||
}
|
||||
|
||||
void CheckerTextureNode::compile(SVMCompiler& compiler)
|
||||
{
|
||||
ShaderInput *vector_in = input("Vector");
|
||||
ShaderInput *color1_in = input("Color1");
|
||||
ShaderInput *color2_in = input("Color2");
|
||||
ShaderInput *scale_in = input("Scale");
|
||||
|
||||
ShaderOutput *color_out = output("Color");
|
||||
ShaderOutput *fac_out = output("Fac");
|
||||
|
||||
compiler.stack_assign(vector_in);
|
||||
compiler.stack_assign(color1_in);
|
||||
compiler.stack_assign(color2_in);
|
||||
if(scale_in->link) compiler.stack_assign(scale_in);
|
||||
|
||||
if(!tex_mapping.skip())
|
||||
tex_mapping.compile(compiler, vector_in->stack_offset, vector_in->stack_offset);
|
||||
|
||||
if(!color_out->links.empty())
|
||||
compiler.stack_assign(color_out);
|
||||
if(!fac_out->links.empty())
|
||||
compiler.stack_assign(fac_out);
|
||||
|
||||
compiler.add_node(NODE_TEX_CHECKER,
|
||||
compiler.encode_uchar4(vector_in->stack_offset, color1_in->stack_offset, color2_in->stack_offset, scale_in->stack_offset),
|
||||
compiler.encode_uchar4(color_out->stack_offset, fac_out->stack_offset),
|
||||
__float_as_int(scale_in->value.x));
|
||||
}
|
||||
|
||||
void CheckerTextureNode::compile(OSLCompiler& compiler)
|
||||
{
|
||||
compiler.add(this, "node_checker_texture");
|
||||
}
|
||||
|
||||
/* Normal */
|
||||
|
||||
NormalNode::NormalNode()
|
||||
|
||||
Reference in New Issue
Block a user