fixed a lot of stuff with camera and importing
This commit is contained in:
29
src/main.cpp
29
src/main.cpp
@@ -12,7 +12,7 @@
|
||||
|
||||
#include "Model.h"
|
||||
#include "ModelLoader.h"
|
||||
#include "ShaderLoader.h"
|
||||
#include "ShaderManager.h"
|
||||
#include "ShaderProgram.h"
|
||||
#include "Texture.h"
|
||||
#include "TextureLoader.h"
|
||||
@@ -61,14 +61,15 @@ int main() {
|
||||
unsigned char defaultSpecularData[4] = {static_cast<unsigned char>(128), 128, 128, 255};
|
||||
TextureLoader::textures["default_specular"] = TextureLoader::load_from_data(reinterpret_cast<unsigned char*>(&defaultSpecularData), 1, 1, 4);
|
||||
|
||||
ShaderLoader::shaders["phong_shader"] = ShaderLoader::load("./resources/standard.vert", "./resources/standard.frag");
|
||||
if (ShaderLoader::shaders["phong_shader"] == nullptr)
|
||||
ShaderManager::shaders["phong_shader"] = ShaderManager::load("./resources/standard.vert", "./resources/standard.frag");
|
||||
if (ShaderManager::shaders["phong_shader"] == nullptr)
|
||||
{
|
||||
std::exit(1);
|
||||
}
|
||||
|
||||
ModelLoader::models["cube"] = ModelLoader::load_from_file("./resources/cube.obj");
|
||||
/*ModelLoader::models["cube"] = ModelLoader::load_from_file("./resources/cube.obj", true);*/
|
||||
ModelLoader::models["backpack"] = ModelLoader::load_from_file("./resources/backpack/backpack.obj");
|
||||
/*ModelLoader::models["male"] = ModelLoader::load_from_file("./resources/male.obj");*/
|
||||
|
||||
loop();
|
||||
|
||||
@@ -139,14 +140,11 @@ void load_gl()
|
||||
|
||||
void init_camera()
|
||||
{
|
||||
cameraPosition = glm::vec3{5, 0, 5};
|
||||
|
||||
cameraPosition = glm::vec3{10, 0, 10};
|
||||
auto cameraTarget = glm::vec3{0, 0, 0};
|
||||
auto behind = glm::normalize(cameraPosition - cameraTarget);
|
||||
auto right = glm::normalize(glm::cross(glm::vec3{0, 1, 0}, behind));
|
||||
auto up = glm::normalize(glm::cross(right, behind));
|
||||
|
||||
view = glm::lookAt(cameraPosition, cameraTarget, up);
|
||||
view = glm::lookAt(cameraPosition, cameraTarget, glm::vec3(0.0f, 1.0f, 0.0f));
|
||||
|
||||
float aspectRatio = static_cast<float>(gWindowWidth) / static_cast<float>(gWindowHeight);
|
||||
projection = glm::perspective(glm::radians(75.f), aspectRatio, 0.1f, 100.0f);
|
||||
}
|
||||
@@ -157,16 +155,21 @@ void loop() {
|
||||
|
||||
while (!glfwWindowShouldClose(gWindow)) {
|
||||
auto model = glm::identity<glm::mat4>();
|
||||
// model = glm::translate(model, glm::vec3(0, -5.f, 0));
|
||||
// model = glm::scale(model, glm::vec3(.5f, .5f, .5f));
|
||||
glfwPollEvents();
|
||||
|
||||
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
ShaderProgram* shader = ShaderLoader::shaders["phong_shader"].get();
|
||||
ShaderProgram* shader = ShaderManager::shaders["phong_shader"].get();
|
||||
|
||||
const Model* cube = ModelLoader::models["cube"].get();
|
||||
const Model* backpack = ModelLoader::models["backpack"].get();
|
||||
const Model* male = ModelLoader::models["male"].get();
|
||||
|
||||
if (shader && backpack) {
|
||||
if (shader) {
|
||||
Material* mat = backpack->materials[0].get();
|
||||
shader->bind();
|
||||
|
||||
shader->setMat4("projection", projection);
|
||||
@@ -180,7 +183,7 @@ void loop() {
|
||||
shader->setVec3("phongSpecular", glm::vec3(1.0f, 1.0f, 1.0f));
|
||||
shader->setFloat("phongShininess", 32.0f);
|
||||
|
||||
shader->setVec3("lightDirection", glm::vec3(0, 1, 0));
|
||||
shader->setVec3("lightDirection", glm::vec3(-.5f, -.5f, -.5f));
|
||||
shader->setVec3("lightAmbient", glm::vec3(0.3f, 0.3f, 0.3f));
|
||||
shader->setVec3("lightDiffuse", glm::vec3(1.0f, 1.0f, 1.0f));
|
||||
shader->setVec3("lightSpecular", glm::vec3(1.0f, 1.0f, 1.0f));
|
||||
|
||||
Reference in New Issue
Block a user