Blender
V3.3
|
#include "BLI_utildefines.h"
Go to the source code of this file.
Classes | |
struct | PaintSurfaceData |
struct | PaintPoint |
struct | PaintWavePoint |
Typedefs | |
typedef struct PaintSurfaceData | PaintSurfaceData |
typedef struct PaintPoint | PaintPoint |
typedef struct PaintWavePoint | PaintWavePoint |
#define DPAINT_PAINT_DRY 0 |
Definition at line 137 of file BKE_dynamicpaint.h.
#define DPAINT_PAINT_NEW 2 |
Definition at line 139 of file BKE_dynamicpaint.h.
#define DPAINT_PAINT_NONE -1 |
Definition at line 136 of file BKE_dynamicpaint.h.
#define DPAINT_PAINT_WET 1 |
Definition at line 138 of file BKE_dynamicpaint.h.
#define DPAINT_WAVE_ISECT_CHANGED -1 |
Definition at line 142 of file BKE_dynamicpaint.h.
#define DPAINT_WAVE_NONE 0 |
Definition at line 143 of file BKE_dynamicpaint.h.
#define DPAINT_WAVE_OBSTACLE 1 |
Definition at line 144 of file BKE_dynamicpaint.h.
#define DPAINT_WAVE_REFLECT_ONLY 2 |
Definition at line 145 of file BKE_dynamicpaint.h.
typedef struct PaintPoint PaintPoint |
typedef struct PaintSurfaceData PaintSurfaceData |
typedef struct PaintWavePoint PaintWavePoint |
void dynamicPaint_cacheUpdateFrames | ( | struct DynamicPaintSurface * | surface | ) |
int dynamicPaint_calculateFrame | ( | struct DynamicPaintSurface * | surface, |
struct Depsgraph * | depsgraph, | ||
struct Scene * | scene, | ||
struct Object * | cObject, | ||
int | frame | ||
) |
Calculate a single frame and included sub-frames for surface.
Definition at line 6338 of file dynamicpaint.c.
References depsgraph, dynamicPaint_applySurfaceDisplace(), dynamicPaint_canvas_mesh_get(), dynamicPaint_doStep(), dynamicPaint_generateBakeData(), float(), MOD_DPAINT_DISP_INCREMENTAL, scene, usdtokens::st(), and surface.
Referenced by dynamicPaint_bakeImageSequence(), and dynamicPaint_frameUpdate().
void dynamicPaint_clearSurface | ( | const struct Scene * | scene, |
struct DynamicPaintSurface * | surface | ||
) |
Clears surface data back to zero.
Referenced by BKE_ptcache_id_reset().
struct DynamicPaintSurface* dynamicPaint_createNewSurface | ( | struct DynamicPaintCanvasSettings * | canvas, |
struct Scene * | scene | ||
) |
Creates a new surface and adds it to the list If scene is null, frame range of 1-250 is used A pointer to this surface is returned.
Definition at line 1009 of file dynamicpaint.c.
References BKE_effector_add_weights(), BKE_modifier_path_init(), BKE_ptcache_add(), BLI_addtail(), BLT_I18NCONTEXT_ID_BRUSH, CTX_DATA_, dynamicPaintSurface_setUniqueName(), dynamicPaintSurface_updateType(), RenderData::efra, MEM_callocN, MOD_DPAINT_ACTIVE, MOD_DPAINT_ANTIALIAS, MOD_DPAINT_DISP_DISPLACE, MOD_DPAINT_DISSOLVE_LOG, MOD_DPAINT_DRY_LOG, MOD_DPAINT_IMGFORMAT_PNG, MOD_DPAINT_MULALPHA, MOD_DPAINT_OUT1, MOD_DPAINT_SURFACE_F_VERTEX, MOD_DPAINT_SURFACE_T_PAINT, MOD_DPAINT_USE_DRYING, NULL, PTCACHE_DISK_CACHE, Scene::r, scene, RenderData::sfra, surface, and DynamicPaintCanvasSettings::surfaces.
Referenced by dynamicPaint_createType(), dynamicPaint_Modifier_copy(), and surface_slot_add_exec().
bool dynamicPaint_createType | ( | struct DynamicPaintModifierData * | pmd, |
int | type, | ||
struct Scene * | scene | ||
) |
Initialize modifier data.
Definition at line 1086 of file dynamicpaint.c.
References CBData::a, DynamicPaintBrushSettings::alpha, DynamicPaintBrushSettings::b, CBData::b, BKE_colorband_add(), DynamicPaintModifierData::brush, DynamicPaintModifierData::canvas, DynamicPaintBrushSettings::collision, ColorBand::data, dynamicPaint_createNewSurface(), dynamicPaint_freeBrush(), dynamicPaint_freeCanvas(), DynamicPaintBrushSettings::flags, DynamicPaintBrushSettings::g, CBData::g, DynamicPaintBrushSettings::max_velocity, MEM_callocN, MOD_DPAINT_ABS_ALPHA, MOD_DPAINT_COL_VOLUME, MOD_DPAINT_PRFALL_SMOOTH, MOD_DPAINT_RAMP_ALPHA, MOD_DPAINT_WAVEB_CHANGE, MOD_DYNAMICPAINT_TYPE_BRUSH, MOD_DYNAMICPAINT_TYPE_CANVAS, NULL, DynamicPaintBrushSettings::paint_distance, DynamicPaintBrushSettings::paint_ramp, DynamicPaintBrushSettings::particle_radius, DynamicPaintBrushSettings::particle_smooth, DynamicPaintCanvasSettings::pmd, DynamicPaintBrushSettings::pmd, CBData::pos, DynamicPaintBrushSettings::proximity_falloff, DynamicPaintBrushSettings::psys, DynamicPaintBrushSettings::r, CBData::r, scene, DynamicPaintBrushSettings::smudge_strength, ColorBand::tot, type, DynamicPaintBrushSettings::vel_ramp, DynamicPaintBrushSettings::wave_clamp, DynamicPaintBrushSettings::wave_factor, DynamicPaintBrushSettings::wave_type, and DynamicPaintBrushSettings::wetness.
Referenced by dynamicPaint_Modifier_copy(), and type_toggle_exec().
int dynamicPaint_createUVSurface | ( | struct Scene * | scene, |
struct DynamicPaintSurface * | surface, | ||
float * | progress, | ||
short * | do_update | ||
) |
Image sequence baking.
Definition at line 2792 of file dynamicpaint.c.
References ADJ_BORDER_PIXEL, PaintSurfaceData::adj_data, ADJ_ON_MESH_EDGE, ImgSeqFormatData::barycentricWeights, BKE_mesh_runtime_looptri_ensure(), BKE_mesh_runtime_looptri_len(), BKE_mesh_vert_looptri_map_create(), BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), PaintAdjData::border, CD_MLOOPUV, CLOG_INFO, PaintPoint::color, copy_v2_v2(), CustomData_get_layer_named(), CustomData_has_layer(), CustomData_validate_layer_name(), data, dynamic_paint_create_uv_surface_direct_cb(), dynamic_paint_create_uv_surface_neighbor_cb(), dynamic_paint_find_neighbor_pixel(), dynamicPaint_allocateSurfaceType(), dynamicPaint_canvas_mesh_get(), dynamicPaint_freeSurfaceData(), dynamicPaint_initAdjacencyData(), dynamicPaint_pointHasNeighbor(), dynamicPaint_setInitialColor(), dynamicPaint_symmetrizeAdjData(), ELEM, error(), PaintAdjData::flags, float(), PaintSurfaceData::format_data, Mesh::ldata, LOG, max, MAX_CUSTOMDATA_LAYER_NAME, MEM_callocN, MEM_freeN, MEM_mallocN, mesh, min, minmax_v2v2_v2(), Mesh::mloop, MOD_DPAINT_ANTIALIAS, MOD_DPAINT_SURFACE_F_IMAGESEQ, Mesh::mvert, N_, PaintAdjData::n_index, PaintAdjData::n_num, PaintAdjData::n_target, PaintUVPoint::neighbor_pixel, next, NULL, ON_MESH_EDGE, OUT_OF_TEXTURE, scene, setError(), surface, PaintAdjData::total_border, PaintSurfaceData::total_points, Mesh::totloop, Mesh::totvert, PaintSurfaceData::type_data, TaskParallelSettings::use_threading, ImgSeqFormatData::uv_p, and w().
Referenced by dynamicPaint_bakeImageSequence().
void dynamicPaint_freeBrush | ( | struct DynamicPaintModifierData * | pmd | ) |
Definition at line 843 of file dynamicpaint.c.
References DynamicPaintModifierData::brush, MEM_freeN, NULL, DynamicPaintBrushSettings::paint_ramp, and DynamicPaintBrushSettings::vel_ramp.
Referenced by dynamicPaint_createType(), dynamicPaint_Modifier_free(), and type_toggle_exec().
void dynamicPaint_freeCanvas | ( | struct DynamicPaintModifierData * | pmd | ) |
Free canvas data.
Definition at line 979 of file dynamicpaint.c.
References DynamicPaintModifierData::canvas, dynamicPaint_freeSurface(), ListBase::first, MEM_freeN, NULL, surface, and DynamicPaintCanvasSettings::surfaces.
Referenced by dynamicPaint_createType(), dynamicPaint_Modifier_free(), and type_toggle_exec().
void dynamicPaint_freeSurface | ( | const struct DynamicPaintModifierData * | pmd, |
struct DynamicPaintSurface * | surface | ||
) |
Referenced by surface_slot_remove_exec().
void dynamicPaint_freeSurfaceData | ( | struct DynamicPaintSurface * | surface | ) |
Definition at line 932 of file dynamicpaint.c.
References ImgSeqFormatData::barycentricWeights, data, dynamicPaint_freeAdjData(), free_bakeData(), if(), MEM_freeN, MOD_DPAINT_SURFACE_F_IMAGESEQ, NULL, surface, and ImgSeqFormatData::uv_p.
Referenced by dpaint_bake_endjob(), dynamicPaint_createUVSurface(), dynamicPaint_freeSurface(), and dynamicPaint_resetSurface().
void dynamicPaint_Modifier_copy | ( | const struct DynamicPaintModifierData * | pmd, |
struct DynamicPaintModifierData * | tpmd, | ||
int | flag | ||
) |
Definition at line 1181 of file dynamicpaint.c.
References DynamicPaintCanvasSettings::active_sur, DynamicPaintBrushSettings::alpha, DynamicPaintBrushSettings::b, BKE_ptcache_free_list(), BLI_strncpy(), DynamicPaintModifierData::brush, DynamicPaintSurface::brush_group, DynamicPaintModifierData::canvas, DynamicPaintBrushSettings::collision, DynamicPaintSurface::color_dry_threshold, DynamicPaintSurface::color_spread_speed, copy_v4_v4(), DynamicPaintSurface::depth_clamp, DynamicPaintSurface::disp_factor, DynamicPaintSurface::disp_type, DynamicPaintSurface::diss_speed, DynamicPaintSurface::drip_acc, DynamicPaintSurface::drip_vel, DynamicPaintSurface::dry_speed, dynamicPaint_createNewSurface(), dynamicPaint_createType(), dynamicPaint_freeSurface(), DynamicPaintSurface::effect, DynamicPaintSurface::effect_ui, DynamicPaintSurface::effector_weights, eModifierFlag_SharedCaches, DynamicPaintSurface::end_frame, ListBase::first, ModifierData::flag, DynamicPaintSurface::flags, DynamicPaintBrushSettings::flags, DynamicPaintSurface::format, DynamicPaintBrushSettings::g, DynamicPaintSurface::image_fileformat, DynamicPaintSurface::image_output_path, DynamicPaintSurface::image_resolution, DynamicPaintSurface::influence_scale, DynamicPaintSurface::init_color, DynamicPaintSurface::init_color_type, DynamicPaintSurface::init_layername, DynamicPaintSurface::init_texture, LIB_ID_COPY_SET_COPIED_ON_WRITE, DynamicPaintBrushSettings::max_velocity, MEM_dupallocN, MEM_freeN, MOD_DYNAMICPAINT_TYPE_BRUSH, MOD_DYNAMICPAINT_TYPE_CANVAS, DynamicPaintModifierData::modifier, DynamicPaintSurface::name, NULL, DynamicPaintSurface::output_name, DynamicPaintSurface::output_name2, DynamicPaintBrushSettings::paint_distance, DynamicPaintBrushSettings::paint_ramp, DynamicPaintBrushSettings::particle_radius, DynamicPaintBrushSettings::particle_smooth, DynamicPaintCanvasSettings::pmd, DynamicPaintBrushSettings::pmd, DynamicPaintSurface::pointcache, DynamicPaintBrushSettings::proximity_falloff, DynamicPaintBrushSettings::psys, DynamicPaintSurface::ptcaches, DynamicPaintBrushSettings::r, DynamicPaintSurface::radius_scale, DynamicPaintBrushSettings::ray_dir, DynamicPaintSurface::shrink_speed, DynamicPaintBrushSettings::smudge_strength, DynamicPaintSurface::spread_speed, DynamicPaintSurface::start_frame, DynamicPaintSurface::substeps, surface, DynamicPaintCanvasSettings::surfaces, DynamicPaintSurface::type, DynamicPaintModifierData::type, DynamicPaintSurface::uvlayer_name, DynamicPaintBrushSettings::vel_ramp, DynamicPaintBrushSettings::wave_clamp, DynamicPaintSurface::wave_damping, DynamicPaintBrushSettings::wave_factor, DynamicPaintSurface::wave_smoothness, DynamicPaintSurface::wave_speed, DynamicPaintSurface::wave_spring, DynamicPaintSurface::wave_timescale, DynamicPaintBrushSettings::wave_type, and DynamicPaintBrushSettings::wetness.
Referenced by copyData().
struct Mesh* dynamicPaint_Modifier_do | ( | struct DynamicPaintModifierData * | pmd, |
struct Depsgraph * | depsgraph, | ||
struct Scene * | scene, | ||
struct Object * | ob, | ||
struct Mesh * | me | ||
) |
Modifier call. Processes dynamic paint modifier step.
Definition at line 2160 of file dynamicpaint.c.
References depsgraph, dynamicPaint_frameUpdate(), dynamicPaint_Modifier_apply(), mesh, and scene.
Referenced by modifyMesh().
void dynamicPaint_Modifier_free | ( | struct DynamicPaintModifierData * | pmd | ) |
Free whole dynamic-paint modifier.
Definition at line 997 of file dynamicpaint.c.
References dynamicPaint_freeBrush(), dynamicPaint_freeCanvas(), dynamicPaint_Modifier_free_runtime(), DynamicPaintModifierData::modifier, NULL, and ModifierData::runtime.
Referenced by freeData().
void dynamicPaint_Modifier_free_runtime | ( | struct DynamicPaintRuntime * | runtime | ) |
Definition at line 252 of file dynamicpaint.c.
References BKE_id_free(), DynamicPaintRuntime::brush_mesh, DynamicPaintRuntime::canvas_mesh, MEM_freeN, and NULL.
Referenced by dynamicPaint_Modifier_free(), and freeRuntimeData().
bool dynamicPaint_outputLayerExists | ( | struct DynamicPaintSurface * | surface, |
struct Object * | ob, | ||
int | output | ||
) |
Definition at line 322 of file dynamicpaint.c.
References BKE_object_defgroup_name_index(), CD_PROP_BYTE_COLOR, CustomData_get_named_layer_index(), Object::data, Mesh::ldata, MOD_DPAINT_SURFACE_F_VERTEX, MOD_DPAINT_SURFACE_T_PAINT, MOD_DPAINT_SURFACE_T_WEIGHT, output, and surface.
Referenced by dynamicPaint_Modifier_apply(), and output_toggle_exec().
void dynamicPaint_outputSurfaceImage | ( | struct DynamicPaintSurface * | surface, |
const char * | filepath, | ||
short | output_layer | ||
) |
Definition at line 3270 of file dynamicpaint.c.
References BKE_image_path_ensure_ext_from_imtype(), BKE_main_blendfile_path_from_global(), BLI_assert, BLI_make_existing_file(), BLI_parallel_range_settings_defaults(), BLI_path_abs(), BLI_strncpy(), BLI_task_parallel_range(), data, dynamic_paint_output_surface_image_displace_cb(), dynamic_paint_output_surface_image_paint_cb(), dynamic_paint_output_surface_image_wave_cb(), dynamic_paint_output_surface_image_wetmap_cb(), FILE_MAX, ImbFormatOptions::flag, ImBuf::foptions, ImBuf::ftype, IB_rectfloat, IMB_allocImBuf(), IMB_freeImBuf(), IMB_FTYPE_OPENEXR, IMB_FTYPE_PNG, IMB_saveiff(), MOD_DPAINT_IMGFORMAT_OPENEXR, MOD_DPAINT_SURFACE_T_DISPLACE, MOD_DPAINT_SURFACE_T_PAINT, MOD_DPAINT_SURFACE_T_WAVE, N_, NULL, OPENEXR_COMPRESS, ImbFormatOptions::quality, R_IMF_IMTYPE_OPENEXR, R_IMF_IMTYPE_PNG, setError(), surface, PaintSurfaceData::total_points, PaintSurfaceData::type_data, and TaskParallelSettings::use_threading.
Referenced by dynamicPaint_bakeImageSequence().
bool dynamicPaint_resetSurface | ( | const struct Scene * | scene, |
struct DynamicPaintSurface * | surface | ||
) |
Completely (re)initializes surface (only for point cache types).
void dynamicPaintSurface_setUniqueName | ( | struct DynamicPaintSurface * | surface, |
const char * | basename | ||
) |
Definition at line 401 of file dynamicpaint.c.
References basename(), BLI_strncpy(), BLI_uniquename_cb(), surface, and surface_duplicateNameExists().
Referenced by dynamicPaint_createNewSurface().
void dynamicPaintSurface_updateType | ( | struct DynamicPaintSurface * | surface | ) |
Change surface data to defaults on new type.
Definition at line 409 of file dynamicpaint.c.
References BLI_strncpy(), MOD_DPAINT_ANTIALIAS, MOD_DPAINT_SURFACE_F_IMAGESEQ, MOD_DPAINT_SURFACE_T_DISPLACE, MOD_DPAINT_SURFACE_T_PAINT, MOD_DPAINT_SURFACE_T_WAVE, MOD_DPAINT_SURFACE_T_WEIGHT, surface, and surface_setUniqueOutputName().
Referenced by dynamicPaint_createNewSurface().
struct DynamicPaintSurface* get_activeSurface | ( | struct DynamicPaintCanvasSettings * | canvas | ) |
Get currently active surface (in user interface).
Definition at line 317 of file dynamicpaint.c.
References DynamicPaintCanvasSettings::active_sur, BLI_findlink(), and DynamicPaintCanvasSettings::surfaces.
Referenced by dynamicpaint_bake_exec(), and output_toggle_exec().