diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2018-04-12 01:25:56 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2018-04-12 01:25:56 +0100 |
commit | 908f4469645eb64e90b2aac6e3cc0e17fc73870e (patch) | |
tree | 98fa326941b69107f0a7ac4d88a74ce859af6ff3 | |
parent | ccdf76463228751dee100b544d854b6f1be5596c (diff) | |
download | YAGE-908f4469645eb64e90b2aac6e3cc0e17fc73870e.tar.gz YAGE-908f4469645eb64e90b2aac6e3cc0e17fc73870e.zip |
Adding more support for 3D
-rw-r--r-- | resources/objects/cube.mtl | 14 | ||||
-rw-r--r-- | resources/objects/cube.obj | 32 | ||||
-rw-r--r-- | yage/experimental/loader.cpp | 16 |
3 files changed, 37 insertions, 25 deletions
diff --git a/resources/objects/cube.mtl b/resources/objects/cube.mtl index 379df14c..70d3ba1d 100644 --- a/resources/objects/cube.mtl +++ b/resources/objects/cube.mtl @@ -1,12 +1,10 @@ # Blender MTL File: 'None' # Material Count: 1 -newmtl Material -Ns 96.078431 -Ka 1.000000 1.000000 1.000000 -Kd 0.640000 0.640000 0.640000 -Ks 0.500000 0.500000 0.500000 -Ke 0.000000 0.000000 0.000000 -Ni 1.000000 -d 1.000000 +newmtl None +Ns 0 +Ka 0.000000 0.000000 0.000000 +Kd 0.8 0.8 0.8 +Ks 0.8 0.8 0.8 +d 1 illum 2 diff --git a/resources/objects/cube.obj b/resources/objects/cube.obj index 82519cf5..730cd537 100644 --- a/resources/objects/cube.obj +++ b/resources/objects/cube.obj @@ -2,25 +2,25 @@ # www.blender.org mtllib cube.mtl o Cube -v 1.000000 -1.000000 -1.000000 -v 1.000000 -1.000000 1.000000 v -1.000000 -1.000000 1.000000 -v -1.000000 -1.000000 -1.000000 -v 1.000000 1.000000 -0.999999 -v 0.999999 1.000000 1.000001 v -1.000000 1.000000 1.000000 +v -1.000000 -1.000000 -1.000000 v -1.000000 1.000000 -1.000000 +v 1.000000 -1.000000 1.000000 +v 1.000000 1.000000 1.000000 +v 1.000000 -1.000000 -1.000000 +v 1.000000 1.000000 -1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn -0.0000 -0.0000 1.0000 -vn -1.0000 -0.0000 -0.0000 -vn 0.0000 0.0000 -1.0000 -usemtl Material +usemtl None s off -f 1//1 2//1 3//1 4//1 -f 5//2 8//2 7//2 6//2 -f 1//3 5//3 6//3 2//3 -f 2//4 6//4 7//4 3//4 -f 3//5 7//5 8//5 4//5 -f 5//6 1//6 4//6 8//6 +f 1//1 2//1 4//1 3//1 +f 3//2 4//2 8//2 7//2 +f 7//3 8//3 6//3 5//3 +f 5//4 6//4 2//4 1//4 +f 3//5 7//5 5//5 1//5 +f 8//6 4//6 2//6 6//6 diff --git a/yage/experimental/loader.cpp b/yage/experimental/loader.cpp index a13af1f2..1c815d41 100644 --- a/yage/experimental/loader.cpp +++ b/yage/experimental/loader.cpp @@ -2,12 +2,18 @@ #include "../core/exception.h" +#include <algorithm> #include <fstream> +#include <regex> #include <sstream> namespace yage { +const std::vector<std::regex> ele_regs({"^(\\d+)$", "^(\\d+)\\/(\\d+)$", + "^(\\d+)\\/\\/(\\d+)$", + "^(\\d+)\\/(\\d+)\\/(\\d+)$"}); + void load_obj(std::string filename, std::vector<glm::vec4> &vertices, std::vector<glm::vec3> &normals, std::vector<GLushort> &elements) { @@ -34,12 +40,20 @@ void load_obj(std::string filename, std::vector<glm::vec4> &vertices, elements.push_back(a); elements.push_back(b); elements.push_back(c); + } else if (line.substr(0, 2) == "vn ") { + std::for_each(ele_regs.begin(), ele_regs.end(), [](std::regex re) { + + }); + std::istringstream s(line.substr(2)); + glm::vec3 v; + s >> v.x >> v.y >> v.z; + normals.push_back(v); } else { // do nothing otherwise } } - normals.resize() + in.close(); } } // namespace yage |