fractal #1

Merged
Persson-dev merged 21 commits from fractal into main 2025-11-09 15:41:00 +00:00
2 changed files with 15 additions and 4 deletions
Showing only changes of commit 10b0b54e71 - Show all commits

View File

@@ -5,11 +5,14 @@ layout(std430, binding = 3) buffer layoutName
float data_SSBO[];
};
layout(location = 0) uniform mat4 viewMatrix;
layout(location = 1) uniform mat4 projectionMatrix;
vec3 unpack(uint index) {
return vec3(data_SSBO[index * 3], data_SSBO[index * 3 + 1], data_SSBO[index * 3 + 2]);
}
void main()
{
gl_Position = vec4(unpack(gl_InstanceID), 1.0);
gl_Position = projectionMatrix * viewMatrix * vec4(unpack(gl_InstanceID), 1.0);
}

View File

@@ -10,7 +10,7 @@
#include <random>
constexpr int WORK_GROUP_SIZE = 64;
constexpr int PARTICLE_COUNT = WORK_GROUP_SIZE * 10000;
constexpr int PARTICLE_COUNT = WORK_GROUP_SIZE * 15625;
constexpr int SWAP_INTERVAL = 1;
@@ -106,7 +106,7 @@ static void ErrorCallback(int error, const char* description) {
static void ApplyTransforms(const std::vector<glm::mat4>& transformations) {
glUseProgram(s_ComputeShader);
glUniformMatrix4fv(1, transformations.size(), true, glm::value_ptr(transformations[0]));
glUniformMatrix4fv(1, transformations.size(), false, glm::value_ptr(transformations[0]));
}
static void GenNewFractal() {
@@ -233,6 +233,13 @@ static GLFWwindow* InitWindow() {
return nullptr;
}
auto viewMatrix = glm::lookAt(glm::vec3{1, 2, 2}, {0, 0, 0}, {0, 1, 0});
auto projectionMatrix = glm::perspective(70.0f, 2.0f, 0.01f, 10.0f);
glUseProgram(s_GraphicsShader);
glUniformMatrix4fv(0, 1, false, glm::value_ptr(viewMatrix));
glUniformMatrix4fv(1, 1, false, glm::value_ptr(projectionMatrix));
return window;
}
@@ -252,7 +259,8 @@ int main() {
glBindVertexArray(vertexArray);
ApplyTransforms(SIERPINSKI_TRIANGLE);
// ApplyTransforms(SIERPINSKI_TRIANGLE);
GenNewFractal();
while (!glfwWindowShouldClose(window)) {
// ScopedTimer timer("Main Loop");