Blender V4.3
BKE_image.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
9
10#include "BLI_compiler_attrs.h"
11#include "BLI_utildefines.h"
12
13#include "BLI_rect.h"
14
15#include <optional>
16
17struct Depsgraph;
18struct GPUTexture;
19struct ID;
20struct ImBuf;
21struct ImBufAnim;
22struct Image;
23struct ImageFormatData;
24struct ImagePool;
25struct ImageTile;
26struct ImbFormatOptions;
27struct Library;
28struct ListBase;
29struct Main;
30struct Object;
31struct RenderResult;
32struct RenderSlot;
33struct ReportList;
34struct Scene;
35struct StampData;
36
37#define IMA_MAX_SPACE 64
38#define IMA_UDIM_MAX 2000
39
47void BKE_image_free_buffers_ex(Image *image, bool do_lock);
54
55typedef void(StampCallback)(void *data,
56 const char *propname,
57 char *propvalue,
58 int propvalue_maxncpy);
59
62 RenderResult *rr,
63 bool allocate_only);
72bool BKE_stamp_is_known_field(const char *field_name);
73void BKE_imbuf_stamp_info(const RenderResult *rr, ImBuf *ibuf);
76 StampData *stamp_data,
77 StampCallback callback,
78 bool noskip);
80 const Image &image,
81 StampCallback callback,
82 bool noskip);
83void BKE_render_result_stamp_data(RenderResult *rr, const char *key, const char *value);
84StampData *BKE_stamp_data_copy(const StampData *stamp_data);
85void BKE_stamp_data_free(StampData *stamp_data);
88 const StampData *stamp_data_template,
89 unsigned char *rect,
90 float *rectf,
91 int width,
92 int height);
93bool BKE_imbuf_alpha_test(ImBuf *ibuf);
95 const RenderResult *rr,
96 ImBuf *ibuf,
97 const char *filepath,
98 const ImageFormatData *imf);
102bool BKE_imbuf_write(ImBuf *ibuf, const char *filepath, const ImageFormatData *imf);
107bool BKE_imbuf_write_as(ImBuf *ibuf,
108 const char *filepath,
109 const ImageFormatData *imf,
110 bool save_copy);
111
115ImBufAnim *openanim(const char *filepath,
116 int flags,
117 int streamindex,
118 char colorspace[IMA_MAX_SPACE]);
119ImBufAnim *openanim_noload(const char *filepath,
120 int flags,
121 int streamindex,
122 char colorspace[IMA_MAX_SPACE]);
123
124void BKE_image_tag_time(Image *ima);
125
126/* ********************************** NEW IMAGE API *********************** */
127
128/* ImageUser is in Texture, in Nodes, Background Image, Image Window, .... */
129/* should be used in conjunction with an ID * to Image. */
130struct ImageUser;
131struct RenderData;
132struct RenderPass;
133struct RenderResult;
134
135/* signals */
136/* reload only frees, doesn't read until image_get_ibuf() called */
137#define IMA_SIGNAL_RELOAD 0
138#define IMA_SIGNAL_FREE 1
139/* source changes, from image to sequence or movie, etc */
140#define IMA_SIGNAL_SRC_CHANGE 5
141/* image-user gets a new image, check settings */
142#define IMA_SIGNAL_USER_NEW_IMAGE 6
143#define IMA_SIGNAL_COLORMANAGE 7
144
148bool BKE_image_has_ibuf(Image *ima, ImageUser *iuser);
149
157ImBuf *BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **r_lock);
158
172 Image &image,
173 const ImageUser &image_user,
174 const char *pass_name,
175 const char *view_name);
176
177void BKE_image_release_ibuf(Image *ima, ImBuf *ibuf, void *lock);
178
183ImBuf *BKE_image_preview(Image *ima, short max_size, short *r_width, short *r_height);
184
189
193char BKE_image_alpha_mode_from_extension_ex(const char *filepath);
195
203Image *BKE_image_load(Main *bmain, const char *filepath);
205 std::optional<Library *> owner_library,
206 const char *filepath);
217Image *BKE_image_load_exists(Main *bmain, const char *filepath, bool *r_exists = nullptr);
219 std::optional<Library *> owner_library,
220 const char *filepath,
221 bool *r_exists = nullptr);
222
227 unsigned int width,
228 unsigned int height,
229 const char *name,
230 int depth,
231 int floatbuf,
232 short gen_type,
233 const float color[4],
234 bool stereo3d,
235 bool is_data,
236 bool tiled);
241Image *BKE_image_add_from_imbuf(Main *bmain, ImBuf *ibuf, const char *name);
242
250
255void BKE_image_init_imageuser(Image *ima, ImageUser *iuser);
256void BKE_image_signal(Main *bmain, Image *ima, ImageUser *iuser, int signal);
257
259 const Main *mainp,
260 void *customdata,
261 void callback(Image *ima, ID *iuser_id, ImageUser *iuser, void *customdata));
262
269Image *BKE_image_ensure_viewer(Main *bmain, int type, const char *name);
274void BKE_image_ensure_viewer_views(const RenderData *rd, Image *ima, ImageUser *iuser);
275
279void BKE_image_user_frame_calc(Image *ima, ImageUser *iuser, int cfra);
280int BKE_image_user_frame_get(const ImageUser *iuser, int cfra, bool *r_is_in_range);
281void BKE_image_user_file_path(const ImageUser *iuser, const Image *ima, char *filepath);
282void BKE_image_user_file_path_ex(const Main *bmain,
283 const ImageUser *iuser,
284 const Image *ima,
285 char *filepath,
286 const bool resolve_udim,
287 const bool resolve_multiview);
288void BKE_image_editors_update_frame(const Main *bmain, int cfra);
289
294void BKE_image_user_id_eval_animation(Depsgraph *depsgraph, ID *id);
295
301
305void BKE_image_multiview_index(const Image *ima, ImageUser *iuser);
306
311bool BKE_image_is_multilayer(const Image *ima);
312bool BKE_image_is_multiview(const Image *ima);
313bool BKE_image_is_stereo(const Image *ima);
314
327void BKE_image_release_renderresult(Scene *scene, Image *ima, RenderResult *render_result);
328
332bool BKE_image_is_openexr(Image *ima);
333
337void BKE_image_backup_render(Scene *scene, Image *ima, bool free_current_slot);
338
343
348void BKE_image_free_anim_ibufs(Image *ima, int except_frame);
349
353void BKE_image_all_free_anim_ibufs(Main *bmain, int cfra);
354
361
365bool BKE_image_memorypack(Image *ima);
366void BKE_image_packfiles(ReportList *reports, Image *ima, const char *basepath);
367void BKE_image_packfiles_from_mem(ReportList *reports, Image *ima, char *data, size_t data_len);
368
372void BKE_image_print_memlist(Main *bmain);
373
377void BKE_image_merge(Main *bmain, Image *dest, Image *source);
378
382bool BKE_image_scale(Image *image, int width, int height, ImageUser *iuser);
383
388
393
398int BKE_image_get_tile_label(const Image *ima,
399 const ImageTile *tile,
400 char *label,
401 int label_maxncpy);
402
410bool BKE_image_get_tile_info(char *filepath,
412 int *r_tile_start,
413 int *r_tile_range);
414
415ImageTile *BKE_image_add_tile(Image *ima, int tile_number, const char *label);
417void BKE_image_reassign_tile(Image *ima, ImageTile *tile, int new_tile_number);
418void BKE_image_sort_tiles(Image *ima);
419
421
427
431bool BKE_image_is_filename_tokenized(char *filepath);
432
437void BKE_image_ensure_tile_token(char *filepath, size_t filepath_maxncpy);
438void BKE_image_ensure_tile_token_filename_only(char *filename, size_t filename_maxncpy);
439
446bool BKE_image_tile_filepath_exists(const char *filepath);
447
453char *BKE_image_get_tile_strformat(const char *filepath, eUDIM_TILE_FORMAT *r_tile_format);
454bool BKE_image_get_tile_number_from_filepath(const char *filepath,
455 const char *pattern,
456 eUDIM_TILE_FORMAT tile_format,
457 int *r_tile_number);
459 const char *pattern,
460 eUDIM_TILE_FORMAT tile_format,
461 int tile_number);
462
463ImageTile *BKE_image_get_tile(Image *ima, int tile_number);
465
466int BKE_image_get_tile_from_pos(Image *ima, const float uv[2], float r_uv[2], float r_ofs[2]);
467void BKE_image_get_tile_uv(const Image *ima, const int tile_number, float r_uv[2]);
468
473 const float co[2],
474 float r_uv_offset[2]) ATTR_NONNULL(2, 3);
475int BKE_image_find_nearest_tile(const Image *image, const float co[2])
477
478void BKE_image_get_size(Image *image, ImageUser *iuser, int *r_width, int *r_height);
479void BKE_image_get_size_fl(Image *image, ImageUser *iuser, float r_size[2]);
480void BKE_image_get_aspect(Image *image, float *r_aspx, float *r_aspy);
481
482/* `image_gen.cc` */
483
485 unsigned char *rect, float *rect_float, int width, int height, const float color[4]);
486void BKE_image_buf_fill_checker(unsigned char *rect, float *rect_float, int width, int height);
487void BKE_image_buf_fill_checker_color(unsigned char *rect,
488 float *rect_float,
489 int width,
490 int height);
491
492/* Cycles hookup */
493
494unsigned char *BKE_image_get_pixels_for_frame(Image *image, int frame, int tile);
496
497/* Image modifications */
498
502
503bool BKE_image_is_dirty_writable(Image *image, bool *r_is_writable);
504
511bool BKE_image_has_filepath(const Image *ima);
526ImBuf *BKE_image_get_ibuf_with_name(Image *image, const char *filepath);
537
542
556
571GPUTexture *BKE_image_get_gpu_texture(Image *image, ImageUser *iuser);
572
573/*
574 * Like BKE_image_get_gpu_texture, but can also get render or compositing result.
575 */
577
578/*
579 * Like BKE_image_get_gpu_texture, but can also return array and tile mapping texture for UDIM
580 * tiles as used in material shaders.
581 */
583 GPUTexture *texture;
584 GPUTexture *tile_mapping;
585};
586
588 ImageUser *iuser,
589 const bool use_tile_mapping);
590
595
600void BKE_image_update_gputexture(Image *ima, ImageUser *iuser, int x, int y, int w, int h);
601
608 Image *ima, ImageTile *image_tile, ImBuf *ibuf, int x, int y, int w, int h);
609
615void BKE_image_paint_set_mipmap(Main *bmain, bool mipmap);
616
621
622RenderSlot *BKE_image_add_renderslot(Image *ima, const char *name);
623bool BKE_image_remove_renderslot(Image *ima, ImageUser *iuser, int slot);
625bool BKE_image_clear_renderslot(Image *ima, ImageUser *iuser, int slot);
626
627/* --- image_partial_update.cc --- */
629struct PartialUpdateUser;
630
634PartialUpdateUser *BKE_image_partial_update_create(const Image *image);
635
639void BKE_image_partial_update_free(PartialUpdateUser *user);
640
641/* --- partial updater (image side) --- */
642
646 const ImageTile *image_tile,
647 const ImBuf *image_buffer,
648 const rcti *updated_region);
eUDIM_TILE_FORMAT
Definition BKE_image.hh:422
@ UDIM_TILE_FORMAT_UVTILE
Definition BKE_image.hh:425
@ UDIM_TILE_FORMAT_NONE
Definition BKE_image.hh:423
@ UDIM_TILE_FORMAT_UDIM
Definition BKE_image.hh:424
void BKE_imbuf_stamp_info(const RenderResult *rr, ImBuf *ibuf)
int BKE_image_get_tile_from_pos(Image *ima, const float uv[2], float r_uv[2], float r_ofs[2])
RenderSlot * BKE_image_get_renderslot(Image *ima, int index)
ImBuf * BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **r_lock)
bool BKE_image_is_multilayer(const Image *ima)
bool BKE_image_has_alpha(Image *image)
void BKE_image_ensure_viewer_views(const RenderData *rd, Image *ima, ImageUser *iuser)
void BKE_image_user_frame_calc(Image *ima, ImageUser *iuser, int cfra)
void StampCallback(void *data, const char *propname, char *propvalue, int propvalue_maxncpy)
Definition BKE_image.hh:55
char * BKE_image_get_tile_strformat(const char *filepath, eUDIM_TILE_FORMAT *r_tile_format)
Image * BKE_image_load(Main *bmain, const char *filepath)
void BKE_image_partial_update_mark_region(Image *image, const ImageTile *image_tile, const ImBuf *image_buffer, const rcti *updated_region)
Mark a region of the image to update.
void BKE_stamp_info_from_imbuf(RenderResult *rr, ImBuf *ibuf)
void BKE_image_alpha_mode_from_extension(Image *image)
bool BKE_image_scale(Image *image, int width, int height, ImageUser *iuser)
void BKE_image_get_size_fl(Image *image, ImageUser *iuser, float r_size[2])
bool BKE_image_user_id_has_animation(ID *id)
bool BKE_image_has_filepath(const Image *ima)
void BKE_image_update_gputexture(Image *ima, ImageUser *iuser, int x, int y, int w, int h)
Definition image_gpu.cc:882
void BKE_image_set_filepath_from_tile_number(char *filepath, const char *pattern, eUDIM_TILE_FORMAT tile_format, int tile_number)
void BKE_image_mark_dirty(Image *image, ImBuf *ibuf)
void BKE_image_multilayer_stamp_info_callback(void *data, const Image &image, StampCallback callback, bool noskip)
void BKE_image_get_aspect(Image *image, float *r_aspx, float *r_aspy)
StampData * BKE_stamp_data_copy(const StampData *stamp_data)
ImBufAnim * openanim_noload(const char *filepath, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
ImBuf * BKE_image_acquire_multilayer_view_ibuf(const RenderData &render_data, Image &image, const ImageUser &image_user, const char *pass_name, const char *view_name)
Image * BKE_image_load_exists_in_lib(Main *bmain, std::optional< Library * > owner_library, const char *filepath, bool *r_exists=nullptr)
bool BKE_image_is_openexr(Image *ima)
bool BKE_image_has_multiple_ibufs(Image *image)
Image * BKE_image_ensure_viewer(Main *bmain, int type, const char *name)
RenderPass * BKE_image_multilayer_index(RenderResult *rr, ImageUser *iuser)
bool BKE_image_fill_tile(Image *ima, ImageTile *tile)
void BKE_image_release_ibuf(Image *ima, ImBuf *ibuf, void *lock)
RenderSlot * BKE_image_add_renderslot(Image *ima, const char *name)
StampData * BKE_stamp_info_from_scene_static(const Scene *scene)
void BKE_image_user_file_path(const ImageUser *iuser, const Image *ima, char *filepath)
void BKE_image_tag_time(Image *ima)
void BKE_image_merge(Main *bmain, Image *dest, Image *source)
bool BKE_image_memorypack(Image *ima)
void BKE_image_packfiles(ReportList *reports, Image *ima, const char *basepath)
void BKE_image_free_anim_gputextures(Main *bmain)
Definition image_gpu.cc:570
void BKE_image_free_buffers_ex(Image *image, bool do_lock)
int int BKE_image_find_nearest_tile(const Image *image, const float co[2]) ATTR_NONNULL(2) ATTR_WARN_UNUSED_RESULT
bool BKE_image_is_dirty(Image *image)
void BKE_stamp_data_free(StampData *stamp_data)
GPUTexture * BKE_image_get_gpu_viewer_texture(Image *image, ImageUser *iuser)
Definition image_gpu.cc:481
void BKE_image_free_anim_ibufs(Image *ima, int except_frame)
void BKE_image_release_renderresult(Scene *scene, Image *ima, RenderResult *render_result)
void BKE_image_pool_free(ImagePool *pool)
int BKE_image_user_frame_get(const ImageUser *iuser, int cfra, bool *r_is_in_range)
#define IMA_MAX_SPACE
Definition BKE_image.hh:37
void BKE_image_partial_update_free(PartialUpdateUser *user)
free a partial update user.
bool BKE_image_has_gpu_texture_premultiplied_alpha(Image *image, ImBuf *ibuf)
Definition image_gpu.cc:41
int BKE_image_find_nearest_tile_with_offset(const Image *image, const float co[2], float r_uv_offset[2]) ATTR_NONNULL(2
ImageGPUTextures BKE_image_get_gpu_material_texture(Image *image, ImageUser *iuser, const bool use_tile_mapping)
Definition image_gpu.cc:486
void BKE_image_free_unused_gpu_textures(void)
Definition image_gpu.cc:521
void BKE_image_update_gputexture_delayed(Image *ima, ImageTile *image_tile, ImBuf *ibuf, int x, int y, int w, int h)
Definition image_gpu.cc:890
ImBuf * BKE_image_pool_acquire_ibuf(Image *ima, ImageUser *iuser, ImagePool *pool)
Image * BKE_image_add_from_imbuf(Main *bmain, ImBuf *ibuf, const char *name)
Image * BKE_image_load_exists(Main *bmain, const char *filepath, bool *r_exists=nullptr)
void BKE_image_sort_tiles(Image *ima)
void BKE_image_buf_fill_checker_color(unsigned char *rect, float *rect_float, int width, int height)
Definition image_gen.cc:447
void BKE_image_backup_render(Scene *scene, Image *ima, bool free_current_slot)
void BKE_image_user_file_path_ex(const Main *bmain, const ImageUser *iuser, const Image *ima, char *filepath, const bool resolve_udim, const bool resolve_multiview)
void BKE_image_buf_fill_checker(unsigned char *rect, float *rect_float, int width, int height)
Definition image_gen.cc:200
bool BKE_image_get_tile_number_from_filepath(const char *filepath, const char *pattern, eUDIM_TILE_FORMAT tile_format, int *r_tile_number)
int BKE_image_get_tile_label(const Image *ima, const ImageTile *tile, char *label, int label_maxncpy)
bool BKE_image_has_opengl_texture(Image *ima)
void BKE_image_ensure_gpu_texture(Image *image, ImageUser *iuser)
Definition image_gpu.cc:336
void BKE_image_ensure_tile_token_filename_only(char *filename, size_t filename_maxncpy)
GPUTexture * BKE_image_create_gpu_texture_from_ibuf(Image *image, ImBuf *ibuf)
bool BKE_image_has_anim(Image *image)
void BKE_image_get_tile_uv(const Image *ima, const int tile_number, float r_uv[2])
bool BKE_imbuf_alpha_test(ImBuf *ibuf)
ImBufAnim * openanim(const char *filepath, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
void BKE_imageuser_default(ImageUser *iuser)
Image * BKE_image_load_in_lib(Main *bmain, std::optional< Library * > owner_library, const char *filepath)
void BKE_render_result_stamp_info(Scene *scene, Object *camera, RenderResult *rr, bool allocate_only)
void BKE_image_free_gputextures(Image *ima)
Definition image_gpu.cc:556
void BKE_image_free_all_textures(Main *bmain)
void BKE_stamp_info_callback(void *data, StampData *stamp_data, StampCallback callback, bool noskip)
int BKE_image_sequence_guess_offset(Image *image)
void BKE_image_free_data(Image *image)
bool BKE_image_is_stereo(const Image *ima)
bool BKE_image_is_multiview(const Image *ima)
bool BKE_imbuf_write(ImBuf *ibuf, const char *filepath, const ImageFormatData *imf)
void BKE_image_get_size(Image *image, ImageUser *iuser, int *r_width, int *r_height)
void BKE_image_ensure_tile_token(char *filepath, size_t filepath_maxncpy)
ImBuf * BKE_image_get_ibuf_with_name(Image *image, const char *filepath)
bool BKE_image_get_tile_info(char *filepath, ListBase *tiles, int *r_tile_start, int *r_tile_range)
char BKE_image_alpha_mode_from_extension_ex(const char *filepath)
void BKE_image_free_views(Image *image)
bool BKE_image_has_packedfile(const Image *image)
GPUTexture * BKE_image_get_gpu_texture(Image *image, ImageUser *iuser)
Definition image_gpu.cc:476
void BKE_image_all_free_anim_ibufs(Main *bmain, int cfra)
void BKE_image_walk_all_users(const Main *mainp, void *customdata, void callback(Image *ima, ID *iuser_id, ImageUser *iuser, void *customdata))
bool BKE_image_remove_renderslot(Image *ima, ImageUser *iuser, int slot)
void BKE_image_paint_set_mipmap(Main *bmain, bool mipmap)
Definition image_gpu.cc:906
void BKE_image_signal(Main *bmain, Image *ima, ImageUser *iuser, int signal)
void BKE_image_reassign_tile(Image *ima, ImageTile *tile, int new_tile_number)
void BKE_render_result_stamp_data(RenderResult *rr, const char *key, const char *value)
PartialUpdateUser * BKE_image_partial_update_create(const Image *image)
Create a new PartialUpdateUser. An Object that contains data to use partial updates.
bool BKE_image_is_animated(Image *image)
bool BKE_stamp_is_known_field(const char *field_name)
bool BKE_image_clear_renderslot(Image *ima, ImageUser *iuser, int slot)
bool BKE_image_is_filename_tokenized(char *filepath)
ImBuf * BKE_image_preview(Image *ima, short max_size, short *r_width, short *r_height)
void BKE_image_user_id_eval_animation(Depsgraph *depsgraph, ID *id)
bool BKE_imbuf_write_stamp(const Scene *scene, const RenderResult *rr, ImBuf *ibuf, const char *filepath, const ImageFormatData *imf)
void BKE_image_editors_update_frame(const Main *bmain, int cfra)
void BKE_image_replace_imbuf(Image *image, ImBuf *ibuf)
void BKE_image_init_imageuser(Image *ima, ImageUser *iuser)
void BKE_image_pool_release_ibuf(Image *ima, ImBuf *ibuf, ImagePool *pool)
bool BKE_imbuf_write_as(ImBuf *ibuf, const char *filepath, const ImageFormatData *imf, bool save_copy)
unsigned char * BKE_image_get_pixels_for_frame(Image *image, int frame, int tile)
void BKE_image_packfiles_from_mem(ReportList *reports, Image *ima, char *data, size_t data_len)
RenderResult * BKE_image_acquire_renderresult(Scene *scene, Image *ima)
ImageTile * BKE_image_add_tile(Image *ima, int tile_number, const char *label)
void BKE_image_stamp_buf(Scene *scene, Object *camera, const StampData *stamp_data_template, unsigned char *rect, float *rectf, int width, int height)
ImBuf * BKE_image_get_first_ibuf(Image *image)
void BKE_image_file_format_set(Image *image, int ftype, const ImbFormatOptions *options)
void BKE_image_buf_fill_color(unsigned char *rect, float *rect_float, int width, int height, const float color[4])
Definition image_gen.cc:70
bool BKE_image_remove_tile(Image *ima, ImageTile *tile)
bool BKE_image_has_ibuf(Image *ima, ImageUser *iuser)
void BKE_image_free_all_gputextures(Main *bmain)
Definition image_gpu.cc:561
float * BKE_image_get_float_pixels_for_frame(Image *image, int frame, int tile)
void BKE_image_partial_update_mark_full_update(Image *image)
Mark the whole image to be updated.
ImagePool * BKE_image_pool_new(void)
void BKE_image_multiview_index(const Image *ima, ImageUser *iuser)
bool BKE_image_has_loaded_ibuf(Image *image)
void BKE_image_free_old_gputextures(Main *bmain)
Definition image_gpu.cc:581
bool BKE_image_tile_filepath_exists(const char *filepath)
void BKE_image_free_packedfiles(Image *image)
void BKE_image_print_memlist(Main *bmain)
bool BKE_image_is_dirty_writable(Image *image, bool *r_is_writable)
Image * BKE_image_add_generated(Main *bmain, unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short gen_type, const float color[4], bool stereo3d, bool is_data, bool tiled)
void BKE_image_partial_update_register_free(Image *image)
bool BKE_image_buffer_format_writable(ImBuf *ibuf)
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between camera
volatile int lock
BPy_StructRNA * depsgraph
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition btQuadWord.h:119
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)
CCL_NAMESPACE_BEGIN struct Options options
ccl_gpu_kernel_postfix ccl_global KernelWorkTile * tiles
ccl_global const KernelWorkTile * tile
Definition DNA_ID.h:413
GPUTexture * tile_mapping
Definition BKE_image.hh:584
GPUTexture * texture
Definition BKE_image.hh:583
struct ImBuf * ibuf
void * BKE_image_free_buffers
Definition stubs.c:35
void * BKE_image_get_tile_from_iuser
Definition stubs.c:37
void * BKE_image_get_tile
Definition stubs.c:36