Mat
This commit is contained in:
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
24
src/definitions/material.hpp
Normal file
24
src/definitions/material.hpp
Normal 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
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user