diff --git a/CMakeLists.txt b/CMakeLists.txt index 1617f21..adeecc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ project(Inferno) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} CMakeModules/) cmake_policy(SET CMP0037 OLD) + #set(CMAKE_BUILD_TYPE Debug) set(CMAKE_CXX_FLAGS "-Ofast") @@ -11,7 +12,7 @@ add_definitions(-DRESOURCES="${CMAKE_SOURCE_DIR}/resources/") set(executable output) set(SrcDIR ./src) set(TestDIR ./test) -set(CurrentTest lucy_cornell.cpp) +set(CurrentTest stanford_dragon_cornell.cpp) set(IncludeDIR ./include) diff --git a/resources/models/lucy.mtl b/resources/models/lucy.mtl index e1e8365..c7df6b5 100644 --- a/resources/models/lucy.mtl +++ b/resources/models/lucy.mtl @@ -4,7 +4,7 @@ newmtl Default_OBJ.001 Ns 225.000000 Ka 1.000000 1.000000 1.000000 -Kd 0.900000 0.900000 0.900000 +Kd 1.000000 1.000000 1.000000 Ks 0.500000 0.500000 0.500000 Ke 0.0 0.0 0.0 Ni 1.450000 diff --git a/src/definitions/materials/material.hpp b/src/definitions/materials/material.hpp index 984a843..990c0ec 100644 --- a/src/definitions/materials/material.hpp +++ b/src/definitions/materials/material.hpp @@ -33,4 +33,10 @@ public: : Material(colour, 0.0f, shine, 1.0f, gloss, false, false) { }; }; +class MatteMaterial : public Material { +public: + MatteMaterial(glm::vec3 colour) + : Material(colour, 0.0f, 0.0f, 1.0f, 0.0f, false, false) { }; +}; + #endif diff --git a/test/lucy_cornell.cpp b/test/lucy_cornell.cpp index d561152..958d335 100644 --- a/test/lucy_cornell.cpp +++ b/test/lucy_cornell.cpp @@ -20,7 +20,7 @@ int main(int argc, char** argv) { Material* mat = new GlossyMaterial({ 1.0f, 1.0f, 1.0f }, 0.2f, fastDegreetoRadian(30.0f)); - std::string models = RESOURCES + std::string("//models//"); + std::string models = RESOURCES + std::string("//models//"); std::string lucy = RESOURCES + std::string("//models//lucy.obj"); std::string cornell = RESOURCES + std::string("//models//cornell-box.obj"); diff --git a/test/stanford_dragon_cornell.cpp b/test/stanford_dragon_cornell.cpp index 3899e31..0532eb4 100644 --- a/test/stanford_dragon_cornell.cpp +++ b/test/stanford_dragon_cornell.cpp @@ -21,17 +21,20 @@ int main(int argc, char** argv) { Sphere* sphere = new Sphere({ -0.302, -0.385999, -3.74202 }, 0.03f, new Material({ 0.345f, 0.133f, 0.050f }, 300.0f, 0.0f, 0.0f, 0.0f, false, true)); scene->objects.push_back(sphere); - Material* mat = new GlossyMaterial({ 1.0f, 1.0f, 1.0f }, 0.2f, fastDegreetoRadian(30.0f)); - //std::vector tris = LoadTrianglesBasic("E://Projects//Inferno//resources//models//dragon-cornell-size.obj", "E://Projects//Inferno//resources//models", mat); - std::vector tris = LoadTrianglesBasic("/home/ben/programming/inferno/resources/models/dragon-cornell-size.obj", "/home/ben/programming/inferno/resources/models/", mat); + std::string models = RESOURCES + std::string("//models//"); + std::string dragon = RESOURCES + std::string("//models//dragon-cornell-size.obj"); + std::string cornell = RESOURCES + std::string("//models//cornell-box.obj"); - //Mesh* mesh = new Mesh(tris); - //mesh->Translate({ 0.01f, -1.0, -3.6f }); - //mesh->Optimise(); - //scene->meshs.push_back(mesh); + // Material* mat = new GlossyMaterial({ 1.0f, 1.0f, 1.0f }, 0.2f, fastDegreetoRadian(30.0f)); + Material* mat = new MatteMaterial({ 1.0f, 1.0f, 1.0f }); + std::vector tris = LoadTrianglesBasic(dragon, models, mat); - // std::vector tris1 = LoadTrianglesBasic("E://Projects//Inferno//resources//models//cornell-box.obj", "E://Projects//Inferno//resources//models//"); - std::vector tris1 = LoadTrianglesBasic("/home/ben/programming/inferno/resources/models/cornell-box.obj", "/home/ben/programming/inferno/resources/models/"); + Mesh* mesh = new Mesh(tris); + mesh->Translate({ 0.01f, -1.0, -3.6f }); + mesh->Optimise(); + scene->meshs.push_back(mesh); + + std::vector tris1 = LoadTrianglesBasic(cornell, models); Mesh* mesh1 = new Mesh(tris1); mesh1->Translate({ 0.01f, -1.0, -3.6f });