This commit is contained in:
Ben Kyd
2022-11-22 11:27:45 +00:00
parent 10911f60f2
commit f13a25978c
4 changed files with 17 additions and 25 deletions

View File

@@ -126,13 +126,9 @@ int Inferno::run()
HARTModuleDirectory moduleDirectory;
moduleDirectory.discoverModules("./hart/", true);
Camera camera;
mScene->setCamera(&camera);
Material basicMaterial("basic");
Shader basicShader;
basicMaterial.setGlShader(&basicShader);
basicShader.load("res/shaders/basic.glsl")->link();
Mesh cornell;
cornell.loadOBJ("res/cornell-box.obj");
@@ -140,6 +136,15 @@ int Inferno::run()
cornell.setMaterial(&basicMaterial);
mScene->addMesh(&cornell);
// Mesh dragon;
// dragon.loadOBJ("res/dragon-cornell-size.obj");
// dragon.ready();
// dragon.setMaterial(&basicMaterial);
// mScene->addMesh(&dragon);
Camera camera;
mScene->setCamera(&camera);
Mesh dragon;
dragon.loadOBJ("res/dragon-cornell-size.obj");
dragon.ready();
@@ -268,11 +273,13 @@ int Inferno::run()
camera.UpdateView();
ImGui::PopItemWidth();
ImGui::PushItemWidth(300);
ImGui::Text("Camera Zoom");
ImGui::DragFloat("Zoom", &camera.FOV, -0.1f, 0.0f, 180.0f, "%.2f", ImGuiSliderFlags_None); ImGui::SameLine();
ImGui::DragFloat("Zoom", &camera.FOV, -0.1f, 0.01f, 180.0f, "%.2f", ImGuiSliderFlags_None); ImGui::SameLine();
camera.UpdateProjection();
ImGui::PopItemWidth();
ImGui::TreePop();
}
ImGui::End();

View File

@@ -1,13 +0,0 @@
#pragma once
namespace inferno {
struct Colour
{
uint8_t r;
uint8_t g;
uint8_t b;
uint8_t a;
};
}

View File

@@ -1,7 +1,5 @@
#include "renderer.hpp"
#include "colour.hpp"
#include <scene/camera.hpp>
#include <scene/scene.hpp>
@@ -9,7 +7,7 @@ using namespace inferno;
RayRenderer::RayRenderer()
{
mTarget = new Colour[mRenderTargetSize.x * mRenderTargetSize.y];
mTarget = new glm::fvec4[mRenderTargetSize.x * mRenderTargetSize.y];
glGenTextures(1, &mRenderTargetTexture);
glBindTexture(GL_TEXTURE_2D, mRenderTargetTexture);
@@ -20,7 +18,7 @@ RayRenderer::RayRenderer()
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, mRenderTargetSize.x, mRenderTargetSize.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, mTarget);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, mRenderTargetSize.x, mRenderTargetSize.y, 0, GL_RGBA, GL_FLOAT, mTarget);
glBindTexture(GL_TEXTURE_2D, 0);
}
@@ -62,10 +60,10 @@ void RayRenderer::draw()
for (int x = 0; x < mRenderTargetSize.x; x++)
for (int y = 0; y < mRenderTargetSize.y; y++)
{
mTarget[y * mRenderTargetSize.x + x] = { 0xFF * (uint8_t)x, 0x00, 0xFF * (uint8_t)y, 0xFF };
mTarget[y * mRenderTargetSize.x + x] = { 0.0f + ((float)x / (float)mRenderTargetSize.x), 0.0f + ((float)y / (float)mRenderTargetSize.y), 1.0f, 1.0f };
}
glBindTexture(GL_TEXTURE_2D, mRenderTargetTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, mRenderTargetSize.x, mRenderTargetSize.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, mTarget);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, mRenderTargetSize.x, mRenderTargetSize.y, 0, GL_RGBA, GL_FLOAT, mTarget);
glBindTexture(GL_TEXTURE_2D, 0);
}

View File

@@ -25,7 +25,7 @@ public:
private:
GLuint mRenderTargetTexture = 0;
Colour* mTarget;
glm::fvec4* mTarget;
glm::ivec2 mRenderTargetSize = {300, 300};
Scene* mCurrentScene;