This commit is contained in:
Ben Kyd
2019-09-19 12:48:32 +01:00
parent 49a341cddd
commit e9b9da279a
3 changed files with 24 additions and 17 deletions

View File

@@ -50,7 +50,7 @@ Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 60
illum 100000
newmtl rightWall
Ns 9.803922

View File

@@ -66,14 +66,16 @@ std::vector<Triangle*> LoadTrianglesBasic(std::string path, std::string basePath
anz[v] = attrib.normals[3 * idx.normal_index + 2];
}
Material* mat;
if (baseMaterial == nullptr || !baseMaterial) {
tinyobj::material_t material = materials[shapes[s].mesh.material_ids[f]];
Material* mtl;
if (baseMaterial == nullptr) {
tinyobj::material_t tinyMtl = materials[shapes[s].mesh.material_ids[f]];
bool illum = false;
if (material.illum > 0.0f) illum = true;
mat = new Material({ material.diffuse[0], material.diffuse[1], material.diffuse[2] }, material.illum, 0.0f, 0.0f, 0.0f, false, illum);
if (tinyMtl.illum > 0.0f) illum = true;
// TODO: Weird bug where imported illumination is always equal to 15
if (illum) tinyMtl.illum = 50;
mtl = new Material({ tinyMtl.diffuse[0], tinyMtl.diffuse[1], tinyMtl.diffuse[2] }, tinyMtl.illum, 0.0f, 0.0f, 0.0f, false, illum);
} else {
mat = baseMaterial;
mtl = baseMaterial;
}
// glm::vec3 normal = getNormal(
@@ -92,7 +94,7 @@ std::vector<Triangle*> LoadTrianglesBasic(std::string path, std::string basePath
{anx[1], any[1], anz[1]},
{anx[2], any[2], anz[2]},
mat,
mtl,
};
triangles.push_back(tmp);

View File

@@ -2,8 +2,8 @@
#include "../src/inferno.hpp"
static const int width = 2000;
static const int height = 2000;
static const int width = 500;
static const int height = 500;
int main(int argc, char** argv) {
InfernoEngine inferno;
@@ -18,15 +18,20 @@ int main(int argc, char** argv) {
Sky* sky = new SolidSky({ 0.0f, 0.0f, 0.0f }, 0.0f);
scene->sky = sky;
Material* mat = new GlossyMaterial({ 1.2f, 1.2f, 1.2f }, 0.15f, fastDegreetoRadian(25.0f));
std::vector<Triangle*> tris = LoadTrianglesBasic("E://Projects//Inferno//resources//models//dragon-cornell-size.obj", "E://Projects//Inferno//models//resources//", mat);
Material* mat = new GlossyMaterial({ 1.2f, 1.2f, 1.2f }, 0.1f, fastDegreetoRadian(20.0f));
// std::vector<Triangle*> tris = LoadTrianglesBasic("E://Projects//Inferno//resources//models//dragon-cornell-size.obj", "E://Projects//Inferno//resources//models", mat);
// std::vector<Triangle*> tris = LoadTrianglesBasic("/home/ben/programming/inferno/resources/models/dragon-cornell-size.obj", "/home/ben/programming/inferno/resources/models/", mat);
Mesh* mesh = new Mesh(tris);
mesh->Translate({ 0.01f, -1.0, -3.6f });
mesh->Optimise();
scene->meshs.push_back(mesh);
Sphere sphere1({ 0.0f, -0.6f, -4.0f }, 0.4f, mat);
scene->objects.push_back(&sphere1);
std::vector<Triangle*> tris1 = LoadTrianglesBasic("E://Projects//Inferno//resources//models//cornell-box.obj", "E://Projects//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<Triangle*> tris1 = LoadTrianglesBasic("E://Projects//Inferno//resources//models//cornell-box.obj", "E://Projects//Inferno//resources//models//");
std::vector<Triangle*> tris1 = LoadTrianglesBasic("/home/ben/programming/inferno/resources/models/cornell-box.obj", "/home/ben/programming/inferno/resources/models/");
Mesh* mesh1 = new Mesh(tris1);
mesh1->Translate({ 0.01f, -1.0, -3.6f });