Blender
V3.3
|
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_world_types.h"
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_blender.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_material.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "DEG_depsgraph.h"
#include "RE_multires_bake.h"
#include "RE_pipeline.h"
#include "RE_texture.h"
#include "PIL_time.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_uvedit.h"
#include "object_intern.h"
Go to the source code of this file.
Classes | |
struct | MultiresBakerJobData |
struct | MultiresBakeJob |
Typedefs | |
typedef struct MultiresBakerJobData | MultiresBakerJobData |
typedef enum ClearFlag | ClearFlag |
Enumerations | |
enum | ClearFlag { CLEAR_TANGENT_NORMAL = 1 , CLEAR_DISPLACEMENT = 2 } |
typedef struct MultiresBakerJobData MultiresBakerJobData |
enum ClearFlag |
Enumerator | |
---|---|
CLEAR_TANGENT_NORMAL | |
CLEAR_DISPLACEMENT |
Definition at line 269 of file object_bake.c.
|
static |
Definition at line 634 of file object_bake.c.
References BLI_assert, C, CTX_data_scene(), is_multires_bake(), multiresbake_image_exec_locked(), NC_SCENE, ND_RENDER_RESULT, OPERATOR_CANCELLED, result, scene, and WM_event_add_notifier().
Referenced by OBJECT_OT_bake_image().
Definition at line 57 of file object_bake.c.
References ED_object_get_active_image(), image(), and NULL.
Referenced by bake_object_image_get_array(), and multiresbake_check().
Definition at line 64 of file object_bake.c.
References bake_object_image_get(), MEM_mallocN, and Object::totcol.
Referenced by init_multiresbake_job(), and multiresbake_image_exec_locked().
|
static |
Definition at line 308 of file object_bake.c.
References clear_single_image(), image(), and LIB_TAG_DOIT.
Referenced by multiresbake_image_exec_locked(), and multiresbake_startjob().
Definition at line 274 of file object_bake.c.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_imageuser_default(), CLEAR_DISPLACEMENT, CLEAR_TANGENT_NORMAL, image(), IMB_rectfill(), LIB_TAG_DOIT, LISTBASE_FOREACH, NULL, ImBuf::planes, R_IMF_PLANES_RGBA, tile, and ImageUser::tile.
Referenced by clear_images_poly().
|
static |
Definition at line 417 of file object_bake.c.
References RenderData::bake_biasdist, MultiresBakeJob::bake_clear, RenderData::bake_flag, MultiresBakeJob::bake_margin, RenderData::bake_margin, MultiresBakeJob::bake_margin_type, RenderData::bake_margin_type, RenderData::bake_mode, bake_object_image_get_array(), RenderData::bake_samples, RenderData::bake_user_scale, MultiresBakeJob::bias, BKE_scene_num_threads(), BLI_addtail(), C, CTX_DATA_BEGIN, CTX_DATA_END, CTX_data_scene(), data, MultiresBakeJob::data, MEM_callocN, MultiresBakeJob::mode, multires_flush_sculpt_updates(), multiresbake_create_hiresdm(), multiresbake_create_loresdm(), MultiresBakeJob::number_of_rays, Scene::r, R_BAKE_CLEAR, R_BAKE_EXTEND, R_BAKE_LORES_MESH, R_BAKE_USERSCALE, RE_BAKE_NORMALS, scene, MultiresBakeJob::scene, MultiresBakeJob::threads, Object::totcol, MultiresBakeJob::use_lores_mesh, and MultiresBakeJob::user_scale.
Referenced by multiresbake_image_exec().
Definition at line 613 of file object_bake.c.
References RenderData::bake_flag, RenderData::bake_mode, ELEM, Scene::r, R_BAKE_MULTIRES, RE_BAKE_AO, RE_BAKE_DISPLACEMENT, RE_BAKE_NORMALS, and scene.
Referenced by bake_image_exec().
|
static |
Definition at line 113 of file object_bake.c.
References Freestyle::a, bake_object_image_get(), BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_imageuser_default(), BKE_modifier_is_enabled(), BKE_report(), C, ImBuf::channels, CTX_DATA_BEGIN, CTX_DATA_END, CTX_data_scene(), Object::data, ELEM, eModifierMode_Realtime, get_multires_modifier(), LISTBASE_FOREACH, MPoly::mat_nr, Mesh::mloopuv, MultiresModifierData::modifier, Mesh::mpoly, ModifierData::next, NULL, OB_MESH, ImBuf::rect, ImBuf::rect_float, wmOperator::reports, RPT_ERROR, scene, tile, ImageUser::tile, Image::tiles, MultiresModifierData::totlvl, Mesh::totpoly, and Object::type.
Referenced by multiresbake_image_exec(), and multiresbake_image_exec_locked().
|
static |
Definition at line 243 of file object_bake.c.
References CD_MASK_BAREMESH, CDDM_from_mesh(), CustomData_set_only_copy(), Object::data, DM_set_only_copy(), get_multires_modifier(), CustomData_MeshMasks::lmask, DerivedMesh::loopData, MultiresModifierData::lvl, multires_make_derived_from_derived(), CustomData_MeshMasks::pmask, DerivedMesh::polyData, DerivedMesh::release, scene, and MultiresModifierData::sculptlvl.
Referenced by init_multiresbake_job(), and multiresbake_image_exec_locked().
|
static |
Definition at line 217 of file object_bake.c.
References CD_MASK_BAREMESH, CDDM_from_mesh(), Object::data, DM_set_only_copy(), get_multires_modifier(), if(), MultiresModifierData::lvl, multires_make_derived_from_derived(), DerivedMesh::release, and scene.
Referenced by init_multiresbake_job(), and multiresbake_image_exec_locked().
Definition at line 526 of file object_bake.c.
References BKE_image_partial_update_mark_full_update(), BLI_freelistN(), data, MultiresBakeJob::data, LinkData::data, ListBase::first, MEM_freeN, LinkData::next, and next.
Referenced by multiresbake_image_exec().
|
static |
Definition at line 555 of file object_bake.c.
References BKE_report(), C, CTX_data_scene(), CTX_wm_manager(), CTX_wm_window(), MultiresBakeJob::data, ListBase::first, G, init_multiresbake_job(), MEM_callocN, multiresbake_check(), multiresbake_freejob(), multiresbake_startjob(), NC_IMAGE, NULL, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, wmOperator::reports, RPT_ERROR, scene, WM_cursor_wait(), WM_event_add_modal_handler(), WM_JOB_EXCL_RENDER, WM_JOB_PRIORITY, WM_JOB_PROGRESS, WM_JOB_TYPE_OBJECT_BAKE_TEXTURE, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), and WM_jobs_timer().
Referenced by objects_bake_render_invoke().
|
static |
Definition at line 332 of file object_bake.c.
References MultiresBakeRender::array, RenderData::bake_biasdist, RenderData::bake_flag, RenderData::bake_margin, MultiresBakeRender::bake_margin, RenderData::bake_margin_type, MultiresBakeRender::bake_margin_type, RenderData::bake_mode, bake_object_image_get_array(), RenderData::bake_samples, RenderData::bake_user_scale, MultiresBakeRender::bias, BKE_report(), BKE_scene_num_threads(), BLI_freelistN(), C, CLEAR_DISPLACEMENT, clear_images_poly(), CLEAR_TANGENT_NORMAL, CTX_DATA_BEGIN, CTX_DATA_END, CTX_data_scene(), MultiresBakeRender::hires_dm, MultiresBakeRender::image, MultiresBakeRender::len, MultiresBakeRender::lores_dm, MultiresBakeRender::lvl, MEM_freeN, MultiresBakeRender::mode, multires_flush_sculpt_updates(), multiresbake_check(), multiresbake_create_hiresdm(), multiresbake_create_loresdm(), NULL, MultiresBakeRender::number_of_rays, MultiresBakeRender::ob_image, OPERATOR_CANCELLED, OPERATOR_FINISHED, Scene::r, R_BAKE_CLEAR, R_BAKE_EXTEND, R_BAKE_LORES_MESH, R_BAKE_USERSCALE, RE_BAKE_DISPLACEMENT, RE_BAKE_NORMALS, RE_multires_bake_images(), DerivedMesh::release, wmOperator::reports, RPT_ERROR, scene, MultiresBakeRender::scene, MultiresBakeRender::threads, MultiresBakeRender::tot_lvl, Object::totcol, MultiresBakeRender::use_lores_mesh, and MultiresBakeRender::user_scale.
Referenced by bake_image_exec().
|
static |
Definition at line 463 of file object_bake.c.
References MultiresBakeRender::array, MultiresBakeJob::bake_clear, MultiresBakeJob::bake_margin, MultiresBakeRender::bake_margin, MultiresBakeJob::bake_margin_type, MultiresBakeRender::bake_margin_type, MultiresBakeRender::baked_objects, MultiresBakeJob::bias, MultiresBakeRender::bias, BLI_listbase_count(), CLEAR_DISPLACEMENT, clear_images_poly(), CLEAR_TANGENT_NORMAL, data, MultiresBakeJob::data, MultiresBakeRender::do_update, ListBase::first, MultiresBakeRender::hires_dm, MultiresBakeRender::image, MultiresBakeRender::len, MultiresBakeRender::lores_dm, MultiresBakeRender::lvl, MultiresBakeJob::mode, MultiresBakeRender::mode, NULL, MultiresBakeJob::number_of_rays, MultiresBakeRender::number_of_rays, MultiresBakeRender::ob_image, MultiresBakeRender::progress, RE_BAKE_DISPLACEMENT, RE_BAKE_NORMALS, RE_multires_bake_images(), MultiresBakeJob::scene, MultiresBakeRender::scene, MultiresBakeRender::stop, MultiresBakeJob::threads, MultiresBakeRender::threads, MultiresBakeRender::tot_lvl, MultiresBakeRender::tot_obj, MultiresBakeJob::use_lores_mesh, MultiresBakeRender::use_lores_mesh, MultiresBakeJob::user_scale, and MultiresBakeRender::user_scale.
Referenced by multiresbake_image_exec().
void OBJECT_OT_bake_image | ( | wmOperatorType * | ot | ) |
Definition at line 651 of file object_bake.c.
References bake_image_exec(), wmOperatorType::description, ED_operator_object_active(), wmOperatorType::exec, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, objects_bake_render_invoke(), objects_bake_render_modal(), ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_object().
|
static |
Definition at line 622 of file object_bake.c.
References C, CTX_data_scene(), multiresbake_image_exec(), NC_SCENE, ND_RENDER_RESULT, OPERATOR_CANCELLED, result, scene, and WM_event_add_notifier().
Referenced by OBJECT_OT_bake_image().
|
static |
Catch escape key to cancel.
Definition at line 598 of file object_bake.c.
References C, CTX_data_scene(), CTX_wm_manager(), EVT_ESCKEY, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, wmEvent::type, WM_JOB_TYPE_OBJECT_BAKE_TEXTURE, and WM_jobs_test().
Referenced by OBJECT_OT_bake_image().