|
| void | blender::math::interpolate_nearest_border_byte (const uchar *buffer, uchar *output, int width, int height, float u, float v) |
| uchar4 | 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) |
| uchar4 | 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) |
| uchar4 | 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) |
| uchar4 | 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) |
| uchar4 | 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) |
| uchar4 | 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) |
| uchar4 | 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) |
| uchar4 | 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]) |
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.
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 848 of file math_interp.cc.
References A, B, b, BLI_ewa_imp2radangle(), C, ceilf, EWA_MAXIDX, EWA_WTS, F, float, 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().