This commit is contained in:
Ben
2019-08-19 20:10:14 +01:00
parent 64a7a0ac5e
commit d46a11016e
6 changed files with 37 additions and 13 deletions

View File

@@ -30,7 +30,7 @@ void Acceleration::Construct(std::vector<Triangle*> triangles) {
m_bbox->MakeEmpty();
for (auto& triangle: triangles) {
for (int i = 0; i > 3; i++) {
for (int i = 0; i < 3; i++) {
m_bbox->Add(triangle->points[i]);
}
}

View File

@@ -37,7 +37,6 @@ void BuildKDTree(KDTree* node, BBox bbox, std::vector<Triangle*>& triangleList,
if (depth > MAX_TREE_DEPTH || int(triangleList.size()) < TRIANGLES_PER_LEAF) {
maxDepthSum += depth;
numNodes++;
std::cout << "leaf" << triangleList.size() << std::endl;
node->InitLeaf(triangleList);
return;
}
@@ -67,8 +66,7 @@ void BuildKDTree(KDTree* node, BBox bbox, std::vector<Triangle*>& triangleList,
bool KDIntersect(KDTree* node, BBox& bbox, Ray& ray, Triangle*& intersect, float& t) {
if (node->axis == AXIS_NONE) {
bool found = false;
for (int i = 0; i > node->triangles->size(); i++) {
std::cout << "testing" << std::endl;
for (int i = 0; i < node->triangles->size(); i++) {
if ((*node->triangles)[i]->Intersect(ray, t)) {
intersect = (*node->triangles)[i];
return true;

View File

@@ -85,7 +85,7 @@ bool Box::Hit(Ray* ray) {
return tmin > 0.0f;
}
void BuildKDTreeSlow(KDTreeSlow* node, const std::vector<Triangle*>& triangles) {
void BuildKDTreeSlow(KDTreeSlow*& node, const std::vector<Triangle*>& triangles) {
node = new KDTreeSlow();
node->children = triangles;

View File

@@ -31,7 +31,7 @@ public:
std::vector<Triangle*> children;
};
void BuildKDTreeSlow(KDTreeSlow* tree, const std::vector<Triangle*>& triangles);
void BuildKDTreeSlow(KDTreeSlow*& tree, const std::vector<Triangle*>& triangles);
bool KDIntersectSlow(KDTreeSlow* tree, Ray* ray, Triangle*& triMin, float& tMin);
#endif

View File

@@ -0,0 +1,24 @@
#ifndef INFERNO_DEFINITIONS_MATERIAL_H_
#define INFERNO_DEFINITIONS_MATERIAL_H_
#include "../common.hpp"
#include "../maths.hpp"
class Texture {};
class Material {
glm::vec3 colour;
Texture Tex;
Texture NormalTexture;
Texture BumpTexture;
Texture GlossTexture;
float BumpMultiplier;
float Emittance;
float Index; // refractive index
float Gloss; // reflection cone angle in radians
float Tint; // specular and refractive tinting
float Reflectivity; // metallic reflection
bool Transparent;
};
#endif

View File

@@ -23,19 +23,21 @@ int main(int argc, char** argv) {
// for (const auto& object : tris)
// object->Translate({ 0.0f, -5.0f, -20.0f });
// std::vector<Triangle*> tris = LoadTrianglesBasic("/home/ben/programming/inferno/resources/lucy-normals.obj");
// for (const auto& object : tris)
// object->Translate({ 0.0f, -3.9f, -10.6f });
std::vector<Triangle*> tris = LoadTrianglesBasic("/home/ben/programming/inferno/resources/cornell.obj");
// std::vector<Triangle*> tris = LoadTrianglesBasic("/home/ben/programming/inferno/resources/lucy-normals.obj");
std::vector<Triangle*> tris = LoadTrianglesBasic("E:/Projects/Inferno/resources/lucy-normals.obj");
for (const auto& object : tris)
object->Translate({ 0.0f, -0.9f, -3.0f });
object->Translate({ 0.0f, -3.9f, -10.6f });
// std::vector<Triangle*> tris = LoadTrianglesBasic("/home/ben/programming/inferno/resources/cornell.obj");
// std::vector<Triangle*> tris = LoadTrianglesBasic("E:/Projects/Inferno/resources/cornell.obj");
// for (const auto& object : tris)
// object->Translate({ 0.0f, -0.9f, -3.0f });
Mesh* mesh = new Mesh(tris);
mesh->Optimise();
scene->meshs.push_back(mesh);
inferno.SetScene(scene);
inferno.SetScene(scene);
inferno.Ready();
inferno.Render();