|
Blender V4.5
|
Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::math |
Macros | |
| #define | EWA_MAXIDX 255 |
Typedefs | |
| using | ewa_filter_read_pixel_cb = void (*)(void *userdata, int x, int y, float result[4]) |
Enumerations | |
| enum class | blender::math::InterpWrapMode { blender::math::Extend , blender::math::Repeat , blender::math::Border } |
Functions | |
| void | blender::math::interpolate_nearest_border_byte (const uchar *buffer, uchar *output, int width, int height, float u, float v) |
| uchar4uchar4 | blender::math::interpolate_nearest_border_byte (const uchar *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_nearest_border_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| float4 | blender::math::interpolate_nearest_border_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_nearest_byte (const uchar *buffer, uchar *output, int width, int height, float u, float v) |
| uchar4uchar4 | blender::math::interpolate_nearest_byte (const uchar *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_nearest_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| float4 | blender::math::interpolate_nearest_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_nearest_wrap_byte (const uchar *buffer, uchar *output, int width, int height, float u, float v) |
| uchar4uchar4 | blender::math::interpolate_nearest_wrap_byte (const uchar *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_nearest_wrap_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| float4 | blender::math::interpolate_nearest_wrap_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_nearest_wrapmode_fl (const float *buffer, float *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_u, InterpWrapMode wrap_v) |
| uchar4uchar4 | blender::math::interpolate_bilinear_border_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_bilinear_border_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_bilinear_border_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| uchar4uchar4 | blender::math::interpolate_bilinear_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_bilinear_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_bilinear_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| uchar4uchar4 | blender::math::interpolate_bilinear_wrap_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_bilinear_wrap_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_bilinear_wrapmode_fl (const float *buffer, float *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_u, InterpWrapMode wrap_v) |
| uchar4uchar4 | blender::math::interpolate_cubic_bspline_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_cubic_bspline_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_cubic_bspline_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| void | blender::math::interpolate_cubic_bspline_wrapmode_fl (const float *buffer, float *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_u, InterpWrapMode wrap_v) |
| uchar4uchar4 | blender::math::interpolate_cubic_mitchell_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_cubic_mitchell_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_cubic_mitchell_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| void | BLI_ewa_imp2radangle (float A, float B, float C, float F, float *a, float *b, float *th, float *ecc) |
| void | BLI_ewa_filter (int width, int height, bool intpol, bool use_alpha, const float uv[2], const float du[2], const float dv[2], ewa_filter_read_pixel_cb read_pixel_cb, void *userdata, float result[4]) |
Variables | |
| const float | EWA_WTS [EWA_MAXIDX+1] |
2D image sampling with filtering functions.
All functions take (u, v) texture coordinate, non-normalized (i.e. ranging from (0,0) to (width,height) over the image).
Any filtering done on texel values just blends them without color space or gamma conversions.
For sampling float images, there are "fully generic" functions that take arbitrary image channel counts, and arbitrary texture coordinate wrapping modes. However if you do not need full flexibility, use less generic functions, they will be faster (e.g. #interpolate_nearest_border_fl is faster than #interpolate_nearest_wrapmode_fl).
Definition in file BLI_math_interp.hh.
| #define EWA_MAXIDX 255 |
Definition at line 354 of file BLI_math_interp.hh.
Referenced by BLI_ewa_filter(), and feline_eval().
| using ewa_filter_read_pixel_cb = void (*)(void *userdata, int x, int y, float result[4]) |
Definition at line 357 of file BLI_math_interp.hh.
| void BLI_ewa_filter | ( | int | width, |
| int | height, | ||
| bool | intpol, | ||
| bool | use_alpha, | ||
| const float | uv[2], | ||
| const float | du[2], | ||
| const float | dv[2], | ||
| ewa_filter_read_pixel_cb | read_pixel_cb, | ||
| void * | userdata, | ||
| float | result[4] ) |
TODO(sergey): Consider making this function inlined, so the pixel read callback could also be inlined in order to avoid per-pixel function calls.
Definition at line 843 of file math_interp.cc.
References A, B, b, BLI_ewa_imp2radangle(), C, ceilf, EWA_MAXIDX, EWA_WTS, F, floorf, madd_v3_v3fl(), mul_v3_fl(), radangle2imp(), result, sqrtf, U, UNUSED_VARS, V, v, v2, and zero_v4().
Referenced by ewa_eval(), blender::compositor::Result::sample_ewa_extended(), and blender::compositor::Result::sample_ewa_zero().
| void BLI_ewa_imp2radangle | ( | float | A, |
| float | B, | ||
| float | C, | ||
| float | F, | ||
| float * | a, | ||
| float * | b, | ||
| float * | th, | ||
| float * | ecc ) |
Definition at line 813 of file math_interp.cc.
References A, atan2f, B, b, C, F, M_PI, and sqrtf.
Referenced by BLI_ewa_filter(), and imagewraposa_aniso().
|
extern |
Definition at line 762 of file math_interp.cc.
Referenced by BLI_ewa_filter(), and feline_eval().