playing with noise
parent
4bb2b2b3af
commit
ab1f83b716
|
@ -11,6 +11,9 @@
|
||||||
<mapping directory="$PROJECT_DIR$/cmake-build-release/_deps/freetype-src" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$/cmake-build-release/_deps/freetype-src" vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$/cmake-build-release/_deps/freetype-src/subprojects/dlg" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$/cmake-build-release/_deps/freetype-src/subprojects/dlg" vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$/cmake-build-release/_deps/imgui-src" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$/cmake-build-release/_deps/imgui-src" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan-alloc/_deps/freetype-src" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan-alloc/_deps/freetype-src/subprojects/dlg" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan-alloc/_deps/imgui-src" vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan/_deps/freetype-src" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan/_deps/freetype-src" vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan/_deps/freetype-src/subprojects/dlg" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan/_deps/freetype-src/subprojects/dlg" vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan/_deps/imgui-src" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$/cmake-build-relwithdebinfo-addrsan/_deps/imgui-src" vcs="Git" />
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
cmake_minimum_required(VERSION 3.25)
|
cmake_minimum_required(VERSION 3.25)
|
||||||
project(image-gp-2 VERSION 0.0.9)
|
project(image-gp-2 VERSION 0.0.10)
|
||||||
|
|
||||||
option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF)
|
option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF)
|
||||||
option(ENABLE_UBSAN "Enable the ub sanitizer" OFF)
|
option(ENABLE_UBSAN "Enable the ub sanitizer" OFF)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 0dc083e095393beaf88d58f07b6f06c04439cdb8
|
Subproject commit 2e09696a673eeae099bc87024e6f32e6c5815fa3
|
|
@ -83,6 +83,12 @@ void setup_operations(gp_program* program)
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
});
|
});
|
||||||
|
static auto op_image_noise = operation_t([program]() {
|
||||||
|
image_t ret{};
|
||||||
|
for (auto& v : ret.get_data().data)
|
||||||
|
v = program->get_random().get_float(0, 1.0f);
|
||||||
|
return ret;
|
||||||
|
}).set_ephemeral();
|
||||||
static auto op_image_ephemeral = operation_t([program]() {
|
static auto op_image_ephemeral = operation_t([program]() {
|
||||||
image_t ret{};
|
image_t ret{};
|
||||||
const auto value = program->get_random().get_float();
|
const auto value = program->get_random().get_float();
|
||||||
|
@ -175,6 +181,14 @@ void setup_operations(gp_program* program)
|
||||||
lacunarity + 2, gain + 0.5f, 1.0f, static_cast<int>(octaves));
|
lacunarity + 2, gain + 0.5f, 1.0f, static_cast<int>(octaves));
|
||||||
return ret;
|
return ret;
|
||||||
}, "perlin_image");
|
}, "perlin_image");
|
||||||
|
static operation_t op_image_perlin_bounded([](float octaves) {
|
||||||
|
octaves = std::min(std::max(octaves, 4.0f), 8.0f);
|
||||||
|
image_t ret{};
|
||||||
|
for (const auto& [i, out] : blt::enumerate(ret.get_data().data))
|
||||||
|
out = stb_perlin_fbm_noise3(static_cast<float>(i % IMAGE_DIMENSIONS) + 0.23423f, static_cast<float>(i / IMAGE_DIMENSIONS) + 0.6234f, 0.4861f,
|
||||||
|
2, 0.5, static_cast<int>(octaves));
|
||||||
|
return ret;
|
||||||
|
}, "perlin_image_bounded");
|
||||||
static operation_t op_sin([](const float a) {
|
static operation_t op_sin([](const float a) {
|
||||||
return std::sin(a);
|
return std::sin(a);
|
||||||
}, "sin_float");
|
}, "sin_float");
|
||||||
|
@ -198,7 +212,7 @@ void setup_operations(gp_program* program)
|
||||||
operator_builder builder{};
|
operator_builder builder{};
|
||||||
builder.build(op_image_ephemeral, make_add<image_t>(), make_sub<image_t>(), make_mul<image_t>(), make_div<image_t>(), op_image_x, op_image_y,
|
builder.build(op_image_ephemeral, make_add<image_t>(), make_sub<image_t>(), make_mul<image_t>(), make_div<image_t>(), op_image_x, op_image_y,
|
||||||
op_image_sin, op_image_gt, op_image_lt, op_image_cos, op_image_log, op_image_exp, op_image_or, op_image_and, op_image_xor,
|
op_image_sin, op_image_gt, op_image_lt, op_image_cos, op_image_log, op_image_exp, op_image_or, op_image_and, op_image_xor,
|
||||||
op_image_not, op_image_perlin, make_add<float>(), make_sub<float>(), make_mul<float>(), make_prot_div<float>(), op_sin, op_cos,
|
op_image_not, op_image_perlin_bounded, op_image_blend, make_add<float>(), make_sub<float>(), make_mul<float>(), make_prot_div<float>(), op_sin, op_cos,
|
||||||
op_exp, op_log, lit);
|
op_exp, op_log, lit);
|
||||||
program->set_operations(builder.grab());
|
program->set_operations(builder.grab());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue