19Material::Material() =
default;
24 packed_data = Material::pack_data(0.0f, 0.4f, 1.0f);
49bool Material::is_transparent()
51 uint32_t full_alpha_ref = 0x00ff0000;
52 return (
packed_data & full_alpha_ref) != full_alpha_ref;
55uint32_t Material::pack_data(
float metallic,
float roughness,
float alpha)
58 roughness =
sqrtf(roughness);
62 return (packed_alpha << 16u) | (packed_roughness << 8u) | packed_metallic;
67 const ::bNode *node =
nullptr;
72 if (!node || !image) {
76 switch (node->type_legacy) {
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
IMETHOD void random(Vector &a)
addDelta operator for displacement rotational velocity.
MINLINE unsigned char unit_float_to_uchar_clamp(float val)
VecBase< float, 3 > float3
GPUSamplerState sampler_state
MaterialTexture()=default