generated from Persson-dev/OpenGLComputeShader
adjust random values
This commit is contained in:
17
src/Main.cpp
17
src/Main.cpp
@@ -119,9 +119,9 @@ static void GenNewFractal() {
|
|||||||
std::vector<glm::mat4> transformations(TRANSFORMATION_COUNT);
|
std::vector<glm::mat4> transformations(TRANSFORMATION_COUNT);
|
||||||
|
|
||||||
for (std::size_t i = 0; i < transformations.size(); i++) {
|
for (std::size_t i = 0; i < transformations.size(); i++) {
|
||||||
float scaleX = distrib(generator);
|
float scaleX = distrib(generator) * 0.4 + 0.4;
|
||||||
float scaleY = distrib(generator);
|
float scaleY = distrib(generator) * 0.4 + 0.4;
|
||||||
float scaleZ = distrib(generator);
|
float scaleZ = distrib(generator) * 0.4 + 0.4;
|
||||||
|
|
||||||
float rotX = distrib(generator) * 2 * 3.14;
|
float rotX = distrib(generator) * 2 * 3.14;
|
||||||
float rotY = 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 shearZX = distrib(generator) * 0.2f - 0.1f;
|
||||||
float shearZY = distrib(generator) * 0.2f - 0.1f;
|
float shearZY = distrib(generator) * 0.2f - 0.1f;
|
||||||
|
|
||||||
float translateX = distrib(generator) * 2.0f - 1.0f;
|
float translateX = distrib(generator) * 1.2f - 0.6f;
|
||||||
float translateY = distrib(generator) * 2.0f - 1.0f;
|
float translateY = distrib(generator) * 1.2f - 0.6f;
|
||||||
float translateZ = distrib(generator) * 2.0f - 1.0f;
|
float translateZ = distrib(generator) * 1.2f - 0.6f;
|
||||||
|
|
||||||
auto scale = glm::scale(glm::mat4(1), {scaleX, scaleY, scaleZ});
|
auto scale = glm::scale(glm::mat4(1), {scaleX, scaleY, scaleZ});
|
||||||
auto rotateX = glm::rotate(scale, rotX, {1, 0, 0});
|
auto rotateX = glm::rotate(scale, rotX, {1, 0, 0});
|
||||||
auto rotateY = glm::rotate(rotateX, rotY, {0, 1, 0});
|
auto rotateY = glm::rotate(rotateX, rotY, {0, 1, 0});
|
||||||
auto rotateZ = glm::rotate(rotateY, rotZ, {0, 0, 1});
|
auto rotateZ = glm::rotate(rotateY, rotZ, {0, 0, 1});
|
||||||
auto shear = glm::shear(rotateZ, {0, 0, 0}, {shearXY, shearXZ}, {shearYX, shearYZ}, {shearZX, shearZY});
|
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;
|
transformations[i] = translate;
|
||||||
}
|
}
|
||||||
|
|
||||||
glUseProgram(s_ComputeShader);
|
ApplyTransforms(transformations);
|
||||||
glUniformMatrix4fv(1, transformations.size(), false, glm::value_ptr(transformations[0]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) {
|
static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) {
|
||||||
|
|||||||
Reference in New Issue
Block a user