generated from karl/cpp-template
It works!
Lots of minor fixes
This commit is contained in:
parent
641d77d2db
commit
7227fef749
4
Camera.h
4
Camera.h
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <glm/glm.hpp>
|
#include <glm/glm.hpp>
|
||||||
#include <glm/gtc/matrix_transform.hpp>
|
#include <glm/gtc/matrix_transform.hpp>
|
||||||
|
#include <glm/gtx/dual_quaternion.hpp>
|
||||||
|
|
||||||
#include "Spatial.h"
|
#include "Spatial.h"
|
||||||
|
|
||||||
@ -18,10 +19,9 @@ class Camera : public Spatial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
glm::mat4 get_view() {
|
glm::mat4 get_view() {
|
||||||
return view;
|
return glm::inverse(get_matrix());
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
glm::mat4 projection;
|
glm::mat4 projection;
|
||||||
glm::mat4 view;
|
|
||||||
};
|
};
|
@ -1,19 +1,19 @@
|
|||||||
#include "MCRenderer.h"
|
#include "MCRenderer.h"
|
||||||
#include "Framebuffer3D.h"
|
#include "Framebuffer3D.h"
|
||||||
#include "VertexBuffer.h"
|
#include "VertexBuffer.h"
|
||||||
|
#include <glm/ext/matrix_transform.hpp>
|
||||||
|
|
||||||
MCRenderer::MCRenderer()
|
MCRenderer::MCRenderer()
|
||||||
: render_shader(Shader("Shader/mc.vs", "Shader/mc.fs", "Shader/mc.gs")),
|
: render_shader(Shader("Shader/mc.vs", "Shader/mc.fs", "Shader/mc.gs")),
|
||||||
noise_shader(Shader("Shader/noise.vs", "Shader/noise.fs")), noise(Framebuffer3D(64, 64, 64)),
|
noise_shader(Shader("Shader/noise.vs", "Shader/noise.fs")), noise(Framebuffer3D(64, 64, 64)),
|
||||||
camera(Camera(90, 1920, 1080, 0.1, 100.0)) {
|
camera(Camera(90, 1920, 1080, 0.1, 1000.0)) {
|
||||||
float rectangle_data[12] = {-1.0f, -1.0f, //
|
float data[6][2] = {{-1.0f, -1.0f}, {-1.0, 1.0}, {1.0, -1.0},
|
||||||
-1.0, 1.0, //
|
{1.0f, 1.0f}, {-1.0, 1.0}, {1.0, -1.0}};
|
||||||
1.0, -1.0, //
|
|
||||||
1.0f, 1.0f, //
|
|
||||||
-1.0, 1.0, //
|
|
||||||
1.0, -1.0};
|
|
||||||
|
|
||||||
vertex_rectangle.set_data(6, rectangle_data, GL_STATIC_DRAW);
|
// Move the camera a bit
|
||||||
|
camera.translate(glm::vec3(32.0, 32.0, 32.0));
|
||||||
|
|
||||||
|
vertex_rectangle.set_data(sizeof(data), data, GL_STATIC_DRAW);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCRenderer::render(float delta) {
|
void MCRenderer::render(float delta) {
|
||||||
@ -40,13 +40,13 @@ void MCRenderer::render(float delta) {
|
|||||||
|
|
||||||
// Bind the screen framebuffer
|
// Bind the screen framebuffer
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||||
glDrawBuffer(GL_BACK);
|
// glDrawBuffer(GL_BACK);
|
||||||
|
|
||||||
glClearColor(0.6f, 0.9f, 0.9f, 1.0f);
|
glClearColor(0.6f, 0.9f, 0.9f, 1.0f);
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
// Set the camera position
|
// Set the camera position
|
||||||
camera.translate(glm::vec3(-32.0, -32.0, -32.0));
|
camera.rotate(delta, glm::vec3(0.0, 1.0, 0.0));
|
||||||
|
|
||||||
// Bind the camera to the rendering shader
|
// Bind the camera to the rendering shader
|
||||||
render_shader.setMat4("proj", camera.get_projection());
|
render_shader.setMat4("proj", camera.get_projection());
|
||||||
@ -59,4 +59,6 @@ void MCRenderer::render(float delta) {
|
|||||||
mc_points.bind();
|
mc_points.bind();
|
||||||
glDrawArrays(GL_POINTS, 0, 64 * 64 * 64);
|
glDrawArrays(GL_POINTS, 0, 64 * 64 * 64);
|
||||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||||
|
|
||||||
|
time_passed += delta;
|
||||||
}
|
}
|
@ -21,4 +21,8 @@ class MCRenderer {
|
|||||||
VertexBuffer mc_points;
|
VertexBuffer mc_points;
|
||||||
|
|
||||||
Camera camera;
|
Camera camera;
|
||||||
|
|
||||||
|
float time_passed = 0.0;
|
||||||
|
|
||||||
|
float *rectangle_data;
|
||||||
};
|
};
|
||||||
|
@ -5,7 +5,7 @@ VertexBuffer::VertexBuffer() {
|
|||||||
glGenBuffers(1, &vertex_buffer);
|
glGenBuffers(1, &vertex_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VertexBuffer::set_data(unsigned int size, const void *data, int flag) {
|
void VertexBuffer::set_data(int size, const void *data, int flag) {
|
||||||
this->size = size;
|
this->size = size;
|
||||||
|
|
||||||
glBindVertexArray(vertex_array);
|
glBindVertexArray(vertex_array);
|
||||||
|
@ -10,7 +10,7 @@ class VertexBuffer {
|
|||||||
public:
|
public:
|
||||||
VertexBuffer();
|
VertexBuffer();
|
||||||
|
|
||||||
void set_data(unsigned int size, const void *data, int flag);
|
void set_data(int size, const void *data, int flag);
|
||||||
|
|
||||||
void bind();
|
void bind();
|
||||||
|
|
||||||
@ -19,5 +19,5 @@ class VertexBuffer {
|
|||||||
private:
|
private:
|
||||||
GLuint vertex_array;
|
GLuint vertex_array;
|
||||||
GLuint vertex_buffer;
|
GLuint vertex_buffer;
|
||||||
unsigned int size;
|
int size;
|
||||||
};
|
};
|
||||||
|
2
main.cpp
2
main.cpp
@ -54,7 +54,7 @@ int main() {
|
|||||||
// render loop
|
// render loop
|
||||||
// -----------
|
// -----------
|
||||||
while (!glfwWindowShouldClose(window)) {
|
while (!glfwWindowShouldClose(window)) {
|
||||||
renderer.render(1.0); // TODO: Proper delta
|
renderer.render(0.1); // TODO: Proper delta
|
||||||
|
|
||||||
// glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc.)
|
// glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc.)
|
||||||
glfwSwapBuffers(window);
|
glfwSwapBuffers(window);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user