17Material::Material() =
default;
22 packed_data = Material::pack_data(0.0f, 0.4f, 1.0f);
36 base_color = ob.
color;
38 packed_data = Material::pack_data(0.0f, 0.4f, ob.
color[3]);
47bool Material::is_transparent()
49 uint32_t full_alpha_ref = 0x00ff0000;
50 return (packed_data & full_alpha_ref) != full_alpha_ref;
53uint32_t Material::pack_data(
float metallic,
float roughness,
float alpha)
56 roughness =
sqrtf(roughness);
60 return (packed_alpha << 16u) | (packed_roughness << 8u) | packed_metallic;
63MaterialTexture::MaterialTexture(
Object *ob,
int material_index)
65 const ::bNode *node =
nullptr;
70 if (!node || !image) {
113 name = image->id.name;
121 name = image->id.name;
ImageGPUTextures BKE_image_get_gpu_material_texture(Image *image, ImageUser *iuser, const bool use_tile_mapping)
#define SH_NODE_TEX_IMAGE
#define SH_NODE_TEX_ENVIRONMENT
#define BLI_assert_msg(a, msg)
unsigned int BLI_ghashutil_strhash_p_murmur(const void *ptr)
BLI_INLINE float BLI_hash_int_01(unsigned int k)
void hsv_to_rgb_v(const float hsv[3], float r_rgb[3])
@ IMA_ALPHA_CHANNEL_PACKED
@ SHD_IMAGE_EXTENSION_MIRROR
@ SHD_IMAGE_EXTENSION_CLIP
@ SHD_IMAGE_EXTENSION_REPEAT
@ SHD_IMAGE_EXTENSION_EXTEND
bool ED_object_get_active_image(Object *ob, int mat_nr, Image **r_ima, ImageUser **r_iuser, const bNode **r_node, const bNodeTree **r_ntree)
@ GPU_SAMPLER_EXTEND_MODE_MIRRORED_REPEAT
@ GPU_SAMPLER_EXTEND_MODE_REPEAT
@ GPU_SAMPLER_EXTEND_MODE_EXTEND
@ GPU_SAMPLER_EXTEND_MODE_CLAMP_TO_BORDER
@ GPU_SAMPLER_FILTERING_LINEAR
#define unit_float_to_uchar_clamp(val)
VecBase< float, 3 > float3