some weird ass backwards ass bug

£
This commit is contained in:
benkyd
2022-11-05 16:41:51 +00:00
parent 7298935ce7
commit dfbc95ed25
4 changed files with 38 additions and 3 deletions

View File

@@ -9,8 +9,10 @@ uniform mat4 view;
uniform mat4 proj;
out vec3 vNormal;
out vec3 vFragPos;
void main() {
vFragPos = vec3(model * vec4(position, 1.0));
vNormal = normal;
gl_Position = proj * view * model * vec4(position, 1.0);
}
@@ -21,7 +23,24 @@ void main() {
layout(location = 0) out vec4 outColour;
in vec3 vNormal;
in vec3 vFragPos;
vec3 lightColour = {1.0, 1.0, 1.0};
vec3 lightPos = {12.0, 2.0, 4.0};
vec3 objectColour = {1.0, 0.5, 0.4};
void main() {
outColour = vec4(vNormal, 1.0);
// ambient
float ambientStrength = 0.1;
vec3 ambient = ambientStrength * lightColour;
// diffuse
vec3 norm = normalize(vNormal);
vec3 lightDir = normalize(lightPos - vFragPos);
float diff = max(dot(norm, lightDir), 0.0);
vec3 diffuse = diff * lightColour;
vec3 result = (ambient + diffuse) * objectColour;
outColour = vec4(result, 1.0);
}

View File

@@ -86,16 +86,22 @@ int Inferno::run()
Camera camera;
Mesh cornell;
cornell.loadOBJ("res/cornell.obj");
cornell.loadOBJ("res/cornell-box.obj");
cornell.ready();
Mesh dragon;
dragon.loadOBJ("res/dragon-cornell-size.obj");
dragon.ready();
Material basicMaterial("basic");
Shader basicShader;
basicShader.load("res/shaders/basic.glsl")->link();
basicMaterial.setGlShader(&basicShader);
cornell.setMaterial(&basicMaterial);
dragon.setMaterial(&basicMaterial);
mScene->addMesh(&cornell);
mScene->addMesh(&dragon);
mScene->setCamera(&camera);
mRasterRenderer->setScene(mScene);

View File

@@ -18,7 +18,10 @@ RasterizeRenderer::RasterizeRenderer()
glGenTextures(1, &mRenderTargetTexture);
glBindTexture(GL_TEXTURE_2D, mRenderTargetTexture);
glEnable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 800, 600, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -42,6 +45,10 @@ void RasterizeRenderer::setScene(Scene* scene)
void RasterizeRenderer::setTargetSize(glm::vec2 size)
{
glBindFramebuffer(GL_FRAMEBUFFER, mRenderTarget);
glBindTexture(GL_TEXTURE_2D, mRenderTargetTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, size.x, size.y, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
mRenderTargetSize = size;
}

View File

@@ -140,6 +140,9 @@ void Window::setupGLFW(std::string title)
glfwMakeContextCurrent(window);
gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);
glfwSwapInterval(1); // Enable vsync
glEnable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
}
void Window::setupImGui()