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/gtc/matrix_transform.hpp>
|
||||
#include <glm/gtx/dual_quaternion.hpp>
|
||||
|
||||
#include "Spatial.h"
|
||||
|
||||
@ -18,10 +19,9 @@ class Camera : public Spatial {
|
||||
}
|
||||
|
||||
glm::mat4 get_view() {
|
||||
return view;
|
||||
return glm::inverse(get_matrix());
|
||||
}
|
||||
|
||||
private:
|
||||
glm::mat4 projection;
|
||||
glm::mat4 view;
|
||||
};
|
@ -1,19 +1,19 @@
|
||||
#include "MCRenderer.h"
|
||||
#include "Framebuffer3D.h"
|
||||
#include "VertexBuffer.h"
|
||||
#include <glm/ext/matrix_transform.hpp>
|
||||
|
||||
MCRenderer::MCRenderer()
|
||||
: 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)),
|
||||
camera(Camera(90, 1920, 1080, 0.1, 100.0)) {
|
||||
float rectangle_data[12] = {-1.0f, -1.0f, //
|
||||
-1.0, 1.0, //
|
||||
1.0, -1.0, //
|
||||
1.0f, 1.0f, //
|
||||
-1.0, 1.0, //
|
||||
1.0, -1.0};
|
||||
camera(Camera(90, 1920, 1080, 0.1, 1000.0)) {
|
||||
float data[6][2] = {{-1.0f, -1.0f}, {-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) {
|
||||
@ -40,13 +40,13 @@ void MCRenderer::render(float delta) {
|
||||
|
||||
// Bind the screen framebuffer
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
glDrawBuffer(GL_BACK);
|
||||
// glDrawBuffer(GL_BACK);
|
||||
|
||||
glClearColor(0.6f, 0.9f, 0.9f, 1.0f);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
// 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
|
||||
render_shader.setMat4("proj", camera.get_projection());
|
||||
@ -59,4 +59,6 @@ void MCRenderer::render(float delta) {
|
||||
mc_points.bind();
|
||||
glDrawArrays(GL_POINTS, 0, 64 * 64 * 64);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
|
||||
time_passed += delta;
|
||||
}
|
@ -21,4 +21,8 @@ class MCRenderer {
|
||||
VertexBuffer mc_points;
|
||||
|
||||
Camera camera;
|
||||
|
||||
float time_passed = 0.0;
|
||||
|
||||
float *rectangle_data;
|
||||
};
|
||||
|
@ -5,7 +5,7 @@ VertexBuffer::VertexBuffer() {
|
||||
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;
|
||||
|
||||
glBindVertexArray(vertex_array);
|
||||
|
@ -10,7 +10,7 @@ class VertexBuffer {
|
||||
public:
|
||||
VertexBuffer();
|
||||
|
||||
void set_data(unsigned int size, const void *data, int flag);
|
||||
void set_data(int size, const void *data, int flag);
|
||||
|
||||
void bind();
|
||||
|
||||
@ -19,5 +19,5 @@ class VertexBuffer {
|
||||
private:
|
||||
GLuint vertex_array;
|
||||
GLuint vertex_buffer;
|
||||
unsigned int size;
|
||||
int size;
|
||||
};
|
||||
|
2
main.cpp
2
main.cpp
@ -54,7 +54,7 @@ int main() {
|
||||
// render loop
|
||||
// -----------
|
||||
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.)
|
||||
glfwSwapBuffers(window);
|
||||
|
Loading…
x
Reference in New Issue
Block a user