17#define HMAP_GRADIENT_OFFSET 0.001f
77Array
dendry(glm::ivec2 shape,
80 Array &control_function,
83 float displacement = 0.075,
84 int primitives_resolution_steps = 3,
85 float slope_power = 2.f,
86 float noise_amplitude_proportion = 0.01,
87 bool add_control_function =
true,
88 float control_function_overlap = 0.5f,
89 const Array *p_noise_x =
nullptr,
90 const Array *p_noise_y =
nullptr,
91 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f},
94Array
dendry(glm::ivec2 shape,
97 NoiseFunction &noise_function,
98 float noise_function_offset = 0.f,
99 float noise_function_scaling = 1.f,
102 float displacement = 0.075,
103 int primitives_resolution_steps = 3,
104 float slope_power = 2.f,
105 float noise_amplitude_proportion = 0.01,
106 bool add_control_function =
true,
107 float control_function_overlap = 0.5f,
108 const Array *p_noise_x =
nullptr,
109 const Array *p_noise_y =
nullptr,
110 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
158 float seeding_radius = 0.4f,
159 float seeding_outer_radius_ratio = 0.2f,
161 float noise_ratio = 0.2f);
166 size_t control_points_count = 5000,
167 glm::vec2 seed_position = {0.5f, 0.5f},
169 float stop_proba = 1.f,
173 const Array *p_noise_x =
nullptr,
174 const Array *p_noise_y =
nullptr);
222 const Array *p_noise_x =
nullptr,
223 const Array *p_noise_y =
nullptr,
224 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
263 float persistence = 0.5f,
264 float lacunarity = 2.f,
265 const Array *p_ctrl_param =
nullptr,
266 const Array *p_noise_x =
nullptr,
267 const Array *p_noise_y =
nullptr,
268 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
308 float persistence = 0.5f,
309 float lacunarity = 2.f,
310 float gradient_scale = 0.05f,
311 const Array *p_ctrl_param =
nullptr,
312 const Array *p_noise_x =
nullptr,
313 const Array *p_noise_y =
nullptr,
314 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
357 float persistence = 0.5f,
358 float lacunarity = 2.f,
361 float warp_scale = 0.4f,
362 float damp_scale = 1.f,
363 const Array *p_ctrl_param =
nullptr,
364 const Array *p_noise_x =
nullptr,
365 const Array *p_noise_y =
nullptr,
366 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
405 float persistence = 0.5f,
406 float lacunarity = 2.f,
408 const Array *p_ctrl_param =
nullptr,
409 const Array *p_noise_x =
nullptr,
410 const Array *p_noise_y =
nullptr,
411 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
450 float persistence = 0.5f,
451 float lacunarity = 2.f,
452 const Array *p_ctrl_param =
nullptr,
453 const Array *p_noise_x =
nullptr,
454 const Array *p_noise_y =
nullptr,
455 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
495 float persistence = 0.5f,
496 float lacunarity = 2.f,
497 float k_smoothing = 0.1f,
498 const Array *p_ctrl_param =
nullptr,
499 const Array *p_noise_x =
nullptr,
500 const Array *p_noise_y =
nullptr,
501 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
541 float persistence = 0.5f,
542 float lacunarity = 2.f,
543 float warp_scale = 0.1f,
544 const Array *p_ctrl_param =
nullptr,
545 const Array *p_noise_x =
nullptr,
546 const Array *p_noise_y =
nullptr,
547 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
577 const Array *p_ctrl_param =
nullptr,
578 const Array *p_noise_x =
nullptr,
579 const Array *p_noise_y =
nullptr,
580 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
614 float angle_spread_ratio = 1.f,
615 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
621 float angle_spread_ratio = 1.f,
622 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
660 float angle_spread_ratio = 1.f,
663 float persistence = 0.5f,
664 float lacunarity = 2.f,
665 const Array *p_ctrl_param =
nullptr,
666 const Array *p_noise_x =
nullptr,
667 const Array *p_noise_y =
nullptr,
668 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
674 float angle_spread_ratio = 1.f,
677 float persistence = 0.5f,
678 float lacunarity = 2.f,
679 const Array *p_ctrl_param =
nullptr,
680 const Array *p_noise_x =
nullptr,
681 const Array *p_noise_y =
nullptr,
682 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
735 float amplitude = 0.05f,
736 float angle_spread_ratio = 1.f,
737 glm::vec2 kw_multiplier = {4.f, 4.f},
738 float slope_strength = 1.f,
739 float branch_strength = 2.f,
740 float z_cut_min = 0.2f,
741 float z_cut_max = 1.f,
743 float persistence = 0.4f,
744 float lacunarity = 2.f,
745 const Array *p_ctrl_param =
nullptr,
746 const Array *p_noise_x =
nullptr,
747 const Array *p_noise_y =
nullptr,
748 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
754 float amplitude = 0.05f,
755 float angle_spread_ratio = 1.f,
756 glm::vec2 kw_multiplier = {4.f, 4.f},
757 float slope_strength = 1.f,
758 float branch_strength = 2.f,
759 float z_cut_min = 0.2f,
760 float z_cut_max = 1.f,
762 float persistence = 0.4f,
763 float lacunarity = 2.f,
764 const Array *p_ctrl_param =
nullptr,
765 const Array *p_noise_x =
nullptr,
766 const Array *p_noise_y =
nullptr,
767 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
772 float amplitude = 0.05f,
773 glm::vec2 kw_multiplier = {4.f, 4.f},
774 float slope_strength = 1.f,
775 float branch_strength = 2.f,
776 float z_cut_min = 0.2f,
777 float z_cut_max = 1.f,
779 float persistence = 0.4f,
780 float lacunarity = 2.f,
781 const Array *p_ctrl_param =
nullptr,
782 const Array *p_noise_x =
nullptr,
783 const Array *p_noise_y =
nullptr,
784 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
797 const Array *p_noise_x =
nullptr,
798 const Array *p_noise_y =
nullptr,
799 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f},
800 glm::ivec2 period = {0, 0});
815 float persistence = 0.5f,
816 float lacunarity = 2.f,
817 const Array *p_ctrl_param =
nullptr,
818 const Array *p_noise_x =
nullptr,
819 const Array *p_noise_y =
nullptr,
820 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f},
821 glm::ivec2 period = {0, 0});
854 float angle_shift = 0.f,
855 int n_kernel_samples = 8,
856 const glm::vec2 jitter = {1.f, 1.f},
858 float phase_smoothing = 10.f,
859 const Array *p_angle =
nullptr,
860 const Array *p_noise_x =
nullptr,
861 const Array *p_noise_y =
nullptr,
862 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
899 float angle_shift = 0.f,
902 float persistence = 0.5f,
903 float lacunarity = 2.f,
904 int n_kernel_samples = 8,
905 const glm::vec2 jitter = {1.f, 1.f},
907 float phase_smoothing = 10.f,
908 const Array *p_angle =
nullptr,
909 const Array *p_noise_x =
nullptr,
910 const Array *p_noise_y =
nullptr,
911 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
961 float k_smoothing = 0.f,
962 float exp_sigma = 0.f,
964 float alpha_span = M_PI,
966 const Array *p_noise_x =
nullptr,
967 const Array *p_noise_y =
nullptr,
968 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f},
969 glm::vec4 bbox_points = {0.f, 1.f, 0.f, 1.f});
1030 float k_smoothing = 0.f,
1031 float exp_sigma = 0.f,
1033 float alpha_span = M_PI,
1036 float weight = 0.7f,
1037 float persistence = 0.5f,
1038 float lacunarity = 2.f,
1039 const Array *p_noise_x =
nullptr,
1040 const Array *p_noise_y =
nullptr,
1041 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f},
1042 glm::vec4 bbox_points = {0.f, 1.f, 0.f, 1.f});
1083Array
voronoi(glm::ivec2 shape,
1086 glm::vec2 jitter = {0.5f, 0.5f},
1087 float k_smoothing = 0.f,
1088 float exp_sigma = 0.f,
1090 const Array *p_ctrl_param =
nullptr,
1091 const Array *p_noise_x =
nullptr,
1092 const Array *p_noise_y =
nullptr,
1093 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
1144 glm::vec2 jitter = {0.5f, 0.5f},
1145 float k_smoothing = 0.f,
1146 float exp_sigma = 0.f,
1149 float weight = 0.7f,
1150 float persistence = 0.5f,
1151 float lacunarity = 2.f,
1152 const Array *p_ctrl_param =
nullptr,
1153 const Array *p_noise_x =
nullptr,
1154 const Array *p_noise_y =
nullptr,
1155 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
1186 glm::vec2 jitter = {0.5f, 0.5f},
1187 const Array *p_ctrl_param =
nullptr,
1188 const Array *p_noise_x =
nullptr,
1189 const Array *p_noise_y =
nullptr,
1190 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
1233 const Array *p_noise_x =
nullptr,
1234 const Array *p_noise_y =
nullptr,
1235 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
1270 float weight = 0.7f,
1271 float persistence = 0.5f,
1272 float lacunarity = 2.f,
1273 const Array *p_ctrl_param =
nullptr,
1274 const Array *p_noise_x =
nullptr,
1275 const Array *p_noise_y =
nullptr,
1276 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
1330 float k_smoothing = 0.f,
1331 float exp_sigma = 0.f,
1333 const Array *p_noise_x =
nullptr,
1334 const Array *p_noise_y =
nullptr,
1335 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f},
1336 glm::vec4 bbox_points = {0.f, 1.f, 0.f, 1.f});
1339 const std::vector<float> &xp,
1340 const std::vector<float> &yp,
1341 float k_smoothing = 0.f,
1342 float exp_sigma = 0.f,
1344 const Array *p_noise_x =
nullptr,
1345 const Array *p_noise_y =
nullptr,
1346 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
1407 float kw_multiplier = 2.f,
1408 float vorticity = 0.f,
1409 float density = 1.f,
1411 float weight = 0.7f,
1412 float persistence = 0.5f,
1413 float lacunarity = 2.f,
1414 const Array *p_ctrl_param =
nullptr,
1415 const Array *p_noise_x =
nullptr,
1416 const Array *p_noise_y =
nullptr,
1417 glm::vec4 bbox = {0.f, 1.f, 0.f, 1.f});
Declaration of the Array class for 2D floating-point arrays with various mathematical operations and ...
Defines modular function objects for procedural generation, including noise algorithms (Perlin,...
Header file for 2D interpolation methods.
Definition blending.hpp:225
Array noise_fbm(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f}, glm::ivec2 period={0, 0})
See hmap::noise_fbm. period sets the tiling period in lattice cells for the base octave....
Definition primitives_gpu.cpp:615
Array noise(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f}, glm::ivec2 period={0, 0})
See hmap::noise. period sets the tiling period in lattice cells. For the heightmap to be periodic wit...
Definition primitives_gpu.cpp:573
Array phasor_fbm(PhasorProfile phasor_profile, glm::ivec2 shape, float kp_global, std::uint32_t seed, float angle_shift=0.f, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, int n_kernel_samples=8, const glm::vec2 jitter={1.f, 1.f}, float delta=0.01f, float phase_smoothing=10.f, const Array *p_angle=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Generates a multi-octave (fBm) phasor-based pattern.
Definition phasor.cpp:79
Array voronoise_fbm(glm::ivec2 shape, glm::vec2 kw, float u_param, float v_param, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence Voronoise.
Definition primitives_gpu.cpp:1093
Array vorolines(glm::ivec2 shape, float density, std::uint32_t seed, float k_smoothing=0.f, float exp_sigma=0.f, float alpha=0.f, float alpha_span=M_PI, VoronoiReturnType return_type=VoronoiReturnType::F1_SQUARED, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f}, glm::vec4 bbox_points={0.f, 1.f, 0.f, 1.f})
Generates a Voronoi-based pattern where cells are defined by proximity to random lines.
Definition primitives_gpu.cpp:818
Array voronoise(glm::ivec2 shape, glm::vec2 kw, float u_param, float v_param, std::uint32_t seed, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Generates a 2D Voronoi noise array.
Definition primitives_gpu.cpp:1054
Array vorolines_fbm(glm::ivec2 shape, float density, std::uint32_t seed, float k_smoothing=0.f, float exp_sigma=0.f, float alpha=0.f, float alpha_span=M_PI, VoronoiReturnType return_type=VoronoiReturnType::F1_SQUARED, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f}, glm::vec4 bbox_points={0.f, 1.f, 0.f, 1.f})
Generates a Voronoi-based pattern using distances to lines defined by random points and angles,...
Definition primitives_gpu.cpp:901
Array vororand(glm::ivec2 shape, float density, float variability, std::uint32_t seed, float k_smoothing=0.f, float exp_sigma=0.f, VoronoiReturnType return_type=VoronoiReturnType::F1_SQUARED, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f}, glm::vec4 bbox_points={0.f, 1.f, 0.f, 1.f})
Generates a 2D Voronoi-based scalar field using OpenCL.
Definition primitives_gpu.cpp:1187
Array gavoronoise(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, const Array &angle, float amplitude=0.05f, float angle_spread_ratio=1.f, glm::vec2 kw_multiplier={4.f, 4.f}, float slope_strength=1.f, float branch_strength=2.f, float z_cut_min=0.2f, float z_cut_max=1.f, int octaves=8, float persistence=0.4f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Generates a 2D array using the GavoroNoise algorithm, which is a procedural noise technique for terra...
Definition primitives_gpu.cpp:196
Array wavelet_noise(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, float kw_multiplier=2.f, float vorticity=0.f, float density=1.f, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Generates 2D wavelet noise using an OpenCL kernel.
Definition primitives_gpu.cpp:1285
Array gabor_wave(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, const Array &angle, float angle_spread_ratio=1.f, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence Gabor noise.
Definition primitives_gpu.cpp:54
Array voronoi(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, glm::vec2 jitter={0.5f, 0.5f}, float k_smoothing=0.f, float exp_sigma=0.f, VoronoiReturnType return_type=VoronoiReturnType::F1_SQUARED, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Generates a Voronoi diagram in a 2D array with configurable properties.
Definition primitives_gpu.cpp:950
Array voronoi_fbm(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, glm::vec2 jitter={0.5f, 0.5f}, float k_smoothing=0.f, float exp_sigma=0.f, VoronoiReturnType return_type=VoronoiReturnType::F1_SQUARED, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Generates a Voronoi diagram in a 2D array with configurable properties.
Definition primitives_gpu.cpp:998
Array phasor(PhasorProfile phasor_profile, glm::ivec2 shape, float kp_global, std::uint32_t seed, float angle_shift=0.f, int n_kernel_samples=8, const glm::vec2 jitter={1.f, 1.f}, float delta=0.01f, float phase_smoothing=10.f, const Array *p_angle=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Generates a procedural phasor-based pattern.
Definition phasor.cpp:18
Array gabor_wave_fbm(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, const Array &angle, float angle_spread_ratio=1.f, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence Gabor noise.
Definition primitives_gpu.cpp:102
Array voronoi_edge_distance(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, glm::vec2 jitter={0.5f, 0.5f}, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Computes the Voronoi edge distance.
Definition primitives_gpu.cpp:1145
Definition algebra.hpp:23
Array slope(glm::ivec2 shape, float angle, float slope, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec2 center={0.5f, 0.5f}, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array corresponding to a slope with a given overall.
Definition primitives.cpp:333
Array noise_parberry(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, float mu=1.02f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherent fbm Parberry variant of Perlin noise.
Definition noise.cpp:178
Array noise(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence noise.
Definition noise.cpp:17
Array noise_iq(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, float gradient_scale=0.05f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence fbm noise.
Definition noise.cpp:86
Array diffusion_limited_aggregation_trimesh(glm::ivec2 shape, std::uint32_t seed, size_t control_points_count=5000, glm::vec2 seed_position={0.5f, 0.5f}, float ratio=0.98f, float stop_proba=1.f, float slope=16.f, InterpolationMethod2D interpolation_method=InterpolationMethod2D::ITP2D_DELAUNAY_GRADIENT, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr)
Definition diffusion_limited_aggregation.cpp:116
Array gabor_noise(glm::ivec2 shape, float kw, float angle, int width, float density, std::uint32_t seed)
Return a sparse Gabor noise.
Definition gabor.cpp:18
Array noise_swiss(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, float warp_scale=0.1f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence fbm swiss noise.
Definition noise.cpp:302
Array diffusion_limited_aggregation(glm::ivec2 shape, float scale, std::uint32_t seed, float seeding_radius=0.4f, float seeding_outer_radius_ratio=0.2f, float slope=8.f, float noise_ratio=0.2f)
Generates a diffusion-limited aggregation (DLA) pattern.
Definition diffusion_limited_aggregation.cpp:26
Array noise_pingpong(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence fbm pingpong noise.
Definition noise.cpp:218
InterpolationMethod2D
Enumeration of 2D interpolation methods.
Definition interpolate2d.hpp:47
@ ITP2D_DELAUNAY_GRADIENT
Delaunay triangulation + linear gradient.
Definition interpolate2d.hpp:53
PhasorProfile
Phasor angular profile type.
Definition profiles.hpp:38
Array noise_jordan(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, float warp0=0.4f, float damp0=1.f, float warp_scale=0.4f, float damp_scale=1.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence fbm noise.
Definition noise.cpp:129
Array noise_fbm(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence fbm noise.
Definition noise.cpp:45
Cloud scale(const Cloud &cloud, glm::vec2 scale, glm::vec2 center={0.5f, 0.5f})
Scales the point coordinates in a cloud relative to a center point.
Definition cloud_functions.cpp:165
Array worley_double(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, float ratio=0.5f, float k=0.f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with the maximum of two Worley (cellular) noises.
Definition worley.cpp:16
VoronoiReturnType
Selects the value returned by the Voronoi evaluation.
Definition coherent_noise.hpp:29
@ EDGE_DISTANCE_SQUARED
Squared edge distance.
Definition coherent_noise.hpp:36
@ F1_SQUARED
Returns F1^2.
Definition coherent_noise.hpp:30
@ CONSTANT_F2MF1_SQUARED
Constant × (F2 - F1)^2.
Definition coherent_noise.hpp:38
@ F2_SQUARED
Returns F2^2.
Definition coherent_noise.hpp:31
@ CONSTANT
Constant value.
Definition coherent_noise.hpp:37
@ F1TF2_SQUARED
Returns (F1 * F2)^2.
Definition coherent_noise.hpp:32
@ F2MF1_SQUARED
Returns (F2 - F1)^2.
Definition coherent_noise.hpp:34
@ F1DF2_SQUARED
Returns (F1 / F2)^2.
Definition coherent_noise.hpp:33
@ EDGE_DISTANCE_EXP
Exponential edge distance.
Definition coherent_noise.hpp:35
float angle(const Point &p1, const Point &p2)
Computes the angle between two points relative to the x-axis.
Definition points.cpp:52
NoiseType
Enumeration of various noise types used for procedural generation.
Definition functions.hpp:66
Array dendry(glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, Array &control_function, float eps=0.05, int resolution=1, float displacement=0.075, int primitives_resolution_steps=3, float slope_power=2.f, float noise_amplitude_proportion=0.01, bool add_control_function=true, float control_function_overlap=0.5f, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f}, int subsampling=1)
Dendry is a locally computable procedural function that generates branching patterns at various scale...
Definition dendry.cpp:32
Array noise_ridged(NoiseType noise_type, glm::ivec2 shape, glm::vec2 kw, std::uint32_t seed, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f, float k_smoothing=0.1f, const Array *p_ctrl_param=nullptr, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
Return an array filled with coherence fbm ridged noise.
Definition noise.cpp:259