mirror of
https://github.com/TheRedShip/RT_GPU.git
synced 2025-09-27 10:48:34 +02:00
jsp
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/12/23 18:30:18 by ycontre #+# #+# */
|
||||
/* Updated: 2024/12/23 18:46:13 by ycontre ### ########.fr */
|
||||
/* Updated: 2025/01/10 18:58:38 by ycontre ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -59,7 +59,7 @@ class Scene
|
||||
void updateGPUData();
|
||||
|
||||
const std::vector<GPUObject> &getObjectData() const;
|
||||
const std::vector<GPUMaterial> &getMaterialData() const;
|
||||
std::vector<GPUMaterial> &getMaterialData();
|
||||
|
||||
Camera *getCamera(void) const;
|
||||
Material *getMaterial(int material_index);
|
||||
|
@ -20,5 +20,5 @@ pl -3 0 0 1 0 0 3
|
||||
pl 0 0 -3 0 0 1 4
|
||||
pl 0 0 3 0 0 -1 2
|
||||
|
||||
po -0.33 -0.66 -1 0 1 0 0.5 0.5 0 0 2
|
||||
po -0.33 -0.66 -1 0 1 0 0.5 0.5 -0.5 0 2
|
||||
po -0.5 -0.5 1 0 1 0 1 0 0 1 4
|
@ -1,8 +1,8 @@
|
||||
CAM -0.0970577 1.63916 1.69444 -13.6 -84 0 1
|
||||
CAM -0.0970577 1.63916 1.69444 -13.6 -84 0 4
|
||||
|
||||
|
||||
MAT 200 200 200 0.0 0.0 0.0 //white
|
||||
MAT 255 50 50 0.0 1.0 0.0 //red
|
||||
MAT 255 50 50 0.0 1.0 1.0 //red
|
||||
MAT 50 255 50 0.0 0.0 0.0 //green
|
||||
MAT 100 100 255 0.0 0.0 0.0 //blue
|
||||
MAT 255 100 255 0.0 0.0 0.0 //purple
|
||||
|
@ -38,17 +38,17 @@ struct GPUCamera
|
||||
float focus_distance;
|
||||
};
|
||||
|
||||
layout(std430, binding = 1) buffer ObjectBuffer
|
||||
layout(std430, binding = 0) buffer ObjectBuffer
|
||||
{
|
||||
GPUObject objects[];
|
||||
};
|
||||
|
||||
layout(std430, binding = 2) buffer MaterialBuffer
|
||||
layout(std430, binding = 1) buffer MaterialBuffer
|
||||
{
|
||||
GPUMaterial materials[];
|
||||
};
|
||||
|
||||
layout(std140) uniform CameraData
|
||||
layout(std140, binding = 0) uniform CameraData
|
||||
{
|
||||
GPUCamera camera;
|
||||
};
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/27 14:51:49 by TheRed #+# #+# */
|
||||
/* Updated: 2025/01/09 16:17:29 by tomoron ### ########.fr */
|
||||
/* Updated: 2025/01/10 19:12:40 by ycontre ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -44,7 +44,7 @@ int main(int argc, char **argv)
|
||||
glGetIntegerv(GL_MAX_SHADER_STORAGE_BLOCK_SIZE, &max_gpu_size);
|
||||
|
||||
const std::vector<GPUObject> &object_data = scene.getObjectData();
|
||||
const std::vector<GPUMaterial> &material_data = scene.getMaterialData();
|
||||
std::vector<GPUMaterial> &material_data = scene.getMaterialData();
|
||||
std::cout << "Sending " << object_data.size() << " objects for " << \
|
||||
object_data.size() * sizeof(GPUObject) + material_data.size() * sizeof(GPUMaterial) \
|
||||
<< " / " << max_gpu_size << " bytes" << std::endl;
|
||||
@ -56,11 +56,11 @@ int main(int argc, char **argv)
|
||||
|
||||
glBindBuffer(GL_SHADER_STORAGE_BUFFER, objectSSBO);
|
||||
glBufferData(GL_SHADER_STORAGE_BUFFER, object_data.size() * sizeof(GPUObject), object_data.data(), GL_DYNAMIC_DRAW);
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, objectSSBO);
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, objectSSBO);
|
||||
|
||||
glBindBuffer(GL_SHADER_STORAGE_BUFFER, materialSSBO);
|
||||
glBufferData(GL_SHADER_STORAGE_BUFFER, material_data.size() * sizeof(GPUMaterial), material_data.data(), GL_DYNAMIC_DRAW);
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 2, materialSSBO);
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, materialSSBO);
|
||||
|
||||
GPUCamera camera_data = scene.getCamera()->getGPUData();
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, cameraUBO);
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/12/23 18:29:41 by ycontre #+# #+# */
|
||||
/* Updated: 2025/01/08 20:08:03 by ycontre ### ########.fr */
|
||||
/* Updated: 2025/01/10 18:58:57 by ycontre ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -153,7 +153,7 @@ const std::vector<GPUObject>& Scene::getObjectData() const
|
||||
return (_gpu_objects);
|
||||
}
|
||||
|
||||
const std::vector<GPUMaterial>& Scene::getMaterialData() const
|
||||
std::vector<GPUMaterial>& Scene::getMaterialData()
|
||||
{
|
||||
return (_gpu_materials);
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/10/13 20:21:13 by ycontre #+# #+# */
|
||||
/* Updated: 2024/10/14 19:52:40 by ycontre ### ########.fr */
|
||||
/* Updated: 2025/01/10 18:53:39 by ycontre ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
Reference in New Issue
Block a user