merge
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
namespace inferno {
|
||||
|
||||
struct Colour
|
||||
{
|
||||
uint8_t r;
|
||||
uint8_t g;
|
||||
uint8_t b;
|
||||
uint8_t a;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public:
|
||||
private:
|
||||
GLuint mRenderTargetTexture = 0;
|
||||
|
||||
Colour* mTarget;
|
||||
glm::fvec4* mTarget;
|
||||
glm::ivec2 mRenderTargetSize = {300, 300};
|
||||
|
||||
Scene* mCurrentScene;
|
||||
|
||||
Reference in New Issue
Block a user