10 b.add_input<
decl::Float>(
N_(
"Height")).default_value(0.0f).min(0.0f).max(1000.0f);
11 b.add_input<
decl::Float>(
N_(
"Midlevel")).default_value(0.0f).min(0.0f).max(1000.0f);
12 b.add_input<
decl::Float>(
N_(
"Scale")).default_value(1.0f).min(0.0f).max(1000.0f);
23 if (
STREQ(sock->name,
"Midlevel")) {
36 GPU_link(mat,
"world_normals_get", &in[3].link);
void node_type_gpu(struct bNodeType *ntype, NodeGPUExecFunction gpu_fn)
void node_type_init(struct bNodeType *ntype, void(*initfunc)(struct bNodeTree *ntree, struct bNode *node))
#define NODE_CLASS_OP_VECTOR
#define SH_NODE_DISPLACEMENT
void nodeRegisterType(struct bNodeType *ntype)
#define LISTBASE_FOREACH(type, var, list)
bool GPU_link(GPUMaterial *mat, const char *name,...)
bool GPU_stack_link(GPUMaterial *mat, struct bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
static void node_declare(NodeDeclarationBuilder &b)
static void node_shader_init_displacement(bNodeTree *UNUSED(ntree), bNode *node)
static int gpu_shader_displacement(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
static const pxr::TfToken out("out", pxr::TfToken::Immortal)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void register_node_type_sh_displacement()
void sh_node_type_base(struct bNodeType *ntype, int type, const char *name, short nclass)
NodeDeclareFunction declare