Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_voronoi.h
| Show First 20 Lines • Show All 138 Lines • ▼ Show 20 Lines | ccl_device void voronoi_f2_1d(float w, | ||||
| *outW = positionF2 + cellPosition; | *outW = positionF2 + cellPosition; | ||||
| } | } | ||||
| ccl_device void voronoi_distance_to_edge_1d(float w, float randomness, float *outDistance) | ccl_device void voronoi_distance_to_edge_1d(float w, float randomness, float *outDistance) | ||||
| { | { | ||||
| float cellPosition = floorf(w); | float cellPosition = floorf(w); | ||||
| float localPosition = w - cellPosition; | float localPosition = w - cellPosition; | ||||
| float minDistance = 8.0f; | float midPointPosition = hash_float_to_float(cellPosition) * randomness; | ||||
| for (int i = -1; i <= 1; i++) { | float leftPointPosition = -1.0f + hash_float_to_float(cellPosition - 1.0f) * randomness; | ||||
| float cellOffset = i; | float rightPointPosition = 1.0f + hash_float_to_float(cellPosition + 1.0f) * randomness; | ||||
| float pointPosition = cellOffset + hash_float_to_float(cellPosition + cellOffset) * randomness; | float distanceToMidLeft = fabsf((midPointPosition + leftPointPosition) / 2.0f - localPosition); | ||||
| float distanceToPoint = fabsf(pointPosition - localPosition); | float distanceToMidRight = fabsf((midPointPosition + rightPointPosition) / 2.0f - localPosition); | ||||
| minDistance = min(distanceToPoint, minDistance); | |||||
| } | *outDistance = min(distanceToMidLeft, distanceToMidRight); | ||||
| *outDistance = minDistance; | |||||
| } | } | ||||
| ccl_device void voronoi_n_sphere_radius_1d(float w, float randomness, float *outRadius) | ccl_device void voronoi_n_sphere_radius_1d(float w, float randomness, float *outRadius) | ||||
| { | { | ||||
| float cellPosition = floorf(w); | float cellPosition = floorf(w); | ||||
| float localPosition = w - cellPosition; | float localPosition = w - cellPosition; | ||||
| float closestPoint = 0.0f; | float closestPoint = 0.0f; | ||||
| ▲ Show 20 Lines • Show All 977 Lines • Show Last 20 Lines | |||||