generated from Persson-dev/OpenGLComputeShader
fractal #1
17
src/Main.cpp
17
src/Main.cpp
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user