Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/shader/nodes/node_shader_tex_voronoi.cc
| Show First 20 Lines • Show All 307 Lines • ▼ Show 20 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &pos : nullptr); | calc_position ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| pos = float2::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| r_position[i] = float3(pos.x, pos.y, 0.0f); | r_position[i] = float3(pos.x, pos.y, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_F2: { | case SHD_VORONOI_F2: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| Show All 15 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &pos : nullptr); | calc_position ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| pos = float2::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| r_position[i] = float3(pos.x, pos.y, 0.0f); | r_position[i] = float3(pos.x, pos.y, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_SMOOTH_F1: { | case SHD_VORONOI_SMOOTH_F1: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| Show All 18 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &pos : nullptr); | calc_position ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| pos = float2::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| r_position[i] = float3(pos.x, pos.y, 0.0f); | r_position[i] = float3(pos.x, pos.y, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| Show All 19 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &r_position[i] : nullptr); | calc_position ? &r_position[i] : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3::safe_divide(r_position[i], scale[i]); | r_position[i] = math::safe_divide(r_position[i], scale[i]); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_F2: { | case SHD_VORONOI_F2: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| const VArray<float> &exponent = get_exponent(param++); | const VArray<float> &exponent = get_exponent(param++); | ||||
| Show All 13 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &r_position[i] : nullptr); | calc_position ? &r_position[i] : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3::safe_divide(r_position[i], scale[i]); | r_position[i] = math::safe_divide(r_position[i], scale[i]); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_SMOOTH_F1: { | case SHD_VORONOI_SMOOTH_F1: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| const VArray<float> &smoothness = get_smoothness(param++); | const VArray<float> &smoothness = get_smoothness(param++); | ||||
| Show All 16 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &r_position[i] : nullptr); | calc_position ? &r_position[i] : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3::safe_divide(r_position[i], scale[i]); | r_position[i] = math::safe_divide(r_position[i], scale[i]); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case 4: { | case 4: { | ||||
| Show All 23 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_F1, | SHD_VORONOI_F1, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position || calc_w ? &pos : nullptr); | calc_position || calc_w ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position || calc_w) { | if (calc_position || calc_w) { | ||||
| pos = float4::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3(pos.x, pos.y, pos.z); | r_position[i] = float3(pos.x, pos.y, pos.z); | ||||
| } | } | ||||
| if (calc_w) { | if (calc_w) { | ||||
| r_w[i] = pos.w; | r_w[i] = pos.w; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| Show All 24 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position || calc_w ? &pos : nullptr); | calc_position || calc_w ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position || calc_w) { | if (calc_position || calc_w) { | ||||
| pos = float4::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3(pos.x, pos.y, pos.z); | r_position[i] = float3(pos.x, pos.y, pos.z); | ||||
| } | } | ||||
| if (calc_w) { | if (calc_w) { | ||||
| r_w[i] = pos.w; | r_w[i] = pos.w; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| Show All 27 Lines | switch (dimensions_) { | ||||
| SHD_VORONOI_MINKOWSKI, | SHD_VORONOI_MINKOWSKI, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position || calc_w ? &pos : nullptr); | calc_position || calc_w ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position || calc_w) { | if (calc_position || calc_w) { | ||||
| pos = float4::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3(pos.x, pos.y, pos.z); | r_position[i] = float3(pos.x, pos.y, pos.z); | ||||
| } | } | ||||
| if (calc_w) { | if (calc_w) { | ||||
| r_w[i] = pos.w; | r_w[i] = pos.w; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 216 Lines • ▼ Show 20 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &pos : nullptr); | calc_position ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| pos = float2::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| r_position[i] = float3(pos.x, pos.y, 0.0f); | r_position[i] = float3(pos.x, pos.y, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_F2: { | case SHD_VORONOI_F2: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| Show All 14 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &pos : nullptr); | calc_position ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| pos = float2::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| r_position[i] = float3(pos.x, pos.y, 0.0f); | r_position[i] = float3(pos.x, pos.y, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_SMOOTH_F1: { | case SHD_VORONOI_SMOOTH_F1: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| Show All 17 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &pos : nullptr); | calc_position ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| pos = float2::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| r_position[i] = float3(pos.x, pos.y, 0.0f); | r_position[i] = float3(pos.x, pos.y, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| Show All 18 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &r_position[i] : nullptr); | calc_position ? &r_position[i] : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3::safe_divide(r_position[i], scale[i]); | r_position[i] = math::safe_divide(r_position[i], scale[i]); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_F2: { | case SHD_VORONOI_F2: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| const VArray<float> &randomness = get_randomness(param++); | const VArray<float> &randomness = get_randomness(param++); | ||||
| Show All 12 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &r_position[i] : nullptr); | calc_position ? &r_position[i] : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3::safe_divide(r_position[i], scale[i]); | r_position[i] = math::safe_divide(r_position[i], scale[i]); | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case SHD_VORONOI_SMOOTH_F1: { | case SHD_VORONOI_SMOOTH_F1: { | ||||
| const VArray<float3> &vector = get_vector(param++); | const VArray<float3> &vector = get_vector(param++); | ||||
| const VArray<float> &scale = get_scale(param++); | const VArray<float> &scale = get_scale(param++); | ||||
| const VArray<float> &smoothness = get_smoothness(param++); | const VArray<float> &smoothness = get_smoothness(param++); | ||||
| Show All 16 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position ? &r_position[i] : nullptr); | calc_position ? &r_position[i] : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3::safe_divide(r_position[i], scale[i]); | r_position[i] = math::safe_divide(r_position[i], scale[i]); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| Show All 24 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position || calc_w ? &pos : nullptr); | calc_position || calc_w ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position || calc_w) { | if (calc_position || calc_w) { | ||||
| pos = float4::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3(pos.x, pos.y, pos.z); | r_position[i] = float3(pos.x, pos.y, pos.z); | ||||
| } | } | ||||
| if (calc_w) { | if (calc_w) { | ||||
| r_w[i] = pos.w; | r_w[i] = pos.w; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| Show All 23 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position || calc_w ? &pos : nullptr); | calc_position || calc_w ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position || calc_w) { | if (calc_position || calc_w) { | ||||
| pos = float4::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3(pos.x, pos.y, pos.z); | r_position[i] = float3(pos.x, pos.y, pos.z); | ||||
| } | } | ||||
| if (calc_w) { | if (calc_w) { | ||||
| r_w[i] = pos.w; | r_w[i] = pos.w; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| Show All 26 Lines | switch (dimensions_) { | ||||
| metric_, | metric_, | ||||
| calc_distance ? &r_distance[i] : nullptr, | calc_distance ? &r_distance[i] : nullptr, | ||||
| calc_color ? &col : nullptr, | calc_color ? &col : nullptr, | ||||
| calc_position || calc_w ? &pos : nullptr); | calc_position || calc_w ? &pos : nullptr); | ||||
| if (calc_color) { | if (calc_color) { | ||||
| r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | r_color[i] = ColorGeometry4f(col[0], col[1], col[2], 1.0f); | ||||
| } | } | ||||
| if (calc_position || calc_w) { | if (calc_position || calc_w) { | ||||
| pos = float4::safe_divide(pos, scale[i]); | pos = math::safe_divide(pos, scale[i]); | ||||
| if (calc_position) { | if (calc_position) { | ||||
| r_position[i] = float3(pos.x, pos.y, pos.z); | r_position[i] = float3(pos.x, pos.y, pos.z); | ||||
| } | } | ||||
| if (calc_w) { | if (calc_w) { | ||||
| r_w[i] = pos.w; | r_w[i] = pos.w; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 238 Lines • Show Last 20 Lines | |||||