Blender
V3.3
|
#include "workbench_private.h"
#include "DNA_fluid_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_force_types.h"
#include "DNA_volume_types.h"
#include "BLI_dynstr.h"
#include "BLI_listbase.h"
#include "BLI_rand.h"
#include "BLI_string_utils.h"
#include "BKE_fluid.h"
#include "BKE_global.h"
#include "BKE_object.h"
#include "BKE_volume.h"
#include "BKE_volume_render.h"
Go to the source code of this file.
Functions | |
void | workbench_volume_engine_init (WORKBENCH_Data *vedata) |
void | workbench_volume_cache_init (WORKBENCH_Data *vedata) |
static void | workbench_volume_modifier_cache_populate (WORKBENCH_Data *vedata, Object *ob, ModifierData *md) |
static void | workbench_volume_material_color (WORKBENCH_PrivateData *wpd, Object *ob, eV3DShadingColorType color_type, float color[3]) |
static void | workbench_volume_object_cache_populate (WORKBENCH_Data *vedata, Object *ob, eV3DShadingColorType color_type) |
void | workbench_volume_cache_populate (WORKBENCH_Data *vedata, Scene *UNUSED(scene), Object *ob, ModifierData *md, eV3DShadingColorType color_type) |
void | workbench_volume_draw_pass (WORKBENCH_Data *vedata) |
void workbench_volume_cache_init | ( | WORKBENCH_Data * | vedata | ) |
Definition at line 41 of file workbench_volume.c.
References DRW_pass_create(), DRW_STATE_BLEND_ALPHA_PREMUL, DRW_STATE_CULL_FRONT, DRW_STATE_WRITE_COLOR, WORKBENCH_Data::psl, WORKBENCH_Data::stl, WORKBENCH_PassList::volume_ps, WORKBENCH_PrivateData::volumes_do, and WORKBENCH_StorageList::wpd.
Referenced by workbench_cache_init().
void workbench_volume_cache_populate | ( | WORKBENCH_Data * | vedata, |
Scene * | UNUSEDscene, | ||
Object * | ob, | ||
ModifierData * | md, | ||
eV3DShadingColorType | color_type | ||
) |
Definition at line 310 of file workbench_volume.c.
References NULL, workbench_volume_modifier_cache_populate(), and workbench_volume_object_cache_populate().
void workbench_volume_draw_pass | ( | WORKBENCH_Data * | vedata | ) |
Definition at line 324 of file workbench_volume.c.
References DefaultFramebufferList::color_only_fb, DRW_draw_pass(), DRW_viewport_framebuffer_list_get(), GPU_framebuffer_bind(), WORKBENCH_Data::psl, WORKBENCH_Data::stl, WORKBENCH_PassList::volume_ps, WORKBENCH_PrivateData::volumes_do, and WORKBENCH_StorageList::wpd.
Referenced by workbench_draw_sample().
void workbench_volume_engine_init | ( | WORKBENCH_Data * | vedata | ) |
Definition at line 26 of file workbench_volume.c.
References WORKBENCH_TextureList::dummy_coba_tx, WORKBENCH_TextureList::dummy_shadow_tx, WORKBENCH_TextureList::dummy_volume_tx, GPU_DATA_FLOAT, GPU_RGBA8, GPU_texture_create_1d(), GPU_texture_create_3d(), NULL, and WORKBENCH_Data::txl.
Referenced by workbench_engine_init().
|
static |
Definition at line 183 of file workbench_volume.c.
References WORKBENCH_UBO_Material::base_color, BKE_object_material_get_eval(), color, copy_v3_v3(), VOLUME_MATERIAL_NR, and workbench_material_ubo_data().
Referenced by workbench_volume_object_cache_populate().
|
static |
Definition at line 49 of file workbench_volume.c.
References FluidDomainSettings::active_color, FluidDomainSettings::active_fields, axis_dominant_v3_single(), FluidDomainSettings::axis_slice_method, AXIS_SLICE_SINGLE, BKE_object_dimensions_get(), BLI_halton_1d(), FluidDomainSettings::coba_field, DefaultTextureList::depth, FluidDomainSettings::display_thickness, FluidModifierData::domain, DRW_cache_cube_get(), DRW_cache_quad_get(), DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_state_disable(), DRW_shgroup_state_enable(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_bool_copy(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3(), DRW_smoke_ensure(), DRW_smoke_ensure_coba_field(), DRW_STATE_CULL_FRONT, DRW_view_viewmat_get(), DRW_viewport_texture_list_get(), WORKBENCH_TextureList::dummy_coba_tx, WORKBENCH_TextureList::dummy_volume_tx, ELEM, FluidDomainSettings::flags, FluidDomainSettings::fluid, FLUID_DISPLAY_INTERP_CLOSEST, FLUID_DISPLAY_INTERP_CUBIC, FLUID_DISPLAY_INTERP_LINEAR, FLUID_DOMAIN_ACTIVE_COLOR_SET, FLUID_DOMAIN_ACTIVE_COLORS, FLUID_DOMAIN_FIELD_FLAGS, FLUID_DOMAIN_FIELD_PHI, FLUID_DOMAIN_FIELD_PHI_IN, FLUID_DOMAIN_FIELD_PHI_OBSTACLE, FLUID_DOMAIN_FIELD_PHI_OUT, FLUID_DOMAIN_FIELD_PRESSURE, FLUID_DOMAIN_TYPE_GAS, FLUID_DOMAIN_USE_NOISE, FluidDomainSettings::grid_scale, FluidDomainSettings::interp_method, invert_v3(), len_v3(), max_ff(), max_fff(), mul_v3_fl(), mul_v3_v3(), NULL, WORKBENCH_Data::psl, FluidDomainSettings::res, sh, FluidDomainSettings::slice_axis, SLICE_AXIS_AUTO, FluidDomainSettings::slice_depth, FluidDomainSettings::slice_per_voxel, WORKBENCH_Data::stl, WORKBENCH_PrivateData::taa_sample, FluidDomainSettings::tex_coba, FluidDomainSettings::tex_color, FluidDomainSettings::tex_density, FluidDomainSettings::tex_field, FluidDomainSettings::tex_flame, FluidDomainSettings::tex_flame_coba, FluidDomainSettings::tex_shadow, WORKBENCH_Data::txl, FluidDomainSettings::type, FluidDomainSettings::use_coba, WORKBENCH_PassList::volume_ps, WORKBENCH_PrivateData::volumes_do, workbench_shader_volume_get(), WORKBENCH_VOLUME_INTERP_CLOSEST, WORKBENCH_VOLUME_INTERP_CUBIC, WORKBENCH_VOLUME_INTERP_LINEAR, WORKBENCH_PrivateData::world_ubo, and WORKBENCH_StorageList::wpd.
Referenced by workbench_volume_cache_populate().
|
static |
Definition at line 194 of file workbench_volume.c.
References abs_v3(), axis_dominant_v3_single(), VolumeDisplay::axis_slice_method, AXIS_SLICE_SINGLE, BKE_object_dimensions_get(), BKE_volume_density_scale(), BKE_volume_grid_active_get_for_read(), BKE_volume_load(), BLI_halton_1d(), color, Object::data, VolumeDisplay::density, DefaultTextureList::depth, Volume::display, DRW_cache_cube_get(), DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_state_disable(), DRW_shgroup_state_enable(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_mat4(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3_copy(), DRW_STATE_CULL_FRONT, DRW_view_viewmat_get(), DRW_viewport_texture_list_get(), DRW_volume_batch_cache_get_grid(), WORKBENCH_TextureList::dummy_shadow_tx, G, GPU_texture_get_mipmap_size(), VolumeDisplay::interpolation_method, invert_v3(), len_v3(), mat4_to_size(), max_ff(), max_fff(), mul_m4_m4m4(), mul_v3_fl(), mul_v3_v3(), NULL, DRWVolumeGrid::object_to_texture, Object::obmat, WORKBENCH_Data::psl, sh, VolumeDisplay::slice_axis, SLICE_AXIS_AUTO, VolumeDisplay::slice_depth, WORKBENCH_Data::stl, WORKBENCH_PrivateData::taa_sample, DRWVolumeGrid::texture, DRWVolumeGrid::texture_to_object, WORKBENCH_Data::txl, VOLUME_DISPLAY_INTERP_CLOSEST, VOLUME_DISPLAY_INTERP_CUBIC, VOLUME_DISPLAY_INTERP_LINEAR, WORKBENCH_PassList::volume_ps, WORKBENCH_PrivateData::volumes_do, workbench_shader_volume_get(), WORKBENCH_VOLUME_INTERP_CLOSEST, WORKBENCH_VOLUME_INTERP_CUBIC, WORKBENCH_VOLUME_INTERP_LINEAR, workbench_volume_material_color(), WORKBENCH_PrivateData::world_ubo, and WORKBENCH_StorageList::wpd.
Referenced by workbench_volume_cache_populate().