+ | Triangle intersection

This commit is contained in:
TheRedShip
2025-01-05 23:16:18 +01:00
parent b9b7084a4f
commit 93e9e45224
15 changed files with 797 additions and 30 deletions

View File

@ -38,7 +38,7 @@ void Camera::updateCameraVectors()
void Camera::update(float delta_time)
{
delta_time = std::min(delta_time, 0.1f);
delta_time = std::min(delta_time, 0.01f);
_velocity += _acceleration * delta_time;

View File

@ -93,8 +93,15 @@ void Scene::updateGPUData()
else if (obj->getType() == Object::Type::QUAD)
{
auto quad = static_cast<const Quad *>(obj);
gpu_obj.edge1 = quad->getEdge1();
gpu_obj.edge2 = quad->getEdge2();
gpu_obj.vertex1 = quad->getEdge1();
gpu_obj.vertex2 = quad->getEdge2();
}
else if (obj->getType() == Object::Type::TRIANGLE)
{
auto triangle = static_cast<const Triangle *>(obj);
gpu_obj.vertex1 = triangle->getVertex2();
gpu_obj.vertex2 = triangle->getVertex3();
gpu_obj.normal = triangle->getNormal();
}
_gpu_objects.push_back(gpu_obj);

View File

@ -31,6 +31,12 @@ SceneParser::SceneParser(Scene *scene) : _scene(scene)
try { return (new Quad(ss)); }
catch (const std::exception &e) { throw; }
};
object_parsers["tr"] = [](std::stringstream &ss) -> Object *
{
try { return (new Triangle(ss)); }
catch (const std::exception &e) { throw; }
};
}
void SceneParser::parseMaterial(std::stringstream &line)