Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/shader/nodes/node_shader_bsdf_principled.cc
| Show First 20 Lines • Show All 161 Lines • ▼ Show 20 Lines | if (use_refract) { | ||||
| flag |= GPU_MATFLAG_REFRACT; | flag |= GPU_MATFLAG_REFRACT; | ||||
| } | } | ||||
| if (use_subsurf) { | if (use_subsurf) { | ||||
| flag |= GPU_MATFLAG_SUBSURFACE; | flag |= GPU_MATFLAG_SUBSURFACE; | ||||
| } | } | ||||
| if (use_transparency) { | if (use_transparency) { | ||||
| flag |= GPU_MATFLAG_TRANSPARENT; | flag |= GPU_MATFLAG_TRANSPARENT; | ||||
| } | } | ||||
| if (use_clear) { | |||||
| flag |= GPU_MATFLAG_CLEARCOAT; | |||||
| } | |||||
| /* Ref. T98190: Defines are optimizations for old compilers. | |||||
| * Might become unecessary with EEVEE-Next. */ | |||||
| if (use_diffuse == false && use_refract == false && use_clear == true) { | |||||
| flag |= GPU_MATFLAG_PRINCIPLED_CLEARCOAT; | |||||
| } | |||||
| else if (use_diffuse == false && use_refract == false && use_clear == false) { | |||||
| flag |= GPU_MATFLAG_PRINCIPLED_METALLIC; | |||||
| } | |||||
| else if (use_diffuse == true && use_refract == false && use_clear == false) { | |||||
| flag |= GPU_MATFLAG_PRINCIPLED_DIELECTRIC; | |||||
| } | |||||
| else if (use_diffuse == false && use_refract == true && use_clear == false) { | |||||
| flag |= GPU_MATFLAG_PRINCIPLED_GLASS; | |||||
| } | |||||
| else { | |||||
| flag |= GPU_MATFLAG_PRINCIPLED_ANY; | |||||
| } | |||||
| if (use_subsurf) { | if (use_subsurf) { | ||||
| bNodeSocket *socket = (bNodeSocket *)BLI_findlink(&node->original->inputs, 2); | bNodeSocket *socket = (bNodeSocket *)BLI_findlink(&node->original->inputs, 2); | ||||
| bNodeSocketValueRGBA *socket_data = (bNodeSocketValueRGBA *)socket->default_value; | bNodeSocketValueRGBA *socket_data = (bNodeSocketValueRGBA *)socket->default_value; | ||||
| /* For some reason it seems that the socket value is in ARGB format. */ | /* For some reason it seems that the socket value is in ARGB format. */ | ||||
| use_subsurf = GPU_material_sss_profile_create(mat, &socket_data->value[1]); | use_subsurf = GPU_material_sss_profile_create(mat, &socket_data->value[1]); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines | |||||