Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/shader/nodes/node_shader_texture.c
| Show First 20 Lines • Show All 120 Lines • ▼ Show 20 Lines | |||||
| static int gpu_shader_texture(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out) | static int gpu_shader_texture(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out) | ||||
| { | { | ||||
| Tex *tex = (Tex *)node->id; | Tex *tex = (Tex *)node->id; | ||||
| if (tex && tex->ima && (tex->type == TEX_IMAGE || tex->type == TEX_ENVMAP)) { | if (tex && tex->ima && (tex->type == TEX_IMAGE || tex->type == TEX_ENVMAP)) { | ||||
| if (tex->type == TEX_IMAGE) { | if (tex->type == TEX_IMAGE) { | ||||
| GPUNodeLink *texlink = GPU_image(tex->ima, &tex->iuser, false); | GPUNodeLink *texlink = GPU_image(tex->ima, &tex->iuser, false); | ||||
| GPU_stack_link(mat, "texture_image", in, out, texlink); | GPU_stack_link(mat, node, "texture_image", in, out, texlink); | ||||
| } | } | ||||
| else { /* TEX_ENVMAP */ | else { /* TEX_ENVMAP */ | ||||
| if (!in[0].link) | if (!in[0].link) | ||||
| in[0].link = GPU_uniform(in[0].vec); | in[0].link = GPU_uniform(in[0].vec); | ||||
| if (!GPU_material_use_world_space_shading(mat)) | if (!GPU_material_use_world_space_shading(mat)) | ||||
| GPU_link(mat, "direction_transform_m4v3", in[0].link, GPU_builtin(GPU_INVERSE_VIEW_MATRIX), &in[0].link); | GPU_link(mat, "direction_transform_m4v3", in[0].link, GPU_builtin(GPU_INVERSE_VIEW_MATRIX), &in[0].link); | ||||
| GPU_link(mat, "mtex_cube_map_refl_from_refldir", | GPU_link(mat, "mtex_cube_map_refl_from_refldir", | ||||
| GPU_cube_map(tex->ima, &tex->iuser, false), in[0].link, &out[0].link, &out[1].link); | GPU_cube_map(tex->ima, &tex->iuser, false), in[0].link, &out[0].link, &out[1].link); | ||||
| Show All 29 Lines | |||||