diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..9dadc07 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,7 @@ +[submodule "resources"] + path = data/res + url = git@gitlab.com:4VRDriver/fall-fever-resources.git + +[submodule "data/res"] + path = data/res + url = git@gitlab.com:4VRDriver/fall-fever-resources.git diff --git a/res/lights.json b/data/lights.json similarity index 100% rename from res/lights.json rename to data/lights.json diff --git a/res/models.json b/data/models.json similarity index 76% rename from res/models.json rename to data/models.json index f0d8915..89ab79c 100644 --- a/res/models.json +++ b/data/models.json @@ -2,19 +2,19 @@ "models": [ { "unique_name": "fallback", - "path": "res/models/fallback.ffo" + "path": "data/res/models/fallback.ffo" }, { "unique_name": "backpack", - "path": "res/models/backpack.ffo" + "path": "data/res/models/backpack.ffo" }, { "unique_name": "ground", - "path": "res/models/wood_floor.ffo" + "path": "data/res/models/wood_floor.ffo" }, { "unique_name": "cube", - "path": "res/models/cube.ffo" + "path": "data/res/models/cube.ffo" } ], "entities": [ @@ -38,6 +38,6 @@ } ], "skybox": { - "texturePath": "res/textures/skybox/" + "texturePath": "data/res/textures/skybox/" } } diff --git a/data/res b/data/res new file mode 160000 index 0000000..84f2a02 --- /dev/null +++ b/data/res @@ -0,0 +1 @@ +Subproject commit 84f2a02390e3bab79bccfd7d4a03abdfb7914224 diff --git a/res/screens.json b/data/screens.json similarity index 68% rename from res/screens.json rename to data/screens.json index b2d7aac..9dd0ee2 100644 --- a/res/screens.json +++ b/data/screens.json @@ -3,19 +3,19 @@ { "position": [0.0, 0.0], "dimensions": [1.0, 1.0], - "texture": "res/textures/loading.png" + "texture": "data/res/textures/loading.png" } ], "mainMenuScreen": [ { "position": [0.5, 0.5], "dimensions": [0.25, 0.25], - "texture": "res/textures/container.png" + "texture": "data/res/textures/container.png" }, { "position": [0.75, 0.0], "dimensions": [0.25, 0.25], - "texture": "res/textures/tex2.png" + "texture": "data/res/textures/tex2.png" } ] } diff --git a/data/shaderPrograms.json b/data/shaderPrograms.json new file mode 100644 index 0000000..e5c62f2 --- /dev/null +++ b/data/shaderPrograms.json @@ -0,0 +1,40 @@ +{ + "shaderPrograms": [ + { + "unique_name": "defaultProgram", + "vertexPath": "data/shaders/basic.vert", + "fragmentPath": "data/shaders/basic.frag" + }, + { + "unique_name": "lightProgram", + "vertexPath": "data/shaders/light.vert", + "fragmentPath": "data/shaders/light.frag" + }, + { + "unique_name": "skyboxProgram", + "vertexPath": "data/shaders/skybox.vert", + "fragmentPath": "data/shaders/skybox.frag" + }, + { + "unique_name": "postProcessingProgram", + "vertexPath": "data/shaders/postprocessing.vert", + "fragmentPath": "data/shaders/postprocessing.frag" + }, + { + "unique_name": "menuProgram", + "vertexPath": "data/shaders/menu.vert", + "fragmentPath": "data/shaders/menu.frag" + }, + { + "unique_name": "directionalShadowDepthProgram", + "vertexPath": "data/shaders/directionalShadowDepth.vert", + "fragmentPath": "data/shaders/directionalShadowDepth.frag" + }, + { + "unique_name": "pointShadowDepthProgram", + "vertexPath": "data/shaders/pointShadowDepth.vert", + "fragmentPath": "data/shaders/pointShadowDepth.frag", + "geometryPath": "data/shaders/pointShadowDepth.geom" + } + ] +} diff --git a/res/shaders/basic.frag b/data/shaders/basic.frag similarity index 100% rename from res/shaders/basic.frag rename to data/shaders/basic.frag diff --git a/res/shaders/basic.vert b/data/shaders/basic.vert similarity index 100% rename from res/shaders/basic.vert rename to data/shaders/basic.vert diff --git a/res/shaders/directionalShadowDepth.frag b/data/shaders/directionalShadowDepth.frag similarity index 100% rename from res/shaders/directionalShadowDepth.frag rename to data/shaders/directionalShadowDepth.frag diff --git a/res/shaders/directionalShadowDepth.vert b/data/shaders/directionalShadowDepth.vert similarity index 100% rename from res/shaders/directionalShadowDepth.vert rename to data/shaders/directionalShadowDepth.vert diff --git a/res/shaders/light.frag b/data/shaders/light.frag similarity index 100% rename from res/shaders/light.frag rename to data/shaders/light.frag diff --git a/res/shaders/light.vert b/data/shaders/light.vert similarity index 100% rename from res/shaders/light.vert rename to data/shaders/light.vert diff --git a/res/shaders/menu.frag b/data/shaders/menu.frag similarity index 100% rename from res/shaders/menu.frag rename to data/shaders/menu.frag diff --git a/res/shaders/menu.vert b/data/shaders/menu.vert similarity index 100% rename from res/shaders/menu.vert rename to data/shaders/menu.vert diff --git a/res/shaders/pointShadowDepth.frag b/data/shaders/pointShadowDepth.frag similarity index 100% rename from res/shaders/pointShadowDepth.frag rename to data/shaders/pointShadowDepth.frag diff --git a/res/shaders/pointShadowDepth.geom b/data/shaders/pointShadowDepth.geom similarity index 100% rename from res/shaders/pointShadowDepth.geom rename to data/shaders/pointShadowDepth.geom diff --git a/res/shaders/pointShadowDepth.vert b/data/shaders/pointShadowDepth.vert similarity index 100% rename from res/shaders/pointShadowDepth.vert rename to data/shaders/pointShadowDepth.vert diff --git a/res/shaders/postprocessing.frag b/data/shaders/postprocessing.frag similarity index 100% rename from res/shaders/postprocessing.frag rename to data/shaders/postprocessing.frag diff --git a/res/shaders/postprocessing.vert b/data/shaders/postprocessing.vert similarity index 100% rename from res/shaders/postprocessing.vert rename to data/shaders/postprocessing.vert diff --git a/res/shaders/skybox.frag b/data/shaders/skybox.frag similarity index 100% rename from res/shaders/skybox.frag rename to data/shaders/skybox.frag diff --git a/res/shaders/skybox.vert b/data/shaders/skybox.vert similarity index 100% rename from res/shaders/skybox.vert rename to data/shaders/skybox.vert diff --git a/res/shaderPrograms.json b/res/shaderPrograms.json deleted file mode 100644 index 85af681..0000000 --- a/res/shaderPrograms.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "shaderPrograms": [ - { - "unique_name": "defaultProgram", - "vertexPath": "res/shaders/basic.vert", - "fragmentPath": "res/shaders/basic.frag" - }, - { - "unique_name": "lightProgram", - "vertexPath": "res/shaders/light.vert", - "fragmentPath": "res/shaders/light.frag" - }, - { - "unique_name": "skyboxProgram", - "vertexPath": "res/shaders/skybox.vert", - "fragmentPath": "res/shaders/skybox.frag" - }, - { - "unique_name": "postProcessingProgram", - "vertexPath": "res/shaders/postprocessing.vert", - "fragmentPath": "res/shaders/postprocessing.frag" - }, - { - "unique_name": "menuProgram", - "vertexPath": "res/shaders/menu.vert", - "fragmentPath": "res/shaders/menu.frag" - }, - { - "unique_name": "directionalShadowDepthProgram", - "vertexPath": "res/shaders/directionalShadowDepth.vert", - "fragmentPath": "res/shaders/directionalShadowDepth.frag" - }, - { - "unique_name": "pointShadowDepthProgram", - "vertexPath": "res/shaders/pointShadowDepth.vert", - "fragmentPath": "res/shaders/pointShadowDepth.frag", - "geometryPath": "res/shaders/pointShadowDepth.geom" - } - ] -} diff --git a/res/textures/container.png b/res/textures/container.png deleted file mode 100644 index 596e8da..0000000 Binary files a/res/textures/container.png and /dev/null differ diff --git a/res/textures/tex1.png b/res/textures/tex1.png deleted file mode 100644 index caa8802..0000000 Binary files a/res/textures/tex1.png and /dev/null differ diff --git a/res/textures/tex2.png b/res/textures/tex2.png deleted file mode 100644 index 2a91a6c..0000000 Binary files a/res/textures/tex2.png and /dev/null differ diff --git a/src/Controller.cpp b/src/Controller.cpp index 47c3a53..07d2857 100644 --- a/src/Controller.cpp +++ b/src/Controller.cpp @@ -30,7 +30,7 @@ Controller::Controller() camera = new Camera(90.0f, gameWindow->getWindowAspectRatio()); - JsonParser shaderParser("res/shaderPrograms.json"); + JsonParser shaderParser("data/shaderPrograms.json"); shaderPrograms = shaderParser.getShaderPrograms(); pp_framebuffer = new Framebuffer(gameWindow->getWindowWidth(), gameWindow->getWindowHeight(), getShaderProgramByName("postProcessingProgram")); @@ -110,6 +110,7 @@ void Controller::run() static glm::vec3 lightColor = glm::vec3(1.f); static float intensity = 20.f; world->updatePointLight(0, true, world->getEntityByName("light")->getPosition(), lightColor, intensity); + world->updateDirectionalLight(true, world->getDirectionalLight()->getDirection(), lightColor); getShaderProgramByName("lightProgram")->bind(); getShaderProgramByName("lightProgram")->setUniform("v_lightColor", lightColor * 100.0f); getShaderProgramByName("lightProgram")->unbind(); diff --git a/src/Light.cpp b/src/Light.cpp index cf562a5..885b6a5 100644 --- a/src/Light.cpp +++ b/src/Light.cpp @@ -122,3 +122,8 @@ void DirectionalLight::setDirection(glm::vec3 direction) this->direction = direction; update(); } + +glm::vec3 DirectionalLight::getDirection() +{ + return direction; +} diff --git a/src/Light.h b/src/Light.h index ade8e11..b0e1398 100644 --- a/src/Light.h +++ b/src/Light.h @@ -69,6 +69,8 @@ public: void setDirection(glm::vec3 direction); + glm::vec3 getDirection(); + private: void update() override; diff --git a/src/Menu.cpp b/src/Menu.cpp index 6329b64..2ea165d 100644 --- a/src/Menu.cpp +++ b/src/Menu.cpp @@ -4,7 +4,7 @@ Menu::Menu(Framebuffer *p_framebuffer, ShaderProgram *p_shaderProgram) : framebuffer(p_framebuffer), shaderProgram(p_shaderProgram) { - JsonParser screenParser("res/screens.json"); + JsonParser screenParser("data/screens.json"); screens = screenParser.getScreens(shaderProgram, framebuffer); } diff --git a/src/Widget.cpp b/src/Widget.cpp index 199b2c5..047bc33 100644 --- a/src/Widget.cpp +++ b/src/Widget.cpp @@ -43,4 +43,3 @@ void Widget::draw(ShaderProgram *shaderProgram) widgetMesh->draw(shaderProgram); shaderProgram->unbind(); } - diff --git a/src/World.cpp b/src/World.cpp index 000c6c5..157b1f5 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -19,12 +19,12 @@ World::World(std::vector shaderPrograms) : shaderProgram->setUniform("u_material.shininess", 100.0f); shaderProgram->unbind(); - JsonParser modelParser("res/models.json"); + JsonParser modelParser("data/models.json"); models = modelParser.getModels(); entities = modelParser.getEntities(models, shaderPrograms); skybox = modelParser.getSkybox(getModelByName("cube"), Controller::getShaderProgramByName(shaderPrograms, "skyboxProgram")); - JsonParser lightParser("res/lights.json"); + JsonParser lightParser("data/lights.json"); lights = lightParser.getLights(shaderProgram); }