imt2531-assignment2 issueshttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues2018-05-19T01:49:14Zhttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/56Remove python3 dependency in favour of std::experimental::filesystem2018-05-19T01:49:14ZJonas Johan SolsvikRemove python3 dependency in favour of std::experimental::filesystemWe just have to find a stable way to compile filesystem code on all compilers(vsc++,clang++,g++) on all systems(win,mac,linux)
#### Test source code
```cpp
#include <string>
#include <iostream>
#include <experimental/filesystem>
namespa...We just have to find a stable way to compile filesystem code on all compilers(vsc++,clang++,g++) on all systems(win,mac,linux)
#### Test source code
```cpp
#include <string>
#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
int main()
{
std::string path = ".";
for (auto & p : fs::directory_iterator(path))
std::cout << p << std::endl;
std::cin.get();
}
```
#### Visual Studio C++ on windows 10
```
.\Debug
.\Project1.vcxproj
.\Project1.vcxproj.filters
.\Project1.vcxproj.user
.\Source.cpp
```
#### g++ 7.0 on macOS
```
$ g++-7 main.cpp -std=c++17 -lstdc++fs && ./a.out
"./a.out"
"./main.cpp"
```
#### llvm clang++ 6.0.0 on macOs
```
jsolsvik in ~/Desktop/cppfilesystem
$ /usr/local/Cellar/llvm/6.0.0/bin/clang++ -o main -std=c++17 \
-L/usr/local/Cellar/llvm/6.0.0/lib main.cpp -lc++experimental && ./main
"./main.dSYM"
"./main"
"./main.cpp"
```https://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/55Refine Linux install instructions to account for stdlib usage when compiling2018-05-18T22:43:01ZHalvor Bakken SmedåsRefine Linux install instructions to account for stdlib usage when compilingThe current instructions do not cover the process of how to acquire the correct `-stdlib` to use when compiling.
Make sure it does.The current instructions do not cover the process of how to acquire the correct `-stdlib` to use when compiling.
Make sure it does.https://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/54Buffer set of widely used textures through a UBO2018-05-17T17:51:27ZHalvor Bakken SmedåsBuffer set of widely used textures through a UBOmisc textures (ramp textures/white pixel/black pixel etc.) used for ligthing model etc. could be really useful to have available through a uniform buffer - `OK_Maps` instead of per mesh/shader-pair, allowing shaders that require said tex...misc textures (ramp textures/white pixel/black pixel etc.) used for ligthing model etc. could be really useful to have available through a uniform buffer - `OK_Maps` instead of per mesh/shader-pair, allowing shaders that require said textures to pull them from the buffer when needed instead of requireing them through a material.
Binding textures for the draw calls for these shaders might yet be problematic however...
It might be worth looking into using the ShaderIntrospector to "attatch" textures to shaders after constructing them, meaning the shader will know which textures it needs to bind before it pulls them from the buffer when running.
i.e.
Shader Parsing -> Shader Compilation -> Shader Introspection (find active Uniform Blocks, and whether or not `OK_Maps` is used) -> If `OK_Maps` is used, Shader Introspection (find active samplers within the block) -> Attach Texture to shader (i.e. add the texture ref to a vector of attached textures within the shaderprogram object).
Now, when binding the shader, also bind all textures within the attached textures-vector, making the drawcall happen after the textures needed in the shader is accessible for sampling.https://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/53Consider removing camera properties from config.2018-05-09T14:54:46ZJone SkaaraConsider removing camera properties from config.https://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/52FrameBuffer2018-08-27T14:23:58ZHalvor Bakken SmedåsFrameBuffer* Make framebuffer class
* Render to framebuffer
* Render from directionalLight to framebuffer
* Render cubemap from framebuffer
* Render cubemaps from pointlights
* Project shadows onto surfaces based on framebuffers depthbuffer ????* Make framebuffer class
* Render to framebuffer
* Render from directionalLight to framebuffer
* Render cubemap from framebuffer
* Render cubemaps from pointlights
* Project shadows onto surfaces based on framebuffers depthbuffer ????Halvor Bakken SmedåsHalvor Bakken Smedåshttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/51Render model from .obj file2019-01-27T12:22:45ZJonas Johan SolsvikRender model from .obj fileJonas Johan SolsvikJonas Johan Solsvikhttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/50Integrate parseEnum() into project2018-05-10T11:08:20ZJonas Johan SolsvikIntegrate parseEnum() into projectJonas Johan SolsvikJonas Johan Solsvikhttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/49Light changing color over time (color velocity!?)2018-05-09T10:00:31ZJone SkaaraLight changing color over time (color velocity!?)https://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/48Debugging sub-surface-scattering shader displaying specular and SSS wrong2018-05-09T14:22:17ZJone SkaaraDebugging sub-surface-scattering shader displaying specular and SSS wrongHalvor Bakken SmedåsHalvor Bakken Smedåshttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/47Load terrain from heightmap file2018-05-09T09:03:32ZJone SkaaraLoad terrain from heightmap filehttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/46Add frame counter2018-05-09T09:02:42ZJone SkaaraAdd frame counterJone SkaaraJone Skaarahttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/45Scroll to change camera speed2018-05-09T17:27:27ZJone SkaaraScroll to change camera speedhttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/44Procedural terain generation2018-04-28T20:16:32ZJone SkaaraProcedural terain generationhttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/43Terrain entity2018-05-09T14:20:57ZJone SkaaraTerrain entityJone SkaaraJone Skaarahttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/42Live conflig loading, window size2018-04-28T20:15:16ZJone SkaaraLive conflig loading, window sizehttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/41Improve Model loading performance2018-05-09T14:18:17ZJonas Johan SolsvikImprove Model loading performance![measure1](/uploads/bd00047fae997e497c7a66efb040141e/measure1.PNG)![measure1](/uploads/bd00047fae997e497c7a66efb040141e/measure1.PNG)https://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/40[SOLVED] Stack around variable is corrupted - sscanf()2018-04-28T20:14:19ZJonas Johan Solsvik[SOLVED] Stack around variable is corrupted - sscanf()AFter some performance analyitics i foudn that we spend most of our time when loading files in this function. I tried to change from using stringstream to using scanf() instead, hoping it will yield some better performance characteristic...AFter some performance analyitics i foudn that we spend most of our time when loading files in this function. I tried to change from using stringstream to using scanf() instead, hoping it will yield some better performance characteristics.
Of course sscanf is less secure then using a stringstream, and therefore I get run-time errors right of the bat.
```cpp
auto Parser::nextKeyVertex() -> KeyVertex {
auto[key, valueString, err] = nextKeyString();
if (err == PARSE_ERROR)
return KeyVertex{"", {}, PARSE_ERROR};
Vertex vert{};
float u, v;
float nx, ny, nz;
// 1.351676 0.301667 0.100000 0.000 0.000 1.000 0.000 0.000 255 255 255 255
auto changecount = sscanf(valueString.data(), "%f %f %f %f %f %f %f %f %u %u %u %u",
&vert.x, &vert.y, &vert.z, &nx, &ny, &nz, &u, &v, &vert.r, &vert.g, &vert.b, &vert.a);
if (changecount != 12) {
return KeyVertex{ "",{}, PARSE_ERROR };
}
vert.n = Util::packNormal(nx, ny, nz);
vert.uv = Util::packUV(u, v);
return KeyVertex{ key, vert, PARSE_SUCCESS };
}
```
![woot](/uploads/1e2b3eb51a3277e1e1c59a6528c92339/woot.PNG)https://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/39Point lights2018-04-27T12:39:42ZJone SkaaraPoint lightshttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/38Directional light2018-04-27T12:39:34ZJone SkaaraDirectional lighthttps://git.gvk.idi.ntnu.no/overkill-studios/imt2531-assignment2/-/issues/37Camera modes and cycling2018-04-27T12:38:03ZJone SkaaraCamera modes and cycling