diff options
Diffstat (limited to 'source/blender/nodes/shader/nodes/node_shader_tex_environment.c')
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_tex_environment.c | 33 |
1 files changed, 1 insertions, 32 deletions
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c index 3c0a1a22e5a..f9ab16ae84a 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c @@ -51,37 +51,6 @@ static void node_shader_init_tex_environment(bNodeTree *UNUSED(ntree), bNode* no node->storage = tex; } -static void node_shader_exec_tex_environment(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - Image *ima= (Image*)node->id; - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexEnvironment *tex= (NodeTexEnvironment*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3]; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - if(ima) { - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - - if(ibuf) { - float u= (atan2f(vec[1], vec[0]) + (float)M_PI)/(2*M_PI); - float v= atan2f(vec[2], hypotf(vec[0], vec[1]))/M_PI + 0.5f; - float rgb[4]; - - ibuf_sample(ibuf, u, v, 0.0f, 0.0f, rgb); - - if(tex->color_space == SHD_COLORSPACE_SRGB) - srgb_to_linearrgb_v3_v3(out[0]->vec, rgb); - else - copy_v3_v3(out[0]->vec, rgb); - } - } -} - static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) { Image *ima= (Image*)node->id; @@ -112,7 +81,7 @@ void register_node_type_sh_tex_environment(ListBase *lb) node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_environment); node_type_storage(&ntype, "NodeTexEnvironment", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_environment); + node_type_exec(&ntype, NULL); node_type_gpu(&ntype, node_shader_gpu_tex_environment); nodeRegisterType(lb, &ntype); |