Blender
V3.3
|
#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 "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BKE_attribute.h"
#include "BKE_callbacks.h"
#include "BKE_context.h"
#include "BKE_editmesh.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_image_format.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_mesh.h"
#include "BKE_mesh_mapping.h"
#include "BKE_modifier.h"
#include "BKE_node.h"
#include "BKE_object.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "DEG_depsgraph_query.h"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "IMB_colormanagement.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 | BakeAPIRender |
Typedefs | |
typedef struct BakeAPIRender | BakeAPIRender |
Functions | |
static void | bake_set_props (wmOperator *op, Scene *scene) |
static void | bake_progress_update (void *bjv, float progress) |
static int | bake_modal (bContext *C, wmOperator *UNUSED(op), const wmEvent *event) |
static int | bake_break (void *UNUSED(rjv)) |
static void | bake_update_image (ScrArea *area, Image *image) |
static bool | write_internal_bake_pixels (Image *image, const int image_tile_number, BakePixel pixel_array[], float *buffer, const int width, const int height, const int margin, const char margin_type, const bool is_clear, const bool is_noncolor, Mesh const *mesh_eval, char const *uv_layer, const float uv_offset[2]) |
static void | bake_targets_refresh (BakeTargets *targets) |
static bool | write_external_bake_pixels (const char *filepath, BakePixel pixel_array[], float *buffer, const int width, const int height, const int margin, const int margin_type, ImageFormatData const *im_format, const bool is_noncolor, Mesh const *mesh_eval, char const *uv_layer, const float uv_offset[2]) |
static bool | is_noncolor_pass (eScenePassType pass_type) |
static bool | bake_object_check (ViewLayer *view_layer, Object *ob, const eBakeTarget target, ReportList *reports) |
static bool | bake_pass_filter_check (eScenePassType pass_type, const int pass_filter, ReportList *reports) |
static bool | bake_objects_check (Main *bmain, ViewLayer *view_layer, Object *ob, ListBase *selected_objects, ReportList *reports, const bool is_selected_to_active, const eBakeTarget target) |
static void | bake_targets_clear (Main *bmain, const bool is_tangent) |
static Mesh * | bake_mesh_new_from_object (Depsgraph *depsgraph, Object *object, const bool preserve_origindex) |
static bool | bake_targets_init_image_textures (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, ReportList *reports) |
static bool | bake_targets_init_internal (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, ReportList *reports) |
static bool | bake_targets_output_internal (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, BakePixel *pixel_array, ReportList *reports, Mesh *mesh_eval) |
static bool | bake_targets_init_external (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, ReportList *reports) |
static bool | bake_targets_output_external (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, Object *ob_eval, Mesh *mesh_eval, BakePixel *pixel_array, ReportList *reports) |
static bool | bake_targets_init_vertex_colors (Main *bmain, BakeTargets *targets, Object *ob, ReportList *reports) |
static int | find_original_loop (const Mesh *me_orig, const int *vert_origindex, const int *poly_origindex, const int poly_eval, const int vert_eval) |
static void | bake_targets_populate_pixels_color_attributes (BakeTargets *targets, Object *ob, Mesh *me_eval, BakePixel *pixel_array) |
static void | bake_result_add_to_rgba (float rgba[4], const float *result, const int channels_num) |
static void | convert_float_color_to_byte_color (const MPropCol *float_colors, const int num, const bool is_noncolor, MLoopCol *byte_colors) |
static bool | bake_targets_output_vertex_colors (BakeTargets *targets, Object *ob) |
static bool | bake_targets_init (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, Object *ob_eval, ReportList *reports) |
static void | bake_targets_populate_pixels (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, Mesh *me_eval, BakePixel *pixel_array) |
static bool | bake_targets_output (const BakeAPIRender *bkr, BakeTargets *targets, Object *ob, Object *ob_eval, Mesh *me_eval, BakePixel *pixel_array, ReportList *reports) |
static void | bake_targets_free (BakeTargets *targets) |
static int | bake (const BakeAPIRender *bkr, Object *ob_low, const ListBase *selected_objects, ReportList *reports) |
static void | bake_init_api_data (wmOperator *op, bContext *C, BakeAPIRender *bkr) |
static int | bake_exec (bContext *C, wmOperator *op) |
static void | bake_startjob (void *bkv, short *UNUSED(stop), short *do_update, float *progress) |
static void | bake_job_complete (void *bkv) |
static void | bake_job_canceled (void *bkv) |
static void | bake_freejob (void *bkv) |
static int | bake_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) |
void | OBJECT_OT_bake (wmOperatorType *ot) |
typedef struct BakeAPIRender BakeAPIRender |
|
static |
Definition at line 1322 of file object_bake_api.c.
References bake_mesh_new_from_object(), bake_targets_free(), bake_targets_init(), bake_targets_output(), bake_targets_populate_pixels(), bake_targets_refresh(), BASE_ENABLED_RENDER, Object::base_flag, BASE_VISIBLE_DEPSGRAPH, BKE_id_free(), BKE_mesh_new_from_object(), BKE_modifier_free(), BKE_modifiers_findby_type(), BKE_object_eval_reset(), BKE_object_handle_data_update(), BKE_report(), BKE_reportf(), BKE_scene_graph_update_tagged(), BLI_assert, BLI_findstring(), BLI_remlink(), BakeAPIRender::cage_extrusion, CD_MLOOPUV, BakeTargets::channels_num, copy_m4_m4(), BakeAPIRender::custom_cage, CustomData_get_named_layer(), DAG_EVAL_RENDER, Object::data, PointerRNA::data, DEG_get_evaluated_object(), DEG_graph_build_from_view_layer(), DEG_graph_free(), DEG_graph_new(), depsgraph, eModifierMode_Render, eModifierType_EdgeSplit, eModifierType_Multires, ListBase::first, MultiresModifierData::flags, Mesh::id, Object::id, if(), invert_m4_m4(), BakeAPIRender::is_cage, BakeHighPolyData::is_flip_object, is_negative_m4(), BakeAPIRender::is_selected_to_active, Mesh::ldata, BakeAPIRender::main, BakeAPIRender::max_ray_distance, BakeHighPolyData::me, MEM_callocN, MEM_freeN, MEM_mallocN, ModifierData::mode, Object::modifiers, ID::name, ModifierData::next, CollectionPointerLink::next, BakeAPIRender::normal_space, BakeAPIRender::normal_swizzle, NULL, BakeHighPolyData::ob, BakeHighPolyData::ob_eval, OB_HIDE_RENDER, OB_MESH, Main::objects, Object::obmat, BakeHighPolyData::obmat, OPERATOR_CANCELLED, OPERATOR_FINISHED, BakeAPIRender::pass_filter, BakeAPIRender::pass_type, BakeTargets::pixels_num, CollectionPointerLink::ptr, R_BAKE_POSX, R_BAKE_POSY, R_BAKE_POSZ, R_BAKE_SPACE_OBJECT, R_BAKE_SPACE_TANGENT, R_BAKE_SPACE_WORLD, R_BAKE_TARGET_VERTEX_COLORS, RE_bake_engine(), RE_bake_engine_set_engine_parameters(), RE_bake_has_engine(), RE_bake_normal_world_to_object(), RE_bake_normal_world_to_tangent(), RE_bake_normal_world_to_world(), RE_bake_pixels_populate_from_objects(), BakeAPIRender::render, BakeTargets::result, RPT_ERROR, SCE_PASS_NORMAL, scene, BakeAPIRender::scene, SUBSURF_UV_SMOOTH_NONE, BakeAPIRender::target, Mesh::totloop, Mesh::totpoly, ModifierData::type, Object::type, BakeAPIRender::uv_layer, MultiresModifierData::uv_smooth, BakeAPIRender::view_layer, and Object::visibility_flag.
Referenced by bake_exec(), bake_set_props(), bake_startjob(), bake_targets_output_external(), and BKE_ptcache_bake().
|
static |
for exec() when there is no render job NOTE: this won't check for the escape key being pressed, but doing so isn't thread-safe.
Definition at line 153 of file object_bake_api.c.
References G.
Referenced by bake_exec(), and bake_invoke().
|
static |
Definition at line 1780 of file object_bake_api.c.
References bake(), bake_break(), bake_init_api_data(), bake_objects_check(), bake_pass_filter_check(), bake_set_props(), bake_targets_clear(), BLI_freelistN(), BLI_listbase_is_single(), C, CTX_data_scene(), PointerRNA::data, ListBase::first, G, BakeAPIRender::is_clear, BakeAPIRender::is_selected_to_active, BakeAPIRender::main, CollectionPointerLink::next, BakeAPIRender::normal_space, NULL, BakeAPIRender::ob, OPERATOR_CANCELLED, BakeAPIRender::pass_filter, BakeAPIRender::pass_type, CollectionPointerLink::ptr, R_BAKE_SPACE_TANGENT, RE_SetReports(), RE_test_break_cb(), BakeAPIRender::render, BakeAPIRender::reports, result, SCE_PASS_NORMAL, scene, BakeAPIRender::selected_objects, BakeAPIRender::target, and BakeAPIRender::view_layer.
Referenced by OBJECT_OT_bake().
Definition at line 1902 of file object_bake_api.c.
References BLI_freelistN(), G, MEM_freeN, and BakeAPIRender::selected_objects.
Referenced by bake_invoke().
|
static |
Definition at line 1714 of file object_bake_api.c.
References BakeAPIRender::area, BKE_screen_find_big_area(), C, BakeAPIRender::cage_extrusion, CTX_data_active_object(), CTX_data_main(), CTX_data_scene(), CTX_data_selected_objects(), CTX_data_view_layer(), CTX_wm_screen(), BakeAPIRender::custom_cage, BakeAPIRender::height, BakeAPIRender::identifier, BakeAPIRender::is_automatic_name, BakeAPIRender::is_cage, BakeAPIRender::is_clear, BakeAPIRender::is_selected_to_active, BakeAPIRender::is_split_materials, BakeAPIRender::main, BakeAPIRender::margin, BakeAPIRender::margin_type, BakeAPIRender::max_ray_distance, BakeAPIRender::normal_space, BakeAPIRender::normal_swizzle, NULL, BakeAPIRender::ob, OPERATOR_CANCELLED, BakeAPIRender::pass_filter, BakeAPIRender::pass_type, wmOperator::ptr, R_BAKE_EXTEND, R_BAKE_SAVE_EXTERNAL, R_BAKE_SAVE_INTERNAL, R_BAKE_SPACE_TANGENT, R_BAKE_TARGET_IMAGE_TEXTURES, RE_NewSceneRender(), BakeAPIRender::render, BakeAPIRender::reports, wmOperator::reports, BakeAPIRender::result, RNA_boolean_get(), RNA_enum_get(), RNA_float_get(), RNA_int_get(), RNA_property_enum_identifier(), RNA_string_get(), RNA_struct_find_property(), BakeAPIRender::save_mode, SCE_PASS_NORMAL, SCE_PASS_UV, BakeAPIRender::scene, BakeAPIRender::selected_objects, SPACE_IMAGE, BakeAPIRender::target, BakeAPIRender::uv_layer, BakeAPIRender::view_layer, and BakeAPIRender::width.
Referenced by bake_exec(), and bake_invoke().
|
static |
Definition at line 2019 of file object_bake_api.c.
References bake_break(), bake_freejob(), bake_init_api_data(), bake_job_canceled(), bake_job_complete(), bake_progress_update(), bake_set_props(), bake_startjob(), BKE_callback_exec_id(), BKE_CB_EVT_OBJECT_BAKE_PRE, C, CTX_data_main(), CTX_data_scene(), CTX_wm_manager(), CTX_wm_window(), G, Object::id, MEM_mallocN, NC_GEOM, NC_IMAGE, NC_SCENE, ND_DATA, ND_RENDER_RESULT, NULL, BakeAPIRender::ob, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, R_BAKE_TARGET_VERTEX_COLORS, RE_progress_cb(), RE_test_break_cb(), BakeAPIRender::render, scene, BakeAPIRender::target, WM_cursor_wait(), WM_event_add_modal_handler(), WM_event_add_notifier(), WM_JOB_EXCL_RENDER, WM_JOB_PRIORITY, WM_JOB_PROGRESS, WM_JOB_TYPE_OBJECT_BAKE, WM_jobs_callbacks_ex(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), WM_jobs_test(), and WM_jobs_timer().
Referenced by OBJECT_OT_bake().
Definition at line 1896 of file object_bake_api.c.
References BKE_callback_exec_id(), BKE_CB_EVT_OBJECT_BAKE_CANCEL, Object::id, BakeAPIRender::main, and BakeAPIRender::ob.
Referenced by bake_invoke().
Definition at line 1891 of file object_bake_api.c.
References BKE_callback_exec_id(), BKE_CB_EVT_OBJECT_BAKE_COMPLETE, Object::id, BakeAPIRender::main, and BakeAPIRender::ob.
Referenced by bake_invoke().
|
static |
Definition at line 663 of file object_bake_api.c.
References BKE_mesh_new_from_object(), BKE_mesh_split_faces(), depsgraph, Mesh::flag, and ME_AUTOSMOOTH.
Referenced by bake().
|
static |
Catch escape key to cancel.
Definition at line 132 of file object_bake_api.c.
References C, CTX_data_scene(), CTX_wm_manager(), EVT_ESCKEY, G, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, wmEvent::type, WM_JOB_TYPE_OBJECT_BAKE, and WM_jobs_test().
Referenced by OBJECT_OT_bake().
|
static |
Definition at line 422 of file object_bake_api.c.
References BASE_ENABLED_RENDER, BKE_id_attributes_active_color_get(), BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_imageuser_default(), BKE_node_is_connected_to_output(), BKE_object_material_get(), BKE_reportf(), BKE_view_layer_base_find(), CD_MLOOPUV, CustomData_get_active_layer_index(), Object::data, ED_object_get_active_image(), Base::flag, Material::id, Mesh::id, Object::id, if(), image(), Mesh::ldata, LIB_TAG_DOIT, LISTBASE_FOREACH, lock, ID::name, node, ntree, NULL, OB_MESH, R_BAKE_TARGET_IMAGE_TEXTURES, R_BAKE_TARGET_VERTEX_COLORS, RPT_ERROR, RPT_INFO, tile, ImageUser::tile, Object::totcol, Mesh::totpoly, and Object::type.
Referenced by bake_objects_check().
|
static |
Definition at line 593 of file object_bake_api.c.
References bake_object_check(), BKE_main_id_tag_idcode(), BKE_report(), BKE_reportf(), BLI_listbase_is_empty(), PointerRNA::data, ELEM, ListBase::first, Object::id, ID_IM, if(), LIB_TAG_DOIT, ID::name, CollectionPointerLink::next, OB_CURVES_LEGACY, OB_FONT, OB_MBALL, OB_MESH, OB_SURF, CollectionPointerLink::ptr, RPT_ERROR, and Object::type.
Referenced by bake_exec(), and bake_startjob().
|
static |
Definition at line 539 of file object_bake_api.c.
References BKE_report(), R_BAKE_PASS_FILTER_COLOR, R_BAKE_PASS_FILTER_DIFFUSE, R_BAKE_PASS_FILTER_DIRECT, R_BAKE_PASS_FILTER_EMIT, R_BAKE_PASS_FILTER_GLOSSY, R_BAKE_PASS_FILTER_INDIRECT, R_BAKE_PASS_FILTER_SUBSURFACE, R_BAKE_PASS_FILTER_TRANSM, RPT_ERROR, SCE_PASS_COMBINED, SCE_PASS_DIFFUSE_COLOR, SCE_PASS_GLOSSY_COLOR, SCE_PASS_SUBSURFACE_COLOR, and SCE_PASS_TRANSM_COLOR.
Referenced by bake_exec(), and bake_startjob().
Definition at line 119 of file object_bake_api.c.
References BakeAPIRender::do_update, and BakeAPIRender::progress.
Referenced by bake_invoke().
|
static |
Definition at line 1082 of file object_bake_api.c.
References add_v3_v3(), add_v4_v4(), result, and usdtokens::rgba().
Referenced by bake_targets_output_vertex_colors().
|
static |
Definition at line 1912 of file object_bake_api.c.
References bake(), RenderData::bake, wmOperator::ptr, Scene::r, R_BAKE_AUTO_NAME, R_BAKE_CAGE, R_BAKE_CLEAR, R_BAKE_SPLIT_MAT, R_BAKE_TO_ACTIVE, RNA_property_boolean_set(), RNA_property_enum_set(), RNA_property_float_set(), RNA_property_int_set(), RNA_property_is_set(), RNA_property_string_set(), RNA_struct_find_property(), and scene.
Referenced by bake_exec(), and bake_invoke().
|
static |
Definition at line 1840 of file object_bake_api.c.
References bake(), bake_objects_check(), bake_pass_filter_check(), bake_targets_clear(), BLI_listbase_is_single(), PointerRNA::data, BakeAPIRender::do_update, ListBase::first, BakeAPIRender::is_clear, BakeAPIRender::is_selected_to_active, BakeAPIRender::main, CollectionPointerLink::next, BakeAPIRender::normal_space, NULL, BakeAPIRender::ob, OPERATOR_CANCELLED, BakeAPIRender::pass_filter, BakeAPIRender::pass_type, BakeAPIRender::progress, CollectionPointerLink::ptr, R_BAKE_SPACE_TANGENT, RE_SetReports(), BakeAPIRender::render, BakeAPIRender::reports, BakeAPIRender::result, SCE_PASS_NORMAL, BakeAPIRender::selected_objects, BakeAPIRender::target, and BakeAPIRender::view_layer.
Referenced by bake_invoke().
Definition at line 652 of file object_bake_api.c.
References ListBase::first, image(), Main::images, LIB_TAG_DOIT, and RE_bake_ibuf_clear().
Referenced by bake_exec(), and bake_startjob().
|
static |
Definition at line 1313 of file object_bake_api.c.
References BakeTargets::images, BakeTargets::material_to_image, MEM_SAFE_FREE, and BakeTargets::result.
Referenced by bake().
|
static |
Definition at line 1239 of file object_bake_api.c.
References bake_targets_init_external(), bake_targets_init_internal(), bake_targets_init_vertex_colors(), BakeTargets::channels_num, BakeTargets::is_noncolor, is_noncolor_pass(), BakeAPIRender::main, MEM_callocN, BakeAPIRender::pass_type, BakeTargets::pixels_num, R_BAKE_SAVE_EXTERNAL, R_BAKE_SAVE_INTERNAL, R_BAKE_TARGET_IMAGE_TEXTURES, R_BAKE_TARGET_VERTEX_COLORS, RE_pass_depth(), BakeTargets::result, BakeAPIRender::save_mode, and BakeAPIRender::target.
Referenced by bake().
|
static |
Definition at line 819 of file object_bake_api.c.
References bake_targets_init_image_textures(), BakeAPIRender::height, BakeImage::height, BakeImage::image, BakeTargets::images, BakeTargets::images_num, BakeAPIRender::is_split_materials, BakeTargets::material_to_image, BakeTargets::materials_num, BakeImage::offset, BakeTargets::pixels_num, BakeAPIRender::width, and BakeImage::width.
Referenced by bake_targets_init().
|
static |
Definition at line 678 of file object_bake_api.c.
References BKE_main_id_tag_idcode(), BKE_report(), ED_object_get_active_image(), ID_IM, image(), BakeImage::image, BakeTargets::images, BakeTargets::images_num, BakeAPIRender::is_split_materials, LIB_TAG_DOIT, LISTBASE_FOREACH, BakeAPIRender::main, BakeTargets::material_to_image, BakeTargets::materials_num, MEM_callocN, MEM_recallocN, NULL, R_BAKE_SAVE_INTERNAL, RPT_ERROR, BakeAPIRender::save_mode, tile, BakeImage::tile_number, and Object::totcol.
Referenced by bake_targets_init_external(), and bake_targets_init_internal().
|
static |
Definition at line 735 of file object_bake_api.c.
References bake_targets_init_image_textures(), BKE_image_acquire_ibuf(), BKE_image_get_tile_uv(), BKE_image_release_ibuf(), BKE_imageuser_default(), BKE_reportf(), BakeImage::height, Image::id, BakeImage::image, BakeTargets::images, BakeTargets::images_num, lock, ID::name, BakeImage::offset, BakeTargets::pixels_num, RPT_ERROR, ImageUser::tile, BakeImage::tile_number, BakeImage::uv_offset, BakeImage::width, ImBuf::x, and ImBuf::y.
Referenced by bake_targets_init().
|
static |
Definition at line 937 of file object_bake_api.c.
References BKE_id_attributes_active_color_get(), BKE_report(), Object::data, ED_object_editmode_load(), BakeImage::height, Mesh::id, BakeImage::image, BakeTargets::images, BakeTargets::images_num, BakeTargets::material_to_image, BakeTargets::materials_num, MEM_callocN, NULL, OB_MESH, BakeImage::offset, BakeTargets::pixels_num, RPT_ERROR, Object::totcol, Mesh::totloop, Object::type, and BakeImage::width.
Referenced by bake_targets_init().
|
static |
Definition at line 1289 of file object_bake_api.c.
References bake_targets_output_external(), bake_targets_output_internal(), bake_targets_output_vertex_colors(), R_BAKE_SAVE_EXTERNAL, R_BAKE_SAVE_INTERNAL, R_BAKE_TARGET_IMAGE_TEXTURES, R_BAKE_TARGET_VERTEX_COLORS, BakeAPIRender::save_mode, and BakeAPIRender::target.
Referenced by bake().
|
static |
Definition at line 853 of file object_bake_api.c.
References bake(), RenderData::bake, BKE_image_path_from_imtype(), BKE_main_blendfile_path(), BKE_reportf(), BLI_path_suffix(), BakeTargets::channels_num, FILE_MAX, BakeAPIRender::filepath, BakeImage::height, Material::id, Object::id, BakeAPIRender::identifier, BakeTargets::images, BakeTargets::images_num, BakeAPIRender::is_automatic_name, BakeTargets::is_noncolor, BakeAPIRender::is_split_materials, BakeAPIRender::main, BakeAPIRender::margin, BakeAPIRender::margin_type, Mesh::mat, Object::mat, ID::name, NULL, BakeImage::offset, Scene::r, BakeTargets::result, RPT_ERROR, RPT_INFO, BakeAPIRender::scene, SNPRINTF, BakeImage::tile_number, BakeAPIRender::uv_layer, BakeImage::uv_offset, BakeImage::width, and write_external_bake_pixels().
Referenced by bake_targets_output().
|
static |
Definition at line 774 of file object_bake_api.c.
References BakeAPIRender::area, bake_update_image(), BKE_report(), BKE_reportf(), BakeTargets::channels_num, BakeImage::height, Object::id, BakeImage::image, BakeTargets::images, BakeTargets::images_num, BakeAPIRender::is_clear, BakeTargets::is_noncolor, BakeAPIRender::margin, BakeAPIRender::margin_type, ID::name, BakeImage::offset, BakeTargets::result, RPT_ERROR, RPT_INFO, BakeImage::tile_number, BakeAPIRender::uv_layer, BakeImage::uv_offset, BakeImage::width, and write_internal_bake_pixels().
Referenced by bake_targets_output().
|
static |
Definition at line 1116 of file object_bake_api.c.
References ATTR_DOMAIN_CORNER, ATTR_DOMAIN_POINT, bake_result_add_to_rgba(), BKE_id_attribute_domain(), BKE_id_attributes_active_color_get(), BLI_assert, BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_VERTS_OF_MESH, CD_PROP_COLOR, BakeTargets::channels_num, color, convert_float_color_to_byte_color(), CustomData_get_offset_named(), data, CustomDataLayer::data, Object::data, DEG_id_tag_update(), Mesh::edit_mesh, Mesh::id, ID_RECALC_GEOMETRY, BakeTargets::is_noncolor, l, BMesh::ldata, MEM_callocN, MEM_freeN, MEM_malloc_arrayN, MEM_SAFE_FREE, Mesh::mloop, mul_v4_fl(), CustomDataLayer::name, NULL, result, BakeTargets::result, Mesh::totloop, Mesh::totvert, CustomDataLayer::type, v, MLoop::v, BMesh::vdata, and zero_v4().
Referenced by bake_targets_output().
|
static |
Definition at line 1275 of file object_bake_api.c.
References bake_targets_populate_pixels_color_attributes(), BakeTargets::pixels_num, R_BAKE_TARGET_VERTEX_COLORS, RE_bake_pixels_populate(), BakeAPIRender::target, and BakeAPIRender::uv_layer.
Referenced by bake().
|
static |
Definition at line 1001 of file object_bake_api.c.
References BKE_mesh_recalc_looptri(), CD_ORIGINDEX, CustomData_get_layer(), Object::data, BakePixel::du_dx, BakePixel::du_dy, BakePixel::dv_dx, BakePixel::dv_dy, find_original_loop(), l, MEM_freeN, MEM_mallocN, Mesh::mloop, Mesh::mpoly, Mesh::mvert, NULL, BakePixel::object_id, ORIGINDEX_NONE, Mesh::pdata, BakeTargets::pixels_num, MLoopTri::poly, poly_to_tri_count(), BakePixel::primitive_id, BakePixel::seed, Mesh::totloop, Mesh::totpoly, MLoopTri::tri, BakePixel::uv, v, MLoop::v, and Mesh::vdata.
Referenced by bake_targets_populate_pixels().
|
static |
Definition at line 308 of file object_bake_api.c.
References BKE_image_free_gputextures(), BKE_image_partial_update_mark_full_update(), DEG_id_tag_update(), Image::id, BakeImage::image, BakeTargets::images, and BakeTargets::images_num.
Referenced by bake().
Definition at line 161 of file object_bake_api.c.
References blender::compositor::area(), image(), SpaceImage::image, and SPACE_IMAGE.
Referenced by bake_targets_output_internal().
|
static |
Definition at line 1099 of file object_bake_api.c.
References MPropCol::color, color, linearrgb_to_srgb_uchar4(), r, MLoopCol::r, and unit_float_to_uchar_clamp_v4.
Referenced by bake_targets_output_vertex_colors().
|
static |
Definition at line 974 of file object_bake_api.c.
References MPoly::loopstart, Mesh::mloop, Mesh::mpoly, ORIGINDEX_NONE, MPoly::totloop, and MLoop::v.
Referenced by bake_targets_populate_pixels_color_attributes().
|
static |
Definition at line 409 of file object_bake_api.c.
References ELEM, SCE_PASS_INDEXMA, SCE_PASS_INDEXOB, SCE_PASS_NORMAL, SCE_PASS_POSITION, SCE_PASS_UV, SCE_PASS_VECTOR, and SCE_PASS_Z.
Referenced by bake_targets_init().
void OBJECT_OT_bake | ( | wmOperatorType * | ot | ) |
Definition at line 2072 of file object_bake_api.c.
References bake_exec(), bake_invoke(), bake_modal(), wmOperatorType::description, ED_operator_object_active_editable_mesh(), wmOperatorType::exec, FILE_MAX, wmOperatorType::idname, wmOperatorType::invoke, MAX_CUSTOMDATA_LAYER_NAME, MAX_NAME, wmOperatorType::modal, wmOperatorType::name, NULL, ot, wmOperatorType::poll, PROP_ENUM_FLAG, R_BAKE_EXTEND, R_BAKE_PASS_FILTER_NONE, R_BAKE_POSX, R_BAKE_POSY, R_BAKE_POSZ, R_BAKE_SAVE_INTERNAL, R_BAKE_SPACE_TANGENT, R_BAKE_TARGET_IMAGE_TEXTURES, RNA_def_boolean(), RNA_def_enum(), RNA_def_float(), RNA_def_int(), RNA_def_property_flag(), RNA_def_string(), RNA_def_string_file_path(), rna_enum_bake_margin_type_items, rna_enum_bake_pass_filter_type_items, rna_enum_bake_pass_type_items, rna_enum_bake_save_mode_items, rna_enum_bake_target_items, rna_enum_normal_space_items, rna_enum_normal_swizzle_items, SCE_PASS_COMBINED, and wmOperatorType::srna.
Referenced by ED_operatortypes_object().
|
static |
Definition at line 321 of file object_bake_api.c.
References BKE_imbuf_write(), buffer, ImBuf::channels, COLOR_ROLE_SCENE_LINEAR, ImageFormatData::depth, ImBuf::dither, height, IB_PROFILE_LINEAR_RGB, IB_PROFILE_SRGB, IB_rect, IB_rectfloat, IMB_allocImBuf(), IMB_buffer_byte_from_float(), IMB_buffer_float_from_float(), IMB_colormanagement_get_rect_colorspace(), IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform(), IMB_freeImBuf(), MEM_callocN, MEM_freeN, NULL, ImageFormatData::planes, RE_bake_margin(), RE_bake_mask_fill(), ImBuf::rect, ImBuf::rect_float, width, ImBuf::x, and ImBuf::y.
Referenced by bake_targets_output_external().
|
static |
Definition at line 171 of file object_bake_api.c.
References BKE_image_acquire_ibuf(), BKE_image_mark_dirty(), BKE_image_release_ibuf(), BKE_imageuser_default(), buffer, ImBuf::channels, COLOR_ROLE_SCENE_LINEAR, ImBuf::dither, height, IB_DISPLAY_BUFFER_INVALID, IB_MIPMAP_INVALID, IB_PROFILE_LINEAR_RGB, IB_PROFILE_SRGB, IB_RECT_INVALID, image(), IMB_buffer_byte_from_float(), IMB_buffer_byte_from_float_mask(), IMB_buffer_float_from_float(), IMB_buffer_float_from_float_mask(), IMB_colormanagement_get_float_colorspace(), IMB_colormanagement_get_rect_colorspace(), IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform(), imb_freemipmapImBuf(), lock, MEM_callocN, MEM_freeN, ImBuf::mipmap, NULL, RE_bake_margin(), RE_bake_mask_fill(), ImBuf::rect, ImBuf::rect_float, ImageUser::tile, ImBuf::userflags, width, ImBuf::x, and ImBuf::y.
Referenced by bake_targets_output_internal().