fractal #1

Merged
Persson-dev merged 21 commits from fractal into main 2025-11-09 15:41:00 +00:00
Showing only changes of commit 0eebe09d47 - Show all commits

View File

@@ -119,9 +119,9 @@ static void GenNewFractal() {
std::vector<glm::mat4> transformations(TRANSFORMATION_COUNT);
for (std::size_t i = 0; i < transformations.size(); i++) {
float scaleX = distrib(generator);
float scaleY = distrib(generator);
float scaleZ = distrib(generator);
float scaleX = distrib(generator) * 0.4 + 0.4;
float scaleY = distrib(generator) * 0.4 + 0.4;
float scaleZ = distrib(generator) * 0.4 + 0.4;
float rotX = distrib(generator) * 2 * 3.14;
float rotY = distrib(generator) * 2 * 3.14;
@@ -134,22 +134,21 @@ static void GenNewFractal() {
float shearZX = distrib(generator) * 0.2f - 0.1f;
float shearZY = distrib(generator) * 0.2f - 0.1f;
float translateX = distrib(generator) * 2.0f - 1.0f;
float translateY = distrib(generator) * 2.0f - 1.0f;
float translateZ = distrib(generator) * 2.0f - 1.0f;
float translateX = distrib(generator) * 1.2f - 0.6f;
float translateY = distrib(generator) * 1.2f - 0.6f;
float translateZ = distrib(generator) * 1.2f - 0.6f;
auto scale = glm::scale(glm::mat4(1), {scaleX, scaleY, scaleZ});
auto rotateX = glm::rotate(scale, rotX, {1, 0, 0});
auto rotateY = glm::rotate(rotateX, rotY, {0, 1, 0});
auto rotateZ = glm::rotate(rotateY, rotZ, {0, 0, 1});
auto shear = glm::shear(rotateZ, {0, 0, 0}, {shearXY, shearXZ}, {shearYX, shearYZ}, {shearZX, shearZY});
auto translate = glm::translate(shear, {translateX, translateY, translateZ});
auto translate = glm::translate(rotateZ, {translateX, translateY, translateZ});
transformations[i] = translate;
}
glUseProgram(s_ComputeShader);
glUniformMatrix4fv(1, transformations.size(), false, glm::value_ptr(transformations[0]));
ApplyTransforms(transformations);
}
static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) {