some weird ass backwards ass bug
£
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user