+ | Opti bvh on compute.glsl

This commit is contained in:
RedShip
2025-01-18 21:12:11 +01:00
parent 146381f191
commit 388ad5fc7d
6 changed files with 59 additions and 36 deletions

View File

@ -6,7 +6,7 @@
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/09/27 14:51:49 by TheRed #+# #+# */
/* Updated: 2025/01/18 19:28:58 by ycontre ### ########.fr */
/* Updated: 2025/01/18 21:10:23 by ycontre ### ########.fr */
/* */
/* ************************************************************************** */
@ -20,8 +20,8 @@ int main(int argc, char **argv)
return (1);
Window window(&scene, WIDTH, HEIGHT, "RT_GPU", 0);
Shader shader("shaders/vertex.vert", "shaders/frag.frag", "shaders/compute.glsl");
// Shader shader("shaders/vertex.vert", "shaders/frag.frag", "shaders/debug.glsl");
// Shader shader("shaders/vertex.vert", "shaders/frag.frag", "shaders/compute.glsl");
Shader shader("shaders/vertex.vert", "shaders/frag.frag", "shaders/debug.glsl");
GLint max_gpu_size;
glGetIntegerv(GL_MAX_SHADER_STORAGE_BLOCK_SIZE, &max_gpu_size);

View File

@ -6,7 +6,7 @@
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/16 21:48:48 by TheRed #+# #+# */
/* Updated: 2025/01/18 19:16:45 by ycontre ### ########.fr */
/* Updated: 2025/01/18 21:11:35 by ycontre ### ########.fr */
/* */
/* ************************************************************************** */
@ -165,7 +165,6 @@ std::vector<GPUBvh> BVH::getGPUBvhs()
int currentIndex = 0;
flatten(bvhs, currentIndex);
std::cout << "BVH Done: " << bvhs.size() << std::endl;
return (bvhs);
}

View File

@ -3,10 +3,10 @@
/* ::: :::::::: */
/* ObjParser.cpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/16 15:00:33 by tomoron #+# #+# */
/* Updated: 2025/01/18 18:57:31 by tomoron ### ########.fr */
/* Updated: 2025/01/18 21:07:12 by ycontre ### ########.fr */
/* */
/* ************************************************************************** */
@ -154,7 +154,8 @@ void ObjParser::addFace(std::stringstream &line, Scene &scene)
while(faceVertices.size() > 3)
if (!addTriangleFromPolygon(faceVertices, scene, 0))
addTriangleFromPolygon(faceVertices, scene, 1);
if(!addTriangleFromPolygon(faceVertices, scene, 1))
return ;
if(!line.eof())
throw std::runtime_error("OBJ: an error occured while parsing face");

View File

@ -6,7 +6,7 @@
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/12/23 18:29:41 by ycontre #+# #+# */
/* Updated: 2025/01/17 19:05:53 by ycontre ### ########.fr */
/* Updated: 2025/01/18 21:04:56 by ycontre ### ########.fr */
/* */
/* ************************************************************************** */
@ -58,9 +58,15 @@ bool Scene::parseScene(char *name)
}
file.close();
std::cout << "Parsing done" << std::endl;
std::cout << "Starting BVH" << std::endl;
BVH *bvh = new BVH(_gpu_triangles, 0, _gpu_triangles.size());
_gpu_bvh = bvh->getGPUBvhs();
std::cout << "BVH Done: " << bvh->size() << std::endl;
return (true);
}