mirror of
https://github.com/TheRedShip/RT_GPU.git
synced 2025-09-27 18:48:36 +02:00
+ | Fixing
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/10/13 18:10:10 by TheRed #+# #+# */
|
/* Created: 2024/10/13 18:10:10 by TheRed #+# #+# */
|
||||||
/* Updated: 2024/10/14 19:51:46 by ycontre ### ########.fr */
|
/* Updated: 2025/01/30 17:52:20 by ycontre ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ class Shader
|
|||||||
|
|
||||||
void attach(void);
|
void attach(void);
|
||||||
void setupVertexBuffer();
|
void setupVertexBuffer();
|
||||||
void drawTriangles(size_t size);
|
void drawTriangles();
|
||||||
|
|
||||||
// void setBool(const std::string &name, bool value) const;
|
// void setBool(const std::string &name, bool value) const;
|
||||||
void set_int(const std::string &name, int value) const;
|
void set_int(const std::string &name, int value) const;
|
||||||
@ -52,6 +52,8 @@ class Shader
|
|||||||
GLuint _fragment;
|
GLuint _fragment;
|
||||||
GLuint _compute;
|
GLuint _compute;
|
||||||
|
|
||||||
|
size_t _size;
|
||||||
|
|
||||||
void checkCompileErrors(unsigned int shader);
|
void checkCompileErrors(unsigned int shader);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
|
|
||||||
TEX checker
|
|
||||||
|
|
||||||
MAT 255 255 255 4.0 0.0 0.0 //light
|
MAT 255 255 255 4.0 0.0 0.0 //light
|
||||||
MAT 255 255 255 0.0 0.0 0.0 //white
|
MAT 255 255 255 0.0 0.0 0.0 //white
|
||||||
|
|
||||||
|
@ -65,8 +65,6 @@ cu -9 0.98 3 3 3 3 28
|
|||||||
MAT 244 95 28 0.0 0.5 1.0
|
MAT 244 95 28 0.0 0.5 1.0
|
||||||
cu -9 1.23 -6 3 3 3 29
|
cu -9 1.23 -6 3 3 3 29
|
||||||
|
|
||||||
TEX texture.jpg // 0
|
|
||||||
|
|
||||||
MAT 200 20 20 0.0 1.0 0.05 LAM 0
|
MAT 200 20 20 0.0 1.0 0.05 LAM 0
|
||||||
MAT 255 255 255 0.0 1.8 0.0 DIE -1
|
MAT 255 255 255 0.0 1.8 0.0 DIE -1
|
||||||
MAT 255 255 255 0.0 1.0 1.0
|
MAT 255 255 255 0.0 1.0 1.0
|
||||||
|
@ -186,6 +186,7 @@ vec3 pathtrace(Ray ray, inout uint rng_state)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
float miss_condition = float(hit.obj_index == -1);
|
float miss_condition = float(hit.obj_index == -1);
|
||||||
light += miss_condition * transmittance * GetEnvironmentLight(ray);
|
light += miss_condition * transmittance * GetEnvironmentLight(ray);
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ hitInfo traceRay(Ray ray)
|
|||||||
hitInfo hitScene;
|
hitInfo hitScene;
|
||||||
hitInfo hit;
|
hitInfo hit;
|
||||||
|
|
||||||
#if 0
|
#if 1
|
||||||
for (int i = 0; i < 10; i++) // portal ray
|
for (int i = 0; i < 10; i++) // portal ray
|
||||||
{
|
{
|
||||||
hitBVH = traverseBVHs(ray);
|
hitBVH = traverseBVHs(ray);
|
||||||
@ -179,7 +179,6 @@ hitInfo traceRay(Ray ray)
|
|||||||
break ;
|
break ;
|
||||||
ray = portalRay(ray, hit);
|
ray = portalRay(ray, hit);
|
||||||
ray.inv_direction = (1.0 / ray.direction);
|
ray.inv_direction = (1.0 / ray.direction);
|
||||||
return (hit);
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
hitBVH = traverseBVHs(ray);
|
hitBVH = traverseBVHs(ray);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/27 14:51:49 by TheRed #+# #+# */
|
/* Created: 2024/09/27 14:51:49 by TheRed #+# #+# */
|
||||||
/* Updated: 2025/01/28 19:01:09 by ycontre ### ########.fr */
|
/* Updated: 2025/01/30 18:02:33 by ycontre ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ int main(int argc, char **argv)
|
|||||||
window.imGuiNewFrame();
|
window.imGuiNewFrame();
|
||||||
|
|
||||||
glUseProgram(shader.getProgram());
|
glUseProgram(shader.getProgram());
|
||||||
shader.drawTriangles(size);
|
shader.drawTriangles();
|
||||||
|
|
||||||
window.imGuiRender();
|
window.imGuiRender();
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
/* By: ycontre <ycontre@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/10/13 20:21:13 by ycontre #+# #+# */
|
/* Created: 2024/10/13 20:21:13 by ycontre #+# #+# */
|
||||||
/* Updated: 2025/01/24 19:13:13 by ycontre ### ########.fr */
|
/* Updated: 2025/01/30 17:52:32 by ycontre ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ void Shader::setupVertexBuffer()
|
|||||||
{
|
{
|
||||||
|
|
||||||
Vertex vertices[3] = {{{-1.0f, -1.0f}, {0.0f, 0.0f}},{{3.0f, -1.0f}, {2.0f, 0.0f}},{{-1.0f, 3.0f}, {0.0f, 2.0f}}};
|
Vertex vertices[3] = {{{-1.0f, -1.0f}, {0.0f, 0.0f}},{{3.0f, -1.0f}, {2.0f, 0.0f}},{{-1.0f, 3.0f}, {0.0f, 2.0f}}};
|
||||||
size_t size = sizeof(vertices) / sizeof(Vertex) / 3;
|
_size = sizeof(vertices) / sizeof(Vertex) / 3;
|
||||||
|
|
||||||
glGenVertexArrays(1, &_screen_VAO);
|
glGenVertexArrays(1, &_screen_VAO);
|
||||||
glGenBuffers(1, &_screen_VBO);
|
glGenBuffers(1, &_screen_VBO);
|
||||||
@ -163,7 +163,7 @@ void Shader::setupVertexBuffer()
|
|||||||
glBindVertexArray(_screen_VAO);
|
glBindVertexArray(_screen_VAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, _screen_VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, _screen_VBO);
|
||||||
glBufferData(GL_ARRAY_BUFFER, size * 3 * sizeof(Vertex), vertices, GL_STATIC_DRAW);
|
glBufferData(GL_ARRAY_BUFFER, _size * 3 * sizeof(Vertex), vertices, GL_STATIC_DRAW);
|
||||||
|
|
||||||
// Position attribute
|
// Position attribute
|
||||||
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)0);
|
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (void*)0);
|
||||||
@ -177,14 +177,14 @@ void Shader::setupVertexBuffer()
|
|||||||
glBindVertexArray(0);
|
glBindVertexArray(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Shader::drawTriangles(size_t size)
|
void Shader::drawTriangles()
|
||||||
{
|
{
|
||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
glBindTexture(GL_TEXTURE_2D, _output_texture);
|
glBindTexture(GL_TEXTURE_2D, _output_texture);
|
||||||
glUniform1i(glGetUniformLocation(_program, "screenTexture"), 0);
|
glUniform1i(glGetUniformLocation(_program, "screenTexture"), 0);
|
||||||
|
|
||||||
glBindVertexArray(_screen_VAO);
|
glBindVertexArray(_screen_VAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, size * 3);
|
glDrawArrays(GL_TRIANGLES, 0, _size * 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Shader::set_int(const std::string &name, int value) const
|
void Shader::set_int(const std::string &name, int value) const
|
||||||
|
Reference in New Issue
Block a user