From dd9feb9720674c07dacd763fee6734ee0bdca483 Mon Sep 17 00:00:00 2001 From: Anselme Date: Sat, 8 Apr 2017 12:14:15 +0200 Subject: [PATCH 1/7] added imgui support --- CMakeLists.txt | 1 + src/defaultkeysmap.h | 1 + src/engine.cpp | 35 ++++++++++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d5d08d..375e8b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ set(USE_SERIALIZER True) set(USE_INPUT True) set(USE_BULLET True) set(USE_SOL2 True) +set(USE_IMGUI True) set(SFML_MODULES audio graphics) set(CMAKE_TEMPLATE_PATH "../CMakeTemplate") diff --git a/src/defaultkeysmap.h b/src/defaultkeysmap.h index 3e5157d..fc7abbc 100644 --- a/src/defaultkeysmap.h +++ b/src/defaultkeysmap.h @@ -52,6 +52,7 @@ public: { return { {TOGGLE_CONSOLE,input::KEYBOARD}, + {EXIT_GAME,input::KEYBOARD}, {MOVE_CURSOR_LEFT,input::KEYBOARD}, {MOVE_CURSOR_RIGHT,input::KEYBOARD} }; diff --git a/src/engine.cpp b/src/engine.cpp index 22f7318..389fff9 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -11,6 +11,7 @@ #include "scene/scenetree.h" #include "sparrowshell/sparrowshell.h" #include "scene/physicsdebugnode.h" +#include "imgui/imgui.h" Engine::Engine() : m_window(nullptr), @@ -81,6 +82,33 @@ void Engine::update() m_input->updateEvents(); checkSpecialInputs(); + // initialize imgui frame + ImGuiIO& io = ImGui::GetIO(); + io.DeltaTime = float(getDeltaTime()) / 1000.; + ImGui::NewFrame(); + + // test gui + { + static bool testGuiOpen = true; + if(testGuiOpen) + { + ImGui::Begin("Test imgui Window", &testGuiOpen); + ImGui::Text("Hello, world!"); + ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); + bool physicsDebugEnabled = (m_physicsDebugNode != nullptr); + if(ImGui::Checkbox("Toggle physics debug", &physicsDebugEnabled)) + { + if(physicsDebugEnabled) + enablePhysicsDebug(); + else + disablePhysicsDebug(); + } + if(ImGui::Button("EXIT GAME")) + stop(); + ImGui::End(); + } + } + // update Physics if(m_world != nullptr) { @@ -214,7 +242,12 @@ void Engine::checkSpecialInputs() else if(action.action == m_toggleShellAction) m_sparrowshell->toggleShell(); else if(action.action == m_exitGameAction) - m_running = false; + { + if(m_sparrowshell->isVisible()) + m_sparrowshell->toggleShell(); + else + m_running = false; + } else if(action.action == m_showMouseAction) toggleMouseVisibility(); } From 71fd9e8b83a4ebba758a95b873ba522d4c1a6977 Mon Sep 17 00:00:00 2001 From: Anselme Date: Sat, 8 Apr 2017 12:27:01 +0200 Subject: [PATCH 2/7] added shortcut for mouse cursor visibility, added elements in test gui --- src/defaultkeysmap.h | 5 +++-- src/engine.cpp | 6 ++++++ src/test/main.cpp | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/defaultkeysmap.h b/src/defaultkeysmap.h index fc7abbc..bf8724c 100644 --- a/src/defaultkeysmap.h +++ b/src/defaultkeysmap.h @@ -8,7 +8,7 @@ class DefaultKeysMap : public IKeysMap public: enum{MAIN_ACTION, SECONDARY_ACTION, TERTIARY_ACTION, MOVE_FORWARD, MOVE_BACKWARD, STRAFE_LEFT, STRAFE_RIGHT, JUMP, TOGGLE_NOCLIP, TOGGLE_PHYSICS_DEBUG, TOGGLE_CONSOLE, - MOVE_CURSOR_LEFT, MOVE_CURSOR_RIGHT, PLOP_TEST, LEFT_CLICK, + MOVE_CURSOR_LEFT, MOVE_CURSOR_RIGHT, TOGGLE_MOUSE_CURSOR, LEFT_CLICK, EXIT_GAME,LAST_DEFAULT_ACTION}; DefaultKeysMap(){ @@ -25,7 +25,7 @@ public: keys.push_back( {{TOGGLE_CONSOLE,input::KEYBOARD}, sf::Keyboard::F3, IKeysMap::PRESSED} ); keys.push_back( {{MOVE_CURSOR_LEFT,input::KEYBOARD}, sf::Keyboard::Left, IKeysMap::PRESSED} ); keys.push_back( {{MOVE_CURSOR_RIGHT,input::KEYBOARD}, sf::Keyboard::Right, IKeysMap::PRESSED} ); -// keys.push_back( {{PLOP_TEST,input::KEYBOARD}, sf::Keyboard::F7, IKeysMap::PRESSED} ); + keys.push_back( {{TOGGLE_MOUSE_CURSOR,input::KEYBOARD}, sf::Keyboard::M, IKeysMap::PRESSED} ); keys.push_back( {{EXIT_GAME,input::KEYBOARD}, sf::Keyboard::Escape,IKeysMap::PRESSED} ); keys.push_back( {{LEFT_CLICK,input::MOUSE}, sf::Mouse::Left, IKeysMap::PRESSED} ); } @@ -43,6 +43,7 @@ public: {JUMP,input::KEYBOARD}, {TOGGLE_NOCLIP,input::KEYBOARD}, {TOGGLE_PHYSICS_DEBUG,input::KEYBOARD}, + {TOGGLE_MOUSE_CURSOR,input::KEYBOARD}, {TOGGLE_CONSOLE,input::KEYBOARD}, {EXIT_GAME,input::KEYBOARD} }; diff --git a/src/engine.cpp b/src/engine.cpp index 389fff9..05c6e0b 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -103,8 +103,14 @@ void Engine::update() else disablePhysicsDebug(); } + bool isMouseVisible = m_mouseVisible; + if(ImGui::Checkbox("Mouse cursor ( shortcut : [M] )", &isMouseVisible)) + toggleMouseVisibility(); if(ImGui::Button("EXIT GAME")) stop(); + float gravity = - m_world->getGravity().y(); + if(ImGui::SliderFloat("Gravity", &gravity, 0.f, 100.f)) + m_world->setGravity(btVector3(0, -gravity, 0)); ImGui::End(); } } diff --git a/src/test/main.cpp b/src/test/main.cpp index 05598f2..f75ff2a 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -315,6 +315,7 @@ int main(){ engine.setTogglePhysicsDebugAction(DefaultKeysMap::TOGGLE_PHYSICS_DEBUG); engine.setToggleShellAction(DefaultKeysMap::TOGGLE_CONSOLE); engine.setExitGameAction(DefaultKeysMap::EXIT_GAME); + engine.setShowMouseAction(DefaultKeysMap::TOGGLE_MOUSE_CURSOR); //c'est un goup SparrowShell SparrowShell* shell = engine.getShell(); From 4a8cbaf57f290b7f6e7a380cb11b694d65284102 Mon Sep 17 00:00:00 2001 From: Anselme Date: Sun, 30 Jul 2017 13:54:59 +0200 Subject: [PATCH 3/7] fixed ground detection for jumping --- src/scene/playercharacternode.cpp | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/scene/playercharacternode.cpp b/src/scene/playercharacternode.cpp index 14d8c9c..0567efe 100644 --- a/src/scene/playercharacternode.cpp +++ b/src/scene/playercharacternode.cpp @@ -59,7 +59,7 @@ const float PLAYER_RADIUS = 0.30f; const float PLAYER_HEIGHT = 1.75f; const float EYES_OFFSET = 0.775f; const float JUMP_VELOCITY = 5.f; -const float EPSILON = 1.f; +const float EPSILON = 1.5f; PlayerCharacterNode::PlayerCharacterNode(bool noClip) : m_noclipMode(noClip), @@ -172,25 +172,25 @@ void PlayerCharacterNode::update() } else { - float controlRatio = 0.2f; // 1 = total control, 0 = no control, can be seen as a slipperiness factor - btVector3 newVelocity = velocity*(1.f-controlRatio) + targetVelocity*controlRatio; - if(jump) - {/* - btVector3 start(pos); - start.setY(start.y() - PLAYER_HEIGHT/2.f); - btVector3 end(pos); - end.setY(end.y() - EPSILON); - btCollisionWorld::ClosestRayResultCallback RayCallback(start, end); - getEngine().getPhysics()->rayTest(start, end, RayCallback); - if(RayCallback.hasHit()) // if ground is nearby - { - //btVector3 normal = RayCallback.m_hitNormalWorld; - - }*/ - - // raycasting not working yet - newVelocity.setY(JUMP_VELOCITY); + bool onGround = false; + btVector3 start(pos); + start.setY(start.y() - PLAYER_HEIGHT/2.f); + btVector3 end(pos); + end.setY(end.y() - EPSILON); + btCollisionWorld::ClosestRayResultCallback RayCallback(start, end); + getEngine().getPhysics()->rayTest(start, end, RayCallback); + float controlRatio = 0.f; // 1 = total control, 0 = no control, can be seen as a slipperiness factor + if(RayCallback.hasHit()) // if ground is nearby + { + onGround = true; + btVector3 normal = RayCallback.m_hitNormalWorld; + float slope = normal.dot(btVector3(0, 1, 0)); + controlRatio = slope > 0.4f ? 0.2f * slope : 0.f; } + + btVector3 newVelocity = velocity*(1.f-controlRatio) + targetVelocity*controlRatio; + if(jump && onGround) + newVelocity.setY(JUMP_VELOCITY); m_rigidBody->setLinearVelocity(newVelocity); } m_playerLightNode->update(); From e39a1dbb3a6a43ee8a5f623bed00fc63ac44d64b Mon Sep 17 00:00:00 2001 From: Anselme Date: Sun, 30 Jul 2017 14:14:49 +0200 Subject: [PATCH 4/7] added git lfs donfig file --- .gitattributes | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8a282d2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,12 @@ +*.tga filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.dll filter=lfs diff=lfs merge=lfs -text +*.json filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text +*.mtl filter=lfs diff=lfs merge=lfs -text +*.khe filter=lfs diff=lfs merge=lfs -text +*.7z filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text From f57d7222516d60e06384fff9be918e968a20c476 Mon Sep 17 00:00:00 2001 From: Anselme Date: Sun, 30 Jul 2017 14:19:12 +0200 Subject: [PATCH 5/7] created deploy folder, added resources with git lfs --- .gitignore | 8 +++---- CMakeLists.txt | 2 ++ data/consolas.png | Bin 19039 -> 0 bytes {data => deploy/data}/consolas.fnt | 0 deploy/data/consolas.png | 3 +++ deploy/data/leather.jpg | 3 +++ deploy/data/sponza.mtl | 3 +++ deploy/data/sponza.obj | 3 +++ deploy/data/sponza/background.jpg | 3 +++ deploy/data/sponza/background_ddn.jpg | 3 +++ deploy/data/sponza/chain_texture.jpg | 3 +++ deploy/data/sponza/chain_texture_ddn.jpg | 3 +++ deploy/data/sponza/chain_texture_mask.jpg | 3 +++ deploy/data/sponza/lion.jpg | 3 +++ deploy/data/sponza/lion_ddn.jpg | 3 +++ deploy/data/sponza/spnza_bricks_a_ddn.jpg | 3 +++ deploy/data/sponza/spnza_bricks_a_diff.jpg | 3 +++ deploy/data/sponza/spnza_bricks_a_spec.jpg | 3 +++ deploy/data/sponza/sponza_arch_ddn.jpg | 3 +++ deploy/data/sponza/sponza_arch_diff.jpg | 3 +++ deploy/data/sponza/sponza_arch_spec.jpg | 3 +++ deploy/data/sponza/sponza_ceiling_a_diff.jpg | 3 +++ deploy/data/sponza/sponza_ceiling_a_spec.jpg | 3 +++ deploy/data/sponza/sponza_column_a_ddn.jpg | 3 +++ deploy/data/sponza/sponza_column_a_diff.jpg | 3 +++ deploy/data/sponza/sponza_column_a_spec.jpg | 3 +++ deploy/data/sponza/sponza_column_b_ddn.jpg | 3 +++ deploy/data/sponza/sponza_column_b_diff.jpg | 3 +++ deploy/data/sponza/sponza_column_b_spec.jpg | 3 +++ deploy/data/sponza/sponza_column_c_ddn.jpg | 3 +++ deploy/data/sponza/sponza_column_c_diff.jpg | 3 +++ deploy/data/sponza/sponza_column_c_spec.jpg | 3 +++ .../data/sponza/sponza_curtain_blue_diff.jpg | 3 +++ deploy/data/sponza/sponza_curtain_diff.jpg | 3 +++ .../data/sponza/sponza_curtain_green_diff.jpg | 3 +++ deploy/data/sponza/sponza_details_diff.jpg | 3 +++ deploy/data/sponza/sponza_details_spec.jpg | 3 +++ .../data/sponza/sponza_fabric_blue_diff.jpg | 3 +++ deploy/data/sponza/sponza_fabric_diff.jpg | 3 +++ .../data/sponza/sponza_fabric_green_diff.jpg | 3 +++ deploy/data/sponza/sponza_fabric_spec.jpg | 3 +++ deploy/data/sponza/sponza_flagpole_diff.jpg | 3 +++ deploy/data/sponza/sponza_flagpole_spec.jpg | 3 +++ deploy/data/sponza/sponza_floor_a_ddn.jpg | 3 +++ deploy/data/sponza/sponza_floor_a_diff.jpg | 3 +++ deploy/data/sponza/sponza_floor_a_spec.jpg | 3 +++ deploy/data/sponza/sponza_roof_diff.jpg | 3 +++ deploy/data/sponza/sponza_thorn_ddn.jpg | 3 +++ deploy/data/sponza/sponza_thorn_diff.jpg | 3 +++ deploy/data/sponza/sponza_thorn_mask.jpg | 3 +++ deploy/data/sponza/vase_ddn.jpg | 3 +++ deploy/data/sponza/vase_dif.jpg | 3 +++ deploy/data/sponza/vase_hanging.jpg | 3 +++ deploy/data/sponza/vase_plant.jpg | 3 +++ deploy/data/sponza/vase_plant_mask.jpg | 3 +++ deploy/data/sponza/vase_round.jpg | 3 +++ deploy/data/sponza/vase_round_ddn.jpg | 3 +++ deploy/data/sponza/vase_round_spec.jpg | 3 +++ deploy/data/steel.jpg | 3 +++ deploy/data/sword.mtl | 3 +++ deploy/data/sword.obj | 3 +++ deploy/data/texture.png | 3 +++ deploy/data/woodbox.jpg | 3 +++ deploy/libstdc++-6.dll | 3 +++ deploy/openal32.dll | 3 +++ src/sparrowshell/sparrowshell.cpp | 2 +- src/test/main.cpp | 20 +++++++++--------- 67 files changed, 199 insertions(+), 16 deletions(-) delete mode 100644 data/consolas.png rename {data => deploy/data}/consolas.fnt (100%) create mode 100644 deploy/data/consolas.png create mode 100644 deploy/data/leather.jpg create mode 100644 deploy/data/sponza.mtl create mode 100644 deploy/data/sponza.obj create mode 100644 deploy/data/sponza/background.jpg create mode 100644 deploy/data/sponza/background_ddn.jpg create mode 100644 deploy/data/sponza/chain_texture.jpg create mode 100644 deploy/data/sponza/chain_texture_ddn.jpg create mode 100644 deploy/data/sponza/chain_texture_mask.jpg create mode 100644 deploy/data/sponza/lion.jpg create mode 100644 deploy/data/sponza/lion_ddn.jpg create mode 100644 deploy/data/sponza/spnza_bricks_a_ddn.jpg create mode 100644 deploy/data/sponza/spnza_bricks_a_diff.jpg create mode 100644 deploy/data/sponza/spnza_bricks_a_spec.jpg create mode 100644 deploy/data/sponza/sponza_arch_ddn.jpg create mode 100644 deploy/data/sponza/sponza_arch_diff.jpg create mode 100644 deploy/data/sponza/sponza_arch_spec.jpg create mode 100644 deploy/data/sponza/sponza_ceiling_a_diff.jpg create mode 100644 deploy/data/sponza/sponza_ceiling_a_spec.jpg create mode 100644 deploy/data/sponza/sponza_column_a_ddn.jpg create mode 100644 deploy/data/sponza/sponza_column_a_diff.jpg create mode 100644 deploy/data/sponza/sponza_column_a_spec.jpg create mode 100644 deploy/data/sponza/sponza_column_b_ddn.jpg create mode 100644 deploy/data/sponza/sponza_column_b_diff.jpg create mode 100644 deploy/data/sponza/sponza_column_b_spec.jpg create mode 100644 deploy/data/sponza/sponza_column_c_ddn.jpg create mode 100644 deploy/data/sponza/sponza_column_c_diff.jpg create mode 100644 deploy/data/sponza/sponza_column_c_spec.jpg create mode 100644 deploy/data/sponza/sponza_curtain_blue_diff.jpg create mode 100644 deploy/data/sponza/sponza_curtain_diff.jpg create mode 100644 deploy/data/sponza/sponza_curtain_green_diff.jpg create mode 100644 deploy/data/sponza/sponza_details_diff.jpg create mode 100644 deploy/data/sponza/sponza_details_spec.jpg create mode 100644 deploy/data/sponza/sponza_fabric_blue_diff.jpg create mode 100644 deploy/data/sponza/sponza_fabric_diff.jpg create mode 100644 deploy/data/sponza/sponza_fabric_green_diff.jpg create mode 100644 deploy/data/sponza/sponza_fabric_spec.jpg create mode 100644 deploy/data/sponza/sponza_flagpole_diff.jpg create mode 100644 deploy/data/sponza/sponza_flagpole_spec.jpg create mode 100644 deploy/data/sponza/sponza_floor_a_ddn.jpg create mode 100644 deploy/data/sponza/sponza_floor_a_diff.jpg create mode 100644 deploy/data/sponza/sponza_floor_a_spec.jpg create mode 100644 deploy/data/sponza/sponza_roof_diff.jpg create mode 100644 deploy/data/sponza/sponza_thorn_ddn.jpg create mode 100644 deploy/data/sponza/sponza_thorn_diff.jpg create mode 100644 deploy/data/sponza/sponza_thorn_mask.jpg create mode 100644 deploy/data/sponza/vase_ddn.jpg create mode 100644 deploy/data/sponza/vase_dif.jpg create mode 100644 deploy/data/sponza/vase_hanging.jpg create mode 100644 deploy/data/sponza/vase_plant.jpg create mode 100644 deploy/data/sponza/vase_plant_mask.jpg create mode 100644 deploy/data/sponza/vase_round.jpg create mode 100644 deploy/data/sponza/vase_round_ddn.jpg create mode 100644 deploy/data/sponza/vase_round_spec.jpg create mode 100644 deploy/data/steel.jpg create mode 100644 deploy/data/sword.mtl create mode 100644 deploy/data/sword.obj create mode 100644 deploy/data/texture.png create mode 100644 deploy/data/woodbox.jpg create mode 100644 deploy/libstdc++-6.dll create mode 100644 deploy/openal32.dll diff --git a/.gitignore b/.gitignore index 9ce16ba..25d1c42 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ build* *.user -data/* -data/*.jpg -data/*.mtl -data/*.obj -config.ini \ No newline at end of file +deploy/config.ini +deploy/imgui.ini +deploy/*.exe \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 375e8b8..a6bba13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,4 +25,6 @@ set(SFML_MODULES audio graphics) set(CMAKE_TEMPLATE_PATH "../CMakeTemplate") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/deploy) + include(${CMAKE_TEMPLATE_PATH}/template.cmake) diff --git a/data/consolas.png b/data/consolas.png deleted file mode 100644 index 3a54fe4e5b5764d76aa7da948a56e8d19626e62d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19039 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 ioH%jf#EFws<^Kb-f`2QL8uJqX0000getRootObject()->addChild(sponzaContainer); - Loader::setTexDirectory("../data/sponza/"); + Loader::setTexDirectory("data/sponza/"); std::vector meshes = Loader::loadMesh("sponza.obj"); - Loader::setTexDirectory("../data/"); + Loader::setTexDirectory("data/"); for(Mesh* m : meshes) { if(m->getName().find("fabric") != std::string::npos) @@ -157,7 +157,7 @@ struct Config : public Serializable static Config* load() { std::fstream configFile; - configFile.open("../config.ini", std::ios_base::in); + configFile.open("config.ini", std::ios_base::in); Config *conf; if(configFile.is_open()) { @@ -174,7 +174,7 @@ struct Config : public Serializable conf = new Config(); ObjectSaver saver; saver.addObject(conf); - configFile.open("../config.ini", std::ios_base::out); + configFile.open("config.ini", std::ios_base::out); saver.saveAscii(configFile); configFile.close(); return conf; @@ -290,9 +290,9 @@ int main(){ Config* config = Config::load(); Engine engine; - Loader::setObjDirectory("../data/"); - Loader::setMtlDirectory("../data/"); - Loader::setTexDirectory("../data/"); + Loader::setObjDirectory("data/"); + Loader::setMtlDirectory("data/"); + Loader::setTexDirectory("data/"); // this creates the opengl context // the opengl context must exist before any opengl class is used (texture, pipeline, etc..) @@ -423,9 +423,9 @@ int main(){ } // loaders tests - Loader::setObjDirectory("../data/"); - Loader::setMtlDirectory("../data/"); - Loader::setTexDirectory("../data/"); + Loader::setObjDirectory("data/"); + Loader::setMtlDirectory("data/"); + Loader::setTexDirectory("data/"); std::vector meshes = Loader::loadMesh("sword.obj"); */ From 3ab90bdbcf4cef7fc259a8df8f8549f96eceefe5 Mon Sep 17 00:00:00 2001 From: Anselme Date: Sun, 30 Jul 2017 14:54:48 +0200 Subject: [PATCH 6/7] added sandbox map for player control testing --- deploy/data/sandbox.mtl | 3 +++ deploy/data/sandbox.obj | 3 +++ src/test/main.cpp | 18 +++++++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 deploy/data/sandbox.mtl create mode 100644 deploy/data/sandbox.obj diff --git a/deploy/data/sandbox.mtl b/deploy/data/sandbox.mtl new file mode 100644 index 0000000..2324019 --- /dev/null +++ b/deploy/data/sandbox.mtl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5952d768c5e6d96a52c4029d441c87cd2fb84141958eadd569ec9f582813e229 +size 74 diff --git a/deploy/data/sandbox.obj b/deploy/data/sandbox.obj new file mode 100644 index 0000000..579657e --- /dev/null +++ b/deploy/data/sandbox.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84dd7a98e4102ce03cd8067bca5b395f63129ab68fd21f6e5114bb4ba7e085c8 +size 365831 diff --git a/src/test/main.cpp b/src/test/main.cpp index 4a59b10..51e8c57 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -148,7 +148,7 @@ struct Config : public Serializable Config() { mode = "windowed"; - scene = "none"; + scene = "sandbox"; vsync = false; width = 800; height = 600; @@ -228,6 +228,22 @@ public: m_player->setPosition(0.f, 15.f, 0.f); sun->setShadowView(glm::vec3(130, 130, 70)); } + else if(m_config->scene == "sandbox") + { + sun->initShadowMap(4096); + GraphicalContainerNode* sandboxContainer = new GraphicalContainerNode(); + scene->getRootObject()->addChild(sandboxContainer); + std::vector meshes = Loader::loadMesh("sandbox.obj"); + for(Mesh* m : meshes) + { + m->initGL(); + MeshNode *node = new MeshNode(m); + sandboxContainer->addChild(node); + m_engine->getPhysics()->addRigidBody(node->buildStaticCollider()); + } + m_player->setPosition(0.f, 3.f, 0.f); + sun->setShadowView(glm::vec3(80)); + } } From 9bccabfbbab27676948e07d2d04ab75576d9fead Mon Sep 17 00:00:00 2001 From: Anselme Date: Tue, 15 Aug 2017 18:20:40 +0200 Subject: [PATCH 7/7] updated the engine to use PBR rendering + work in progress on player control --- deploy/data/ambient/1_posX.tga | 3 + deploy/data/ambient/2_negX.tga | 3 + deploy/data/ambient/3_posY.tga | 3 + deploy/data/ambient/4_negY.tga | 3 + deploy/data/ambient/5_posZ.tga | 3 + deploy/data/ambient/6_negZ.tga | 3 + deploy/data/{ => font}/consolas.fnt | 0 deploy/data/{ => font}/consolas.png | 0 deploy/data/ibl_brdf_lut.png | 3 + deploy/data/sandbox.mtl | 4 +- deploy/data/skybox/1_posX.tga | 3 + deploy/data/skybox/2_negX.tga | 3 + deploy/data/skybox/3_posY.tga | 3 + deploy/data/skybox/4_negY.tga | 3 + deploy/data/skybox/5_posZ.tga | 3 + deploy/data/skybox/6_negZ.tga | 3 + deploy/data/skybox/craterlake_bk.tga | 3 + deploy/data/skybox/craterlake_dn.tga | 3 + deploy/data/skybox/craterlake_ft.tga | 3 + deploy/data/skybox/craterlake_lf.tga | 3 + deploy/data/skybox/craterlake_rt.tga | 3 + deploy/data/skybox/craterlake_up.tga | 3 + deploy/data/sponza.mtl | 4 +- deploy/data/sponza/Background_Albedo.tga | 3 + deploy/data/sponza/Background_Normal.tga | 3 + deploy/data/sponza/Background_Roughness.tga | 3 + deploy/data/sponza/ChainTexture_Albedo.tga | 3 + deploy/data/sponza/ChainTexture_Metallic.tga | 3 + deploy/data/sponza/ChainTexture_Normal.tga | 3 + deploy/data/sponza/ChainTexture_Roughness.tga | 3 + deploy/data/sponza/Dielectric_metallic.tga | 3 + deploy/data/sponza/Lion_Albedo.tga | 3 + deploy/data/sponza/Lion_Normal.tga | 3 + deploy/data/sponza/Lion_Roughness.tga | 3 + deploy/data/sponza/Metallic_metallic.tga | 3 + deploy/data/sponza/Sponza_Arch_diffuse.tga | 3 + deploy/data/sponza/Sponza_Arch_normal.tga | 3 + deploy/data/sponza/Sponza_Arch_roughness.tga | 3 + deploy/data/sponza/Sponza_Bricks_a_Albedo.tga | 3 + deploy/data/sponza/Sponza_Bricks_a_Normal.tga | 3 + .../data/sponza/Sponza_Bricks_a_Roughness.tga | 3 + deploy/data/sponza/Sponza_Ceiling_diffuse.tga | 3 + deploy/data/sponza/Sponza_Ceiling_normal.tga | 3 + .../data/sponza/Sponza_Ceiling_roughness.tga | 3 + .../data/sponza/Sponza_Column_a_diffuse.tga | 3 + deploy/data/sponza/Sponza_Column_a_normal.tga | 3 + .../data/sponza/Sponza_Column_a_roughness.tga | 3 + .../data/sponza/Sponza_Column_b_diffuse.tga | 3 + deploy/data/sponza/Sponza_Column_b_normal.tga | 3 + .../data/sponza/Sponza_Column_b_roughness.tga | 3 + .../data/sponza/Sponza_Column_c_diffuse.tga | 3 + deploy/data/sponza/Sponza_Column_c_normal.tga | 3 + .../data/sponza/Sponza_Column_c_roughness.tga | 3 + .../sponza/Sponza_Curtain_Blue_diffuse.tga | 3 + .../sponza/Sponza_Curtain_Blue_normal.tga | 3 + .../sponza/Sponza_Curtain_Green_diffuse.tga | 3 + .../sponza/Sponza_Curtain_Green_normal.tga | 3 + .../sponza/Sponza_Curtain_Red_diffuse.tga | 3 + .../data/sponza/Sponza_Curtain_Red_normal.tga | 3 + .../data/sponza/Sponza_Curtain_metallic.tga | 3 + .../data/sponza/Sponza_Curtain_roughness.tga | 3 + deploy/data/sponza/Sponza_Details_diffuse.tga | 3 + .../data/sponza/Sponza_Details_metallic.tga | 3 + deploy/data/sponza/Sponza_Details_normal.tga | 3 + .../data/sponza/Sponza_Details_roughness.tga | 3 + .../sponza/Sponza_Fabric_Blue_diffuse.tga | 3 + .../data/sponza/Sponza_Fabric_Blue_normal.tga | 3 + .../sponza/Sponza_Fabric_Green_diffuse.tga | 3 + .../sponza/Sponza_Fabric_Green_normal.tga | 3 + .../data/sponza/Sponza_Fabric_Red_diffuse.tga | 3 + .../data/sponza/Sponza_Fabric_Red_normal.tga | 3 + deploy/data/sponza/Sponza_Fabric_metallic.tga | 3 + .../data/sponza/Sponza_Fabric_roughness.tga | 3 + .../data/sponza/Sponza_FlagPole_diffuse.tga | 3 + deploy/data/sponza/Sponza_FlagPole_normal.tga | 3 + .../data/sponza/Sponza_FlagPole_roughness.tga | 3 + deploy/data/sponza/Sponza_Floor_diffuse.tga | 3 + deploy/data/sponza/Sponza_Floor_normal.tga | 3 + deploy/data/sponza/Sponza_Floor_roughness.tga | 3 + deploy/data/sponza/Sponza_Roof_diffuse.tga | 3 + deploy/data/sponza/Sponza_Roof_normal.tga | 3 + deploy/data/sponza/Sponza_Roof_roughness.tga | 3 + deploy/data/sponza/Sponza_Thorn_diffuse.tga | 3 + deploy/data/sponza/Sponza_Thorn_normal.tga | 3 + deploy/data/sponza/Sponza_Thorn_roughness.tga | 3 + deploy/data/sponza/VaseHanging_diffuse.tga | 3 + deploy/data/sponza/VaseHanging_normal.tga | 3 + deploy/data/sponza/VaseHanging_roughness.tga | 3 + deploy/data/sponza/VasePlant_diffuse.tga | 3 + deploy/data/sponza/VasePlant_normal.tga | 3 + deploy/data/sponza/VasePlant_roughness.tga | 3 + deploy/data/sponza/VaseRound_diffuse.tga | 3 + deploy/data/sponza/VaseRound_normal.tga | 3 + deploy/data/sponza/VaseRound_roughness.tga | 3 + deploy/data/sponza/Vase_diffuse.tga | 3 + deploy/data/sponza/Vase_normal.tga | 3 + deploy/data/sponza/Vase_roughness.tga | 3 + deploy/data/sponza/background.jpg | 3 - deploy/data/sponza/background_ddn.jpg | 3 - deploy/data/sponza/chain_texture.jpg | 3 - deploy/data/sponza/chain_texture_ddn.jpg | 3 - deploy/data/sponza/copyright.txt | 31 ++++++ deploy/data/sponza/gi_flag.tga | 3 + deploy/data/sponza/lion.jpg | 3 - deploy/data/sponza/lion_ddn.jpg | 3 - deploy/data/sponza/spnza_bricks_a_ddn.jpg | 3 - deploy/data/sponza/spnza_bricks_a_diff.jpg | 3 - deploy/data/sponza/spnza_bricks_a_spec.jpg | 3 - deploy/data/sponza/sponza_arch_ddn.jpg | 3 - deploy/data/sponza/sponza_arch_diff.jpg | 3 - deploy/data/sponza/sponza_arch_spec.jpg | 3 - deploy/data/sponza/sponza_ceiling_a_diff.jpg | 3 - deploy/data/sponza/sponza_ceiling_a_spec.jpg | 3 - deploy/data/sponza/sponza_column_a_ddn.jpg | 3 - deploy/data/sponza/sponza_column_a_diff.jpg | 3 - deploy/data/sponza/sponza_column_a_spec.jpg | 3 - deploy/data/sponza/sponza_column_b_ddn.jpg | 3 - deploy/data/sponza/sponza_column_b_diff.jpg | 3 - deploy/data/sponza/sponza_column_b_spec.jpg | 3 - deploy/data/sponza/sponza_column_c_ddn.jpg | 3 - deploy/data/sponza/sponza_column_c_diff.jpg | 3 - deploy/data/sponza/sponza_column_c_spec.jpg | 3 - .../data/sponza/sponza_curtain_blue_diff.jpg | 3 - deploy/data/sponza/sponza_curtain_diff.jpg | 3 - .../data/sponza/sponza_curtain_green_diff.jpg | 3 - deploy/data/sponza/sponza_details_diff.jpg | 3 - deploy/data/sponza/sponza_details_spec.jpg | 3 - .../data/sponza/sponza_fabric_blue_diff.jpg | 3 - deploy/data/sponza/sponza_fabric_diff.jpg | 3 - .../data/sponza/sponza_fabric_green_diff.jpg | 3 - deploy/data/sponza/sponza_fabric_spec.jpg | 3 - deploy/data/sponza/sponza_flagpole_diff.jpg | 3 - deploy/data/sponza/sponza_flagpole_spec.jpg | 3 - deploy/data/sponza/sponza_floor_a_ddn.jpg | 3 - deploy/data/sponza/sponza_floor_a_diff.jpg | 3 - deploy/data/sponza/sponza_floor_a_spec.jpg | 3 - deploy/data/sponza/sponza_roof_diff.jpg | 3 - deploy/data/sponza/sponza_thorn_ddn.jpg | 3 - deploy/data/sponza/sponza_thorn_diff.jpg | 3 - deploy/data/sponza/vase_ddn.jpg | 3 - deploy/data/sponza/vase_dif.jpg | 3 - deploy/data/sponza/vase_hanging.jpg | 3 - deploy/data/sponza/vase_plant.jpg | 3 - deploy/data/sponza/vase_round.jpg | 3 - deploy/data/sponza/vase_round_ddn.jpg | 3 - deploy/data/sponza/vase_round_spec.jpg | 3 - deploy/data/sword.mtl | 4 +- src/engine.cpp | 1 + src/scene/gui/backgroundnode.cpp | 16 +-- src/scene/gui/buttonnode.cpp | 2 +- src/scene/gui/labelnode.cpp | 6 +- src/scene/gui/scrollbarnode.cpp | 12 +- src/scene/gui/scrollbarnode.h | 6 +- src/scene/gui/textinputnode.cpp | 4 +- src/scene/physicsdebugnode.cpp | 9 +- src/scene/playercharacternode.cpp | 46 ++++++-- src/scene/playercharacternode.h | 1 + src/scene/textnode.h | 2 +- src/sparrowshell/shellscrollbar.cpp | 2 +- src/sparrowshell/sparrowshell.cpp | 6 +- src/test/main.cpp | 54 +++++++-- src/test/potator.cpp | 22 ++-- src/tools/font.cpp | 8 +- src/tools/loader.cpp | 105 +++++++++--------- src/tools/loader.h | 2 +- 165 files changed, 502 insertions(+), 268 deletions(-) create mode 100644 deploy/data/ambient/1_posX.tga create mode 100644 deploy/data/ambient/2_negX.tga create mode 100644 deploy/data/ambient/3_posY.tga create mode 100644 deploy/data/ambient/4_negY.tga create mode 100644 deploy/data/ambient/5_posZ.tga create mode 100644 deploy/data/ambient/6_negZ.tga rename deploy/data/{ => font}/consolas.fnt (100%) rename deploy/data/{ => font}/consolas.png (100%) create mode 100644 deploy/data/ibl_brdf_lut.png create mode 100644 deploy/data/skybox/1_posX.tga create mode 100644 deploy/data/skybox/2_negX.tga create mode 100644 deploy/data/skybox/3_posY.tga create mode 100644 deploy/data/skybox/4_negY.tga create mode 100644 deploy/data/skybox/5_posZ.tga create mode 100644 deploy/data/skybox/6_negZ.tga create mode 100644 deploy/data/skybox/craterlake_bk.tga create mode 100644 deploy/data/skybox/craterlake_dn.tga create mode 100644 deploy/data/skybox/craterlake_ft.tga create mode 100644 deploy/data/skybox/craterlake_lf.tga create mode 100644 deploy/data/skybox/craterlake_rt.tga create mode 100644 deploy/data/skybox/craterlake_up.tga create mode 100644 deploy/data/sponza/Background_Albedo.tga create mode 100644 deploy/data/sponza/Background_Normal.tga create mode 100644 deploy/data/sponza/Background_Roughness.tga create mode 100644 deploy/data/sponza/ChainTexture_Albedo.tga create mode 100644 deploy/data/sponza/ChainTexture_Metallic.tga create mode 100644 deploy/data/sponza/ChainTexture_Normal.tga create mode 100644 deploy/data/sponza/ChainTexture_Roughness.tga create mode 100644 deploy/data/sponza/Dielectric_metallic.tga create mode 100644 deploy/data/sponza/Lion_Albedo.tga create mode 100644 deploy/data/sponza/Lion_Normal.tga create mode 100644 deploy/data/sponza/Lion_Roughness.tga create mode 100644 deploy/data/sponza/Metallic_metallic.tga create mode 100644 deploy/data/sponza/Sponza_Arch_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Arch_normal.tga create mode 100644 deploy/data/sponza/Sponza_Arch_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Bricks_a_Albedo.tga create mode 100644 deploy/data/sponza/Sponza_Bricks_a_Normal.tga create mode 100644 deploy/data/sponza/Sponza_Bricks_a_Roughness.tga create mode 100644 deploy/data/sponza/Sponza_Ceiling_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Ceiling_normal.tga create mode 100644 deploy/data/sponza/Sponza_Ceiling_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Column_a_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Column_a_normal.tga create mode 100644 deploy/data/sponza/Sponza_Column_a_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Column_b_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Column_b_normal.tga create mode 100644 deploy/data/sponza/Sponza_Column_b_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Column_c_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Column_c_normal.tga create mode 100644 deploy/data/sponza/Sponza_Column_c_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_Blue_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_Blue_normal.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_Green_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_Green_normal.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_Red_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_Red_normal.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_metallic.tga create mode 100644 deploy/data/sponza/Sponza_Curtain_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Details_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Details_metallic.tga create mode 100644 deploy/data/sponza/Sponza_Details_normal.tga create mode 100644 deploy/data/sponza/Sponza_Details_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_Blue_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_Blue_normal.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_Green_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_Green_normal.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_Red_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_Red_normal.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_metallic.tga create mode 100644 deploy/data/sponza/Sponza_Fabric_roughness.tga create mode 100644 deploy/data/sponza/Sponza_FlagPole_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_FlagPole_normal.tga create mode 100644 deploy/data/sponza/Sponza_FlagPole_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Floor_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Floor_normal.tga create mode 100644 deploy/data/sponza/Sponza_Floor_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Roof_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Roof_normal.tga create mode 100644 deploy/data/sponza/Sponza_Roof_roughness.tga create mode 100644 deploy/data/sponza/Sponza_Thorn_diffuse.tga create mode 100644 deploy/data/sponza/Sponza_Thorn_normal.tga create mode 100644 deploy/data/sponza/Sponza_Thorn_roughness.tga create mode 100644 deploy/data/sponza/VaseHanging_diffuse.tga create mode 100644 deploy/data/sponza/VaseHanging_normal.tga create mode 100644 deploy/data/sponza/VaseHanging_roughness.tga create mode 100644 deploy/data/sponza/VasePlant_diffuse.tga create mode 100644 deploy/data/sponza/VasePlant_normal.tga create mode 100644 deploy/data/sponza/VasePlant_roughness.tga create mode 100644 deploy/data/sponza/VaseRound_diffuse.tga create mode 100644 deploy/data/sponza/VaseRound_normal.tga create mode 100644 deploy/data/sponza/VaseRound_roughness.tga create mode 100644 deploy/data/sponza/Vase_diffuse.tga create mode 100644 deploy/data/sponza/Vase_normal.tga create mode 100644 deploy/data/sponza/Vase_roughness.tga delete mode 100644 deploy/data/sponza/background.jpg delete mode 100644 deploy/data/sponza/background_ddn.jpg delete mode 100644 deploy/data/sponza/chain_texture.jpg delete mode 100644 deploy/data/sponza/chain_texture_ddn.jpg create mode 100644 deploy/data/sponza/copyright.txt create mode 100644 deploy/data/sponza/gi_flag.tga delete mode 100644 deploy/data/sponza/lion.jpg delete mode 100644 deploy/data/sponza/lion_ddn.jpg delete mode 100644 deploy/data/sponza/spnza_bricks_a_ddn.jpg delete mode 100644 deploy/data/sponza/spnza_bricks_a_diff.jpg delete mode 100644 deploy/data/sponza/spnza_bricks_a_spec.jpg delete mode 100644 deploy/data/sponza/sponza_arch_ddn.jpg delete mode 100644 deploy/data/sponza/sponza_arch_diff.jpg delete mode 100644 deploy/data/sponza/sponza_arch_spec.jpg delete mode 100644 deploy/data/sponza/sponza_ceiling_a_diff.jpg delete mode 100644 deploy/data/sponza/sponza_ceiling_a_spec.jpg delete mode 100644 deploy/data/sponza/sponza_column_a_ddn.jpg delete mode 100644 deploy/data/sponza/sponza_column_a_diff.jpg delete mode 100644 deploy/data/sponza/sponza_column_a_spec.jpg delete mode 100644 deploy/data/sponza/sponza_column_b_ddn.jpg delete mode 100644 deploy/data/sponza/sponza_column_b_diff.jpg delete mode 100644 deploy/data/sponza/sponza_column_b_spec.jpg delete mode 100644 deploy/data/sponza/sponza_column_c_ddn.jpg delete mode 100644 deploy/data/sponza/sponza_column_c_diff.jpg delete mode 100644 deploy/data/sponza/sponza_column_c_spec.jpg delete mode 100644 deploy/data/sponza/sponza_curtain_blue_diff.jpg delete mode 100644 deploy/data/sponza/sponza_curtain_diff.jpg delete mode 100644 deploy/data/sponza/sponza_curtain_green_diff.jpg delete mode 100644 deploy/data/sponza/sponza_details_diff.jpg delete mode 100644 deploy/data/sponza/sponza_details_spec.jpg delete mode 100644 deploy/data/sponza/sponza_fabric_blue_diff.jpg delete mode 100644 deploy/data/sponza/sponza_fabric_diff.jpg delete mode 100644 deploy/data/sponza/sponza_fabric_green_diff.jpg delete mode 100644 deploy/data/sponza/sponza_fabric_spec.jpg delete mode 100644 deploy/data/sponza/sponza_flagpole_diff.jpg delete mode 100644 deploy/data/sponza/sponza_flagpole_spec.jpg delete mode 100644 deploy/data/sponza/sponza_floor_a_ddn.jpg delete mode 100644 deploy/data/sponza/sponza_floor_a_diff.jpg delete mode 100644 deploy/data/sponza/sponza_floor_a_spec.jpg delete mode 100644 deploy/data/sponza/sponza_roof_diff.jpg delete mode 100644 deploy/data/sponza/sponza_thorn_ddn.jpg delete mode 100644 deploy/data/sponza/sponza_thorn_diff.jpg delete mode 100644 deploy/data/sponza/vase_ddn.jpg delete mode 100644 deploy/data/sponza/vase_dif.jpg delete mode 100644 deploy/data/sponza/vase_hanging.jpg delete mode 100644 deploy/data/sponza/vase_plant.jpg delete mode 100644 deploy/data/sponza/vase_round.jpg delete mode 100644 deploy/data/sponza/vase_round_ddn.jpg delete mode 100644 deploy/data/sponza/vase_round_spec.jpg diff --git a/deploy/data/ambient/1_posX.tga b/deploy/data/ambient/1_posX.tga new file mode 100644 index 0000000..4f6fe3d --- /dev/null +++ b/deploy/data/ambient/1_posX.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45812db95bd21535b6a14db30c949d67aa39545b9dd1866c103da6b74e1c62b1 +size 49196 diff --git a/deploy/data/ambient/2_negX.tga b/deploy/data/ambient/2_negX.tga new file mode 100644 index 0000000..97c95c7 --- /dev/null +++ b/deploy/data/ambient/2_negX.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daf58d6d059395121cfff3340645b1790fce56c988d5414b29d393e5f64c90cc +size 49196 diff --git a/deploy/data/ambient/3_posY.tga b/deploy/data/ambient/3_posY.tga new file mode 100644 index 0000000..a4aaddf --- /dev/null +++ b/deploy/data/ambient/3_posY.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:904069dc6c60ed9823d6379827fe6434b3a05a7331631a508f6f4b96eb208a7a +size 49196 diff --git a/deploy/data/ambient/4_negY.tga b/deploy/data/ambient/4_negY.tga new file mode 100644 index 0000000..7623b5e --- /dev/null +++ b/deploy/data/ambient/4_negY.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f4864454868b3c5b7625e82584e6a28adb1b8727e96266984c4dfc23850f25d +size 49196 diff --git a/deploy/data/ambient/5_posZ.tga b/deploy/data/ambient/5_posZ.tga new file mode 100644 index 0000000..f6df846 --- /dev/null +++ b/deploy/data/ambient/5_posZ.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08a8539cdb09329b5404e2aef67265c4bade0d7761474cd650450d94cb2b9493 +size 49196 diff --git a/deploy/data/ambient/6_negZ.tga b/deploy/data/ambient/6_negZ.tga new file mode 100644 index 0000000..295f66a --- /dev/null +++ b/deploy/data/ambient/6_negZ.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d835a097cb53d3e43ffb3e4be852c2047c8fdfed8c9d8eb218cefb2147bf3f74 +size 49196 diff --git a/deploy/data/consolas.fnt b/deploy/data/font/consolas.fnt similarity index 100% rename from deploy/data/consolas.fnt rename to deploy/data/font/consolas.fnt diff --git a/deploy/data/consolas.png b/deploy/data/font/consolas.png similarity index 100% rename from deploy/data/consolas.png rename to deploy/data/font/consolas.png diff --git a/deploy/data/ibl_brdf_lut.png b/deploy/data/ibl_brdf_lut.png new file mode 100644 index 0000000..35b1f4b --- /dev/null +++ b/deploy/data/ibl_brdf_lut.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98fc63eada3ca5549bd74d518fd3e2fd5f84abcbe54366771f9c0224fa2c19f1 +size 35823 diff --git a/deploy/data/sandbox.mtl b/deploy/data/sandbox.mtl index 2324019..8bdd151 100644 --- a/deploy/data/sandbox.mtl +++ b/deploy/data/sandbox.mtl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5952d768c5e6d96a52c4029d441c87cd2fb84141958eadd569ec9f582813e229 -size 74 +oid sha256:8e2729d1b53d001080f0e4709b597a8103a98564c7e8b40753158c7a8c0744a2 +size 75 diff --git a/deploy/data/skybox/1_posX.tga b/deploy/data/skybox/1_posX.tga new file mode 100644 index 0000000..3ea5b7f --- /dev/null +++ b/deploy/data/skybox/1_posX.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:936d3c5ea0589cb0600ae0d7116cafd2792e025055e0a3b7eb4ecfda2291e93b +size 12582930 diff --git a/deploy/data/skybox/2_negX.tga b/deploy/data/skybox/2_negX.tga new file mode 100644 index 0000000..89bd1e8 --- /dev/null +++ b/deploy/data/skybox/2_negX.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68288c1a11df99056d5009ddf67accc5f52677ceff0c990152ef4b643ee2e8c4 +size 12582930 diff --git a/deploy/data/skybox/3_posY.tga b/deploy/data/skybox/3_posY.tga new file mode 100644 index 0000000..8dc3621 --- /dev/null +++ b/deploy/data/skybox/3_posY.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ce096e0ce8da69464a183c9d80ea9e7937b4e960ef2774237f2a6ade2bddf50 +size 241711 diff --git a/deploy/data/skybox/4_negY.tga b/deploy/data/skybox/4_negY.tga new file mode 100644 index 0000000..de517e4 --- /dev/null +++ b/deploy/data/skybox/4_negY.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bce18ac878bf0df16f9a55d881ab076a074c257b7c24f40249ddd77d43d36c6 +size 2848272 diff --git a/deploy/data/skybox/5_posZ.tga b/deploy/data/skybox/5_posZ.tga new file mode 100644 index 0000000..aeec736 --- /dev/null +++ b/deploy/data/skybox/5_posZ.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58192d9fa5dcbc58884d90db48469197561b4b8d49d7a39c71b4521743fdc4b2 +size 12582930 diff --git a/deploy/data/skybox/6_negZ.tga b/deploy/data/skybox/6_negZ.tga new file mode 100644 index 0000000..e8c245e --- /dev/null +++ b/deploy/data/skybox/6_negZ.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:087883d665611ebec43e4b3e10abb10595a40bdd1084dbd350c1f0b4f59f542e +size 12582930 diff --git a/deploy/data/skybox/craterlake_bk.tga b/deploy/data/skybox/craterlake_bk.tga new file mode 100644 index 0000000..ac7bff3 --- /dev/null +++ b/deploy/data/skybox/craterlake_bk.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e916551b97b12ebd31228fe8ccc06523cc7ac98eee1daa76032b8fee1b0cee11 +size 769437 diff --git a/deploy/data/skybox/craterlake_dn.tga b/deploy/data/skybox/craterlake_dn.tga new file mode 100644 index 0000000..0c3146e --- /dev/null +++ b/deploy/data/skybox/craterlake_dn.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47a24fd77edac34fbd9b9031754624e1fca3c047830b0820654b74e202969891 +size 757939 diff --git a/deploy/data/skybox/craterlake_ft.tga b/deploy/data/skybox/craterlake_ft.tga new file mode 100644 index 0000000..10dfccb --- /dev/null +++ b/deploy/data/skybox/craterlake_ft.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7b25f9cfdaa42f9ea37596e07edc120df9261c0c695ab3cead68d7c646c2a73 +size 737349 diff --git a/deploy/data/skybox/craterlake_lf.tga b/deploy/data/skybox/craterlake_lf.tga new file mode 100644 index 0000000..e7224de --- /dev/null +++ b/deploy/data/skybox/craterlake_lf.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1d5aee7e0a4041674f1ce844fbfd194972e6968002e05570c098e65530c862b +size 766552 diff --git a/deploy/data/skybox/craterlake_rt.tga b/deploy/data/skybox/craterlake_rt.tga new file mode 100644 index 0000000..f415f14 --- /dev/null +++ b/deploy/data/skybox/craterlake_rt.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:037b77efe579a762a1acc920388d4da1d16658893179502324ee89598eb69cff +size 704063 diff --git a/deploy/data/skybox/craterlake_up.tga b/deploy/data/skybox/craterlake_up.tga new file mode 100644 index 0000000..cdd495e --- /dev/null +++ b/deploy/data/skybox/craterlake_up.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc2c22f138ad728700079827f0202a91dcd7c5be10d683c887c0b2970def5d95 +size 626448 diff --git a/deploy/data/sponza.mtl b/deploy/data/sponza.mtl index 3f182bd..1b5724c 100644 --- a/deploy/data/sponza.mtl +++ b/deploy/data/sponza.mtl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd740556a0e8e853532bb3df7642fc9f5f0f2a409f6a0831148db304ad445b1c -size 5295 +oid sha256:cd6ccb4673fb99d8ee5780b60e63f307d8e839bed88df0ba5d1eab8f35239128 +size 4393 diff --git a/deploy/data/sponza/Background_Albedo.tga b/deploy/data/sponza/Background_Albedo.tga new file mode 100644 index 0000000..93c8c4a --- /dev/null +++ b/deploy/data/sponza/Background_Albedo.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:618d9dea98ee7f09b8ae157866800161db24a0ab53baa7dbbbaa5f84ddfa8d46 +size 4194348 diff --git a/deploy/data/sponza/Background_Normal.tga b/deploy/data/sponza/Background_Normal.tga new file mode 100644 index 0000000..ff11181 --- /dev/null +++ b/deploy/data/sponza/Background_Normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09042d1134d331ab3f231c2bd0033c7d770e5c070353fe1339af29129c1d36d5 +size 4194348 diff --git a/deploy/data/sponza/Background_Roughness.tga b/deploy/data/sponza/Background_Roughness.tga new file mode 100644 index 0000000..3b7a6c3 --- /dev/null +++ b/deploy/data/sponza/Background_Roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed37a704b5cec18ec5ab2f6862a2bd21adc2d2bb329a608a79a5bcd2ada642ec +size 1048620 diff --git a/deploy/data/sponza/ChainTexture_Albedo.tga b/deploy/data/sponza/ChainTexture_Albedo.tga new file mode 100644 index 0000000..e45e320 --- /dev/null +++ b/deploy/data/sponza/ChainTexture_Albedo.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c5c70113f006dd2d7d37f200a0e83d4eed29977a714e3c194b1368a83365a2d +size 4194348 diff --git a/deploy/data/sponza/ChainTexture_Metallic.tga b/deploy/data/sponza/ChainTexture_Metallic.tga new file mode 100644 index 0000000..4df0fff --- /dev/null +++ b/deploy/data/sponza/ChainTexture_Metallic.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fff0d58ecb1804947aaac5f290cfc3cdf3744ec2f4d7451ad66f43990d0f0e69 +size 1048620 diff --git a/deploy/data/sponza/ChainTexture_Normal.tga b/deploy/data/sponza/ChainTexture_Normal.tga new file mode 100644 index 0000000..b8de754 --- /dev/null +++ b/deploy/data/sponza/ChainTexture_Normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21a672d94a32f8971063fd9b4c0fad967cc7d92617a8a544f80d253c9db966b5 +size 4194348 diff --git a/deploy/data/sponza/ChainTexture_Roughness.tga b/deploy/data/sponza/ChainTexture_Roughness.tga new file mode 100644 index 0000000..bef5555 --- /dev/null +++ b/deploy/data/sponza/ChainTexture_Roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89f7770251a80537661f19cce6dccc87376df662b39550f38e61df43f9fc46e6 +size 1048620 diff --git a/deploy/data/sponza/Dielectric_metallic.tga b/deploy/data/sponza/Dielectric_metallic.tga new file mode 100644 index 0000000..5a074df --- /dev/null +++ b/deploy/data/sponza/Dielectric_metallic.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2255256f2be0e5ac02a9cfe796b6aaf153b3f793782833eedce84d8a9201304 +size 1048620 diff --git a/deploy/data/sponza/Lion_Albedo.tga b/deploy/data/sponza/Lion_Albedo.tga new file mode 100644 index 0000000..b344cc1 --- /dev/null +++ b/deploy/data/sponza/Lion_Albedo.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c3caf37a33546ac3e4f9d357f72097cbe1d516f67a71782af6d23060b869511 +size 4194348 diff --git a/deploy/data/sponza/Lion_Normal.tga b/deploy/data/sponza/Lion_Normal.tga new file mode 100644 index 0000000..98ca0b7 --- /dev/null +++ b/deploy/data/sponza/Lion_Normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54aa45c9f7f594bad78d0b4c8c6e7eb5e59f5e0990d76adc82ca2c888826eb68 +size 4194348 diff --git a/deploy/data/sponza/Lion_Roughness.tga b/deploy/data/sponza/Lion_Roughness.tga new file mode 100644 index 0000000..6f153df --- /dev/null +++ b/deploy/data/sponza/Lion_Roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9a65608a5e7a9bdfccc61e257584b0b40345a7c1e0d6fa29be270d29a2fe048 +size 1048620 diff --git a/deploy/data/sponza/Metallic_metallic.tga b/deploy/data/sponza/Metallic_metallic.tga new file mode 100644 index 0000000..06794ea --- /dev/null +++ b/deploy/data/sponza/Metallic_metallic.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2147045af41c65d6df6f6d36be6e6bf7f9fcc9c6273e4da6d745d18da190d59a +size 1048620 diff --git a/deploy/data/sponza/Sponza_Arch_diffuse.tga b/deploy/data/sponza/Sponza_Arch_diffuse.tga new file mode 100644 index 0000000..17e0bc2 --- /dev/null +++ b/deploy/data/sponza/Sponza_Arch_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbfa887b19e049cd57fbc6a0b8910a96087fc5229c60c0a3f49a2946e629b3d6 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Arch_normal.tga b/deploy/data/sponza/Sponza_Arch_normal.tga new file mode 100644 index 0000000..123633b --- /dev/null +++ b/deploy/data/sponza/Sponza_Arch_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54548f4fc29b8aee3fa11fe173a0a85afced41da856124b325e5a4df894fb505 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Arch_roughness.tga b/deploy/data/sponza/Sponza_Arch_roughness.tga new file mode 100644 index 0000000..af8af6e --- /dev/null +++ b/deploy/data/sponza/Sponza_Arch_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:600cf82eb86ea037886297f2613dd481fc859fc70e5231e7d06394806942ff78 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Bricks_a_Albedo.tga b/deploy/data/sponza/Sponza_Bricks_a_Albedo.tga new file mode 100644 index 0000000..5645f2b --- /dev/null +++ b/deploy/data/sponza/Sponza_Bricks_a_Albedo.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b17b3ff47ef041e9a25cb99a9b0b1b7060c8a9453228c1d9e807adaab57c337 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Bricks_a_Normal.tga b/deploy/data/sponza/Sponza_Bricks_a_Normal.tga new file mode 100644 index 0000000..6ef5aed --- /dev/null +++ b/deploy/data/sponza/Sponza_Bricks_a_Normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c63b64c11e9ed9fdd2527b9d33418473ca198a802d17efa45dafa9d6f554e6ed +size 4194348 diff --git a/deploy/data/sponza/Sponza_Bricks_a_Roughness.tga b/deploy/data/sponza/Sponza_Bricks_a_Roughness.tga new file mode 100644 index 0000000..0f22e7c --- /dev/null +++ b/deploy/data/sponza/Sponza_Bricks_a_Roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94781a3f9bb0de90c31f21be56592ead521fbd7633dbfb4dda293161807d62b6 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Ceiling_diffuse.tga b/deploy/data/sponza/Sponza_Ceiling_diffuse.tga new file mode 100644 index 0000000..e86d1b3 --- /dev/null +++ b/deploy/data/sponza/Sponza_Ceiling_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d33be43f978df01bd123ab26823f7803a090206a1288c9735b2856eeabf7b81 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Ceiling_normal.tga b/deploy/data/sponza/Sponza_Ceiling_normal.tga new file mode 100644 index 0000000..b884c55 --- /dev/null +++ b/deploy/data/sponza/Sponza_Ceiling_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dd812d2d78f3a26110cc3784f31bb5dcd4a1490ced9d643f6957ea06620643d +size 4194348 diff --git a/deploy/data/sponza/Sponza_Ceiling_roughness.tga b/deploy/data/sponza/Sponza_Ceiling_roughness.tga new file mode 100644 index 0000000..a4f12c5 --- /dev/null +++ b/deploy/data/sponza/Sponza_Ceiling_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:472597f9a691d9bcac70397afb51330beefbf207b8450f16401e85d9fe0d49ad +size 1048620 diff --git a/deploy/data/sponza/Sponza_Column_a_diffuse.tga b/deploy/data/sponza/Sponza_Column_a_diffuse.tga new file mode 100644 index 0000000..6a023c9 --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_a_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec1725ca19928398fc06841c5b528d34ba460f8e274d1511d4ebc682ab6f0289 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Column_a_normal.tga b/deploy/data/sponza/Sponza_Column_a_normal.tga new file mode 100644 index 0000000..3ef72da --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_a_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54820fc64740cd5d1a2e99e658aef8914e3e2ca47077679695bb9a6ebe760ddd +size 4194348 diff --git a/deploy/data/sponza/Sponza_Column_a_roughness.tga b/deploy/data/sponza/Sponza_Column_a_roughness.tga new file mode 100644 index 0000000..b70e2cd --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_a_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0319016ade12c981fcf70f7075913317064ace995fe885abe691c4850a4bb316 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Column_b_diffuse.tga b/deploy/data/sponza/Sponza_Column_b_diffuse.tga new file mode 100644 index 0000000..11fb5ae --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_b_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:600500392f42e678921a5b762bd6351ff27dfbab8fecfad9d87da774aaa40cca +size 4194348 diff --git a/deploy/data/sponza/Sponza_Column_b_normal.tga b/deploy/data/sponza/Sponza_Column_b_normal.tga new file mode 100644 index 0000000..4f05c5e --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_b_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f473a9963e4ef6eda61da01791d8007eb617c699b149e6c033c739d707a061e0 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Column_b_roughness.tga b/deploy/data/sponza/Sponza_Column_b_roughness.tga new file mode 100644 index 0000000..ff0f17d --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_b_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaf3b369d27c2fedb18df22ce794e643694dee8f4c992590dfa52a477abe4b6b +size 1048620 diff --git a/deploy/data/sponza/Sponza_Column_c_diffuse.tga b/deploy/data/sponza/Sponza_Column_c_diffuse.tga new file mode 100644 index 0000000..b69f4b0 --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_c_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2d76257bad197dae9b5ffaf79b8eea1364d36e8504ae77e7acbfa1cca11b0b3 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Column_c_normal.tga b/deploy/data/sponza/Sponza_Column_c_normal.tga new file mode 100644 index 0000000..149295a --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_c_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3519bf4199fb18ddde3bf8298d47fb63bb1ea0ee508169a60a598142fc3c9d1 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Column_c_roughness.tga b/deploy/data/sponza/Sponza_Column_c_roughness.tga new file mode 100644 index 0000000..2ff697c --- /dev/null +++ b/deploy/data/sponza/Sponza_Column_c_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:988807465ada7d5875a93f88fc2cbbd96a668a12f955507f2c9d4cdaebee41f8 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Curtain_Blue_diffuse.tga b/deploy/data/sponza/Sponza_Curtain_Blue_diffuse.tga new file mode 100644 index 0000000..12819e2 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_Blue_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e6f2d6d8a99365e26477cd64c7c41a4fd4a2e920fc7f8575bc71c9fdcedd6a3 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Curtain_Blue_normal.tga b/deploy/data/sponza/Sponza_Curtain_Blue_normal.tga new file mode 100644 index 0000000..7622725 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_Blue_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31de3bbd96f37738da7b5a615807c6273f535ec3a15c4cf3d2de933af750bf8a +size 4194348 diff --git a/deploy/data/sponza/Sponza_Curtain_Green_diffuse.tga b/deploy/data/sponza/Sponza_Curtain_Green_diffuse.tga new file mode 100644 index 0000000..ac3bac4 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_Green_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39e3d023b364dd4d52bc1c37dd1b1d4d6e91a1013acd52767fac6110366a131a +size 4194348 diff --git a/deploy/data/sponza/Sponza_Curtain_Green_normal.tga b/deploy/data/sponza/Sponza_Curtain_Green_normal.tga new file mode 100644 index 0000000..7622725 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_Green_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31de3bbd96f37738da7b5a615807c6273f535ec3a15c4cf3d2de933af750bf8a +size 4194348 diff --git a/deploy/data/sponza/Sponza_Curtain_Red_diffuse.tga b/deploy/data/sponza/Sponza_Curtain_Red_diffuse.tga new file mode 100644 index 0000000..f7cc563 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_Red_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a82d94d77b0b58238aca6e29cd03346e9a595a6642d995f47c4ca1c4b811fd30 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Curtain_Red_normal.tga b/deploy/data/sponza/Sponza_Curtain_Red_normal.tga new file mode 100644 index 0000000..7622725 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_Red_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31de3bbd96f37738da7b5a615807c6273f535ec3a15c4cf3d2de933af750bf8a +size 4194348 diff --git a/deploy/data/sponza/Sponza_Curtain_metallic.tga b/deploy/data/sponza/Sponza_Curtain_metallic.tga new file mode 100644 index 0000000..04fe981 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_metallic.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53dc590606e983eae0bbeb005b94c77b9c3e60d544f127e94fad3ca01b8b1844 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Curtain_roughness.tga b/deploy/data/sponza/Sponza_Curtain_roughness.tga new file mode 100644 index 0000000..22f9a09 --- /dev/null +++ b/deploy/data/sponza/Sponza_Curtain_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:561ecc0c5fb13335d529d3713b0bd1e50557e2a829ced4be6b1c425f6c694e13 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Details_diffuse.tga b/deploy/data/sponza/Sponza_Details_diffuse.tga new file mode 100644 index 0000000..21d3408 --- /dev/null +++ b/deploy/data/sponza/Sponza_Details_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d507c9ea83a4d8647c8a12faaf67266ff8cfb7866c7500ee566a94710b52cf8c +size 4194348 diff --git a/deploy/data/sponza/Sponza_Details_metallic.tga b/deploy/data/sponza/Sponza_Details_metallic.tga new file mode 100644 index 0000000..743092f --- /dev/null +++ b/deploy/data/sponza/Sponza_Details_metallic.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ff494a1e6cc9e85c824814bad475043dd017cd176ec7e7f6afe8888202972ce +size 1048620 diff --git a/deploy/data/sponza/Sponza_Details_normal.tga b/deploy/data/sponza/Sponza_Details_normal.tga new file mode 100644 index 0000000..74f0e7a --- /dev/null +++ b/deploy/data/sponza/Sponza_Details_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47de6e66368ca4046ffe6a6ad23bc9c23cbf3c86d98b5060f0e16b3e071d55a7 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Details_roughness.tga b/deploy/data/sponza/Sponza_Details_roughness.tga new file mode 100644 index 0000000..5dfd3a7 --- /dev/null +++ b/deploy/data/sponza/Sponza_Details_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d3dd567ed89d97fe21a8341f20e947b97287297c3a18779c9d390ddbfdd305e +size 1048620 diff --git a/deploy/data/sponza/Sponza_Fabric_Blue_diffuse.tga b/deploy/data/sponza/Sponza_Fabric_Blue_diffuse.tga new file mode 100644 index 0000000..b101890 --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_Blue_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c5353fa87304b42dd347ac124cd884a8ce1d5b5bb78130a9615712477c87d07 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Fabric_Blue_normal.tga b/deploy/data/sponza/Sponza_Fabric_Blue_normal.tga new file mode 100644 index 0000000..20ef226 --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_Blue_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d42f33dc4a940e203d2843809ae48dd8d8897cac97eb52bdeb5f7046ed8266b +size 4194348 diff --git a/deploy/data/sponza/Sponza_Fabric_Green_diffuse.tga b/deploy/data/sponza/Sponza_Fabric_Green_diffuse.tga new file mode 100644 index 0000000..0763a5d --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_Green_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72729cc52475caae9fc236bfb4856a19b37ae2c37af745c061cf9023d9c4fac0 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Fabric_Green_normal.tga b/deploy/data/sponza/Sponza_Fabric_Green_normal.tga new file mode 100644 index 0000000..20ef226 --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_Green_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d42f33dc4a940e203d2843809ae48dd8d8897cac97eb52bdeb5f7046ed8266b +size 4194348 diff --git a/deploy/data/sponza/Sponza_Fabric_Red_diffuse.tga b/deploy/data/sponza/Sponza_Fabric_Red_diffuse.tga new file mode 100644 index 0000000..da031bb --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_Red_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e1256c6a67543e74abb3a7b8c3f0176ea08cb650945b3cd172edaedd4817512 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Fabric_Red_normal.tga b/deploy/data/sponza/Sponza_Fabric_Red_normal.tga new file mode 100644 index 0000000..20ef226 --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_Red_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d42f33dc4a940e203d2843809ae48dd8d8897cac97eb52bdeb5f7046ed8266b +size 4194348 diff --git a/deploy/data/sponza/Sponza_Fabric_metallic.tga b/deploy/data/sponza/Sponza_Fabric_metallic.tga new file mode 100644 index 0000000..2df5677 --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_metallic.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2aa93767d145ffc689df848ca10d793645da8e167e7101b76515a6ebc54ef850 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Fabric_roughness.tga b/deploy/data/sponza/Sponza_Fabric_roughness.tga new file mode 100644 index 0000000..5e0eb47 --- /dev/null +++ b/deploy/data/sponza/Sponza_Fabric_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3e7c976af11855803c48c33cc74d64f566675e0fc1f926ff287c88ded95f672 +size 1048620 diff --git a/deploy/data/sponza/Sponza_FlagPole_diffuse.tga b/deploy/data/sponza/Sponza_FlagPole_diffuse.tga new file mode 100644 index 0000000..1a8518b --- /dev/null +++ b/deploy/data/sponza/Sponza_FlagPole_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9852428b447b169978da56660d6fd53b6830fa18d87aafcca99f8b2f47bf1a00 +size 4194348 diff --git a/deploy/data/sponza/Sponza_FlagPole_normal.tga b/deploy/data/sponza/Sponza_FlagPole_normal.tga new file mode 100644 index 0000000..fe07610 --- /dev/null +++ b/deploy/data/sponza/Sponza_FlagPole_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2507dfe1b5db751bc84d8701c21b6d31654bcc7e2c08d552b2da64aaaba9234d +size 4194348 diff --git a/deploy/data/sponza/Sponza_FlagPole_roughness.tga b/deploy/data/sponza/Sponza_FlagPole_roughness.tga new file mode 100644 index 0000000..229a84c --- /dev/null +++ b/deploy/data/sponza/Sponza_FlagPole_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a078fdbd0da1379235e9061f60ea8674e1a97f3f09b5f0877025431ac76448d0 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Floor_diffuse.tga b/deploy/data/sponza/Sponza_Floor_diffuse.tga new file mode 100644 index 0000000..4bb07cf --- /dev/null +++ b/deploy/data/sponza/Sponza_Floor_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b050223b50846b5a18df81e7fb686a182403801ba6ebd01524962440c89c8f7 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Floor_normal.tga b/deploy/data/sponza/Sponza_Floor_normal.tga new file mode 100644 index 0000000..19eefea --- /dev/null +++ b/deploy/data/sponza/Sponza_Floor_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90197f561e5bee113e32d9c15960b6a83a4ba7d5126561d7145234e4ccd8d73c +size 4194348 diff --git a/deploy/data/sponza/Sponza_Floor_roughness.tga b/deploy/data/sponza/Sponza_Floor_roughness.tga new file mode 100644 index 0000000..df3f41e --- /dev/null +++ b/deploy/data/sponza/Sponza_Floor_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:706c1598e406badaf5677aa8a2d5e7362479ac8a77dcef440844089ee954e45b +size 1048620 diff --git a/deploy/data/sponza/Sponza_Roof_diffuse.tga b/deploy/data/sponza/Sponza_Roof_diffuse.tga new file mode 100644 index 0000000..daa991c --- /dev/null +++ b/deploy/data/sponza/Sponza_Roof_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2393198434201e294dacecc2b2c8909d20d38d7b68cd3c320bf6968f6b025d02 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Roof_normal.tga b/deploy/data/sponza/Sponza_Roof_normal.tga new file mode 100644 index 0000000..da4021c --- /dev/null +++ b/deploy/data/sponza/Sponza_Roof_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c662604d5e305be882c2c86d0f73d88a0a5173b3e082c6ff3cb69db8fd004796 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Roof_roughness.tga b/deploy/data/sponza/Sponza_Roof_roughness.tga new file mode 100644 index 0000000..eac510f --- /dev/null +++ b/deploy/data/sponza/Sponza_Roof_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28e8f7740700de5a16002afea65a77c64bd0d728fcfa3b398cb2dd0a21577457 +size 1048620 diff --git a/deploy/data/sponza/Sponza_Thorn_diffuse.tga b/deploy/data/sponza/Sponza_Thorn_diffuse.tga new file mode 100644 index 0000000..4caaee3 --- /dev/null +++ b/deploy/data/sponza/Sponza_Thorn_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52fb7426545675b27774589ec910ca8bb4ec710db06d12d9d89348ef9c49e26f +size 4194348 diff --git a/deploy/data/sponza/Sponza_Thorn_normal.tga b/deploy/data/sponza/Sponza_Thorn_normal.tga new file mode 100644 index 0000000..d99f82c --- /dev/null +++ b/deploy/data/sponza/Sponza_Thorn_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36bfc8c0b515f36ce8dd5f4466af9e6a099aeff9966a03bd6e38bd0d1a3bdaf1 +size 4194348 diff --git a/deploy/data/sponza/Sponza_Thorn_roughness.tga b/deploy/data/sponza/Sponza_Thorn_roughness.tga new file mode 100644 index 0000000..4c60bbd --- /dev/null +++ b/deploy/data/sponza/Sponza_Thorn_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad1ea4d08b4a52f5eb28e8968b01991ff9bcf990e71d4e5cf19b7edfaa92c887 +size 1048620 diff --git a/deploy/data/sponza/VaseHanging_diffuse.tga b/deploy/data/sponza/VaseHanging_diffuse.tga new file mode 100644 index 0000000..d083b0d --- /dev/null +++ b/deploy/data/sponza/VaseHanging_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31e4bf92c43cc742638df84739d3e95925fd7756c14081c977b7c30aee023fba +size 4194348 diff --git a/deploy/data/sponza/VaseHanging_normal.tga b/deploy/data/sponza/VaseHanging_normal.tga new file mode 100644 index 0000000..240f1d4 --- /dev/null +++ b/deploy/data/sponza/VaseHanging_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19168f2f9cd7e3e8e4337569f1f89608ef1ec628a106e45d16b5b18255de2ec5 +size 4194348 diff --git a/deploy/data/sponza/VaseHanging_roughness.tga b/deploy/data/sponza/VaseHanging_roughness.tga new file mode 100644 index 0000000..815a135 --- /dev/null +++ b/deploy/data/sponza/VaseHanging_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:061b205040af9909c5987a66945d7dddd696afba22cbd7219810b807ff2c1c8f +size 1048620 diff --git a/deploy/data/sponza/VasePlant_diffuse.tga b/deploy/data/sponza/VasePlant_diffuse.tga new file mode 100644 index 0000000..5e4bbd2 --- /dev/null +++ b/deploy/data/sponza/VasePlant_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f44cccc4f549d919a4053d2fb725f392ffd9ecd638e5eeb1fa73a2db5c55aa1e +size 4194348 diff --git a/deploy/data/sponza/VasePlant_normal.tga b/deploy/data/sponza/VasePlant_normal.tga new file mode 100644 index 0000000..396201b --- /dev/null +++ b/deploy/data/sponza/VasePlant_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4d2395d2f7527bbb104a5502cd0c3a14100d3a21ab6f72c88355ddf43053aeb +size 4194348 diff --git a/deploy/data/sponza/VasePlant_roughness.tga b/deploy/data/sponza/VasePlant_roughness.tga new file mode 100644 index 0000000..ac974eb --- /dev/null +++ b/deploy/data/sponza/VasePlant_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb2f02ab52deccaa233f80683cd88cebe3d360e191c6f3ba0a9c34a2b62bd84f +size 1048620 diff --git a/deploy/data/sponza/VaseRound_diffuse.tga b/deploy/data/sponza/VaseRound_diffuse.tga new file mode 100644 index 0000000..ab2035d --- /dev/null +++ b/deploy/data/sponza/VaseRound_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccce7168176800cea718ac76b0b780934a85fd815eeedb50518dd6165d800056 +size 4194348 diff --git a/deploy/data/sponza/VaseRound_normal.tga b/deploy/data/sponza/VaseRound_normal.tga new file mode 100644 index 0000000..5532ebb --- /dev/null +++ b/deploy/data/sponza/VaseRound_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8925c2ddbd2043aeb7569687f46e4b9d84d73ae9b6c0d8ba0277be0e5970938b +size 4194348 diff --git a/deploy/data/sponza/VaseRound_roughness.tga b/deploy/data/sponza/VaseRound_roughness.tga new file mode 100644 index 0000000..224685e --- /dev/null +++ b/deploy/data/sponza/VaseRound_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5841baf2aace722b207b83f634f8664eccfb63dd27406eb4f2daddab979a6b32 +size 1048620 diff --git a/deploy/data/sponza/Vase_diffuse.tga b/deploy/data/sponza/Vase_diffuse.tga new file mode 100644 index 0000000..172aa9f --- /dev/null +++ b/deploy/data/sponza/Vase_diffuse.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:deea435bf6907d4c85c245ea62a35064e8cccd11ee206637036df7d158d33251 +size 4194348 diff --git a/deploy/data/sponza/Vase_normal.tga b/deploy/data/sponza/Vase_normal.tga new file mode 100644 index 0000000..5ba0eea --- /dev/null +++ b/deploy/data/sponza/Vase_normal.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ed257534665c2461ad1b6aa0cf98654425d910479ddd02a3134fcb16c6cce34 +size 4194348 diff --git a/deploy/data/sponza/Vase_roughness.tga b/deploy/data/sponza/Vase_roughness.tga new file mode 100644 index 0000000..cc63b6a --- /dev/null +++ b/deploy/data/sponza/Vase_roughness.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cc8317f84604d42ca90fa4e7adad72aab0995ca840e1b59ae37fa3789e8e17d +size 1048620 diff --git a/deploy/data/sponza/background.jpg b/deploy/data/sponza/background.jpg deleted file mode 100644 index 4654d33..0000000 --- a/deploy/data/sponza/background.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:71c21508d528da03a08390f6788df085b5ee214bdc537eb28c926bc6f80b4bed -size 221460 diff --git a/deploy/data/sponza/background_ddn.jpg b/deploy/data/sponza/background_ddn.jpg deleted file mode 100644 index f7eb677..0000000 --- a/deploy/data/sponza/background_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a144a818ee28358575c39958c5c49338c5fa24d3a60c0653cd93a96c6488a73 -size 181441 diff --git a/deploy/data/sponza/chain_texture.jpg b/deploy/data/sponza/chain_texture.jpg deleted file mode 100644 index c704e82..0000000 --- a/deploy/data/sponza/chain_texture.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:84bc3ae33b309adda45942f04933e5d8ffc31711217afb613dbf3cee4d47b4bb -size 60520 diff --git a/deploy/data/sponza/chain_texture_ddn.jpg b/deploy/data/sponza/chain_texture_ddn.jpg deleted file mode 100644 index 4068d66..0000000 --- a/deploy/data/sponza/chain_texture_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d795ffbf233015c010b723095a687a7ba1b8477ee85c384b90ad34ee3838cfbb -size 32648 diff --git a/deploy/data/sponza/copyright.txt b/deploy/data/sponza/copyright.txt new file mode 100644 index 0000000..a71ea1b --- /dev/null +++ b/deploy/data/sponza/copyright.txt @@ -0,0 +1,31 @@ +PBR textures for the Sponza model. +For more informations: www.alexandre-pestana.com + + +Original copyright: + +July 14, 2011 Morgan McGuire modified the model from Crytek's OBJ +export to correct some small errors. He computed bump maps from the +normal maps using normal2bump.cpp (since +MTL files expect height bumps, not normals), put the "mask" textures +into the alpha channel of the associated diffuse texture, cleaned up +noise in the masks, created the missing gi_flag.tga texture, and +removed the long untextured banner floating in the middle of the +atrium that appears in the file but in none of the published images of +the model. The banner is in banner.obj. + + + +http://www.crytek.com/cryengine/cryengine3/downloads + + +Sponza Model +August 19, 2010 +The Atrium Sponza Palace, Dubrovnik, is an elegant and improved model created by Frank Meinl. The original Sponza model was created by Marko Dabrovic in early 2002. Over the years, the Sponza Atrium scene has become one of the most popular 3D scenes for testing global illumination and radiosity due to it's specific architectural structure which is particularly complex for global illumination light. + +However, nowadays it is considered as a simple model, thus it was decided to crate a new model with highly improved appearance and scene complexity. It is donated to the public for radiosity and is represented in several different formats (3ds, Obj) for use with various commercial 3D applications and renderers. + + +Screenshot from the I3D paper +http://crytek.com/sites/default/files/20100301_lpv.pdf diff --git a/deploy/data/sponza/gi_flag.tga b/deploy/data/sponza/gi_flag.tga new file mode 100644 index 0000000..0b59a8a --- /dev/null +++ b/deploy/data/sponza/gi_flag.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15eb675ca87eb9989f377f4e399fde97b213890562d35d60a9d7aa7edcfb7b1d +size 49196 diff --git a/deploy/data/sponza/lion.jpg b/deploy/data/sponza/lion.jpg deleted file mode 100644 index a8d621c..0000000 --- a/deploy/data/sponza/lion.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a02775b85f91bb4066845e6a72d6b898ba08f53a7bff467fe605c59d0469363e -size 373716 diff --git a/deploy/data/sponza/lion_ddn.jpg b/deploy/data/sponza/lion_ddn.jpg deleted file mode 100644 index 60395ea..0000000 --- a/deploy/data/sponza/lion_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ee30e192ba5ee60a93f1d0c1d68f1c5bca32f503a6d1be4b80515f997da448d -size 252023 diff --git a/deploy/data/sponza/spnza_bricks_a_ddn.jpg b/deploy/data/sponza/spnza_bricks_a_ddn.jpg deleted file mode 100644 index be901cf..0000000 --- a/deploy/data/sponza/spnza_bricks_a_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ede75922579030cc5d89e1ef0920137bb7ef75147e511e95c91d5593da6c4a87 -size 159314 diff --git a/deploy/data/sponza/spnza_bricks_a_diff.jpg b/deploy/data/sponza/spnza_bricks_a_diff.jpg deleted file mode 100644 index 52f6b81..0000000 --- a/deploy/data/sponza/spnza_bricks_a_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e4317d554e56a4a368da51eb4735a4afa5b5ab944cd4fac3cff1ea2ec920c6a -size 366857 diff --git a/deploy/data/sponza/spnza_bricks_a_spec.jpg b/deploy/data/sponza/spnza_bricks_a_spec.jpg deleted file mode 100644 index 2f8a15e..0000000 --- a/deploy/data/sponza/spnza_bricks_a_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8218f69bb29cdbb0fb0eb2befb58fc4e0619fec18a5bd00a0f62e8dcbf221fb4 -size 296434 diff --git a/deploy/data/sponza/sponza_arch_ddn.jpg b/deploy/data/sponza/sponza_arch_ddn.jpg deleted file mode 100644 index b53be67..0000000 --- a/deploy/data/sponza/sponza_arch_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e9924b75178787cbaec0be13fc214f9913102604c775e182ceb15754387ba3b5 -size 98854 diff --git a/deploy/data/sponza/sponza_arch_diff.jpg b/deploy/data/sponza/sponza_arch_diff.jpg deleted file mode 100644 index ee3e504..0000000 --- a/deploy/data/sponza/sponza_arch_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:165a93ac306ec005028d5e981535b185e96920e5647cf146a4b3b186da4dba7a -size 338608 diff --git a/deploy/data/sponza/sponza_arch_spec.jpg b/deploy/data/sponza/sponza_arch_spec.jpg deleted file mode 100644 index 6e0ae78..0000000 --- a/deploy/data/sponza/sponza_arch_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4378cfeda2d5065bbf68367eb570608c7ac852d4130a164cafec76a7c4c9fbfa -size 288147 diff --git a/deploy/data/sponza/sponza_ceiling_a_diff.jpg b/deploy/data/sponza/sponza_ceiling_a_diff.jpg deleted file mode 100644 index c49ea76..0000000 --- a/deploy/data/sponza/sponza_ceiling_a_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c0837816e645b4b68c5ffb2781fcabef759142e6413f147d72b3d4f75d29150 -size 305420 diff --git a/deploy/data/sponza/sponza_ceiling_a_spec.jpg b/deploy/data/sponza/sponza_ceiling_a_spec.jpg deleted file mode 100644 index dc74e26..0000000 --- a/deploy/data/sponza/sponza_ceiling_a_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d73c686345e17bd24bba7a426ccf9670c69c3c0204bdc55012aa06c0a6ffca8 -size 303721 diff --git a/deploy/data/sponza/sponza_column_a_ddn.jpg b/deploy/data/sponza/sponza_column_a_ddn.jpg deleted file mode 100644 index 813e0fe..0000000 --- a/deploy/data/sponza/sponza_column_a_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe102abf9b3528cf865467509ec84f410adf49ddd94a7aad798146ae72024c82 -size 252886 diff --git a/deploy/data/sponza/sponza_column_a_diff.jpg b/deploy/data/sponza/sponza_column_a_diff.jpg deleted file mode 100644 index 96cbcf5..0000000 --- a/deploy/data/sponza/sponza_column_a_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:28d85264f4af85047ea2a0502ab19b1639c0983ec6d0415fc20b6badb4387ab5 -size 336229 diff --git a/deploy/data/sponza/sponza_column_a_spec.jpg b/deploy/data/sponza/sponza_column_a_spec.jpg deleted file mode 100644 index 39a2108..0000000 --- a/deploy/data/sponza/sponza_column_a_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d9293b8c006a4bff56f2f931b3f455cbb7dc2afc7ff7185c28c75f6713fd8fb -size 317628 diff --git a/deploy/data/sponza/sponza_column_b_ddn.jpg b/deploy/data/sponza/sponza_column_b_ddn.jpg deleted file mode 100644 index 11cab3b..0000000 --- a/deploy/data/sponza/sponza_column_b_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:26deb98e9355c876a6954340c7f6a1152b96e82f7cbff648f6e805e7482445a1 -size 299910 diff --git a/deploy/data/sponza/sponza_column_b_diff.jpg b/deploy/data/sponza/sponza_column_b_diff.jpg deleted file mode 100644 index ea33f1b..0000000 --- a/deploy/data/sponza/sponza_column_b_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fada637fa1690c6b7ee7418cc8a32dafb99eee0e0322c935fbb4803753199307 -size 416387 diff --git a/deploy/data/sponza/sponza_column_b_spec.jpg b/deploy/data/sponza/sponza_column_b_spec.jpg deleted file mode 100644 index 54182d4..0000000 --- a/deploy/data/sponza/sponza_column_b_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ca3d5b741f7597c447abbaa4e1a4133661f83484855a03f99ea2053505e09cfb -size 317559 diff --git a/deploy/data/sponza/sponza_column_c_ddn.jpg b/deploy/data/sponza/sponza_column_c_ddn.jpg deleted file mode 100644 index b6a21eb..0000000 --- a/deploy/data/sponza/sponza_column_c_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e39b23216a8f796f572e3237a43fc33fa1b9f3c2d43dd293e4bc904a52b7fed -size 321554 diff --git a/deploy/data/sponza/sponza_column_c_diff.jpg b/deploy/data/sponza/sponza_column_c_diff.jpg deleted file mode 100644 index dae7f45..0000000 --- a/deploy/data/sponza/sponza_column_c_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f179f0279f6904de4bf74e5438426995621bf6e1178ea14b747ad8ebe1f4de8d -size 441261 diff --git a/deploy/data/sponza/sponza_column_c_spec.jpg b/deploy/data/sponza/sponza_column_c_spec.jpg deleted file mode 100644 index 0117623..0000000 --- a/deploy/data/sponza/sponza_column_c_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:27794665e72f3ac577d95bc47d51d27d7d51d6a668c761b891013918d8504f7a -size 364839 diff --git a/deploy/data/sponza/sponza_curtain_blue_diff.jpg b/deploy/data/sponza/sponza_curtain_blue_diff.jpg deleted file mode 100644 index bba5e07..0000000 --- a/deploy/data/sponza/sponza_curtain_blue_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f1b6094ca8aa88d824a01c1115c029138d612b5b046ffafc7a998c2f732151ac -size 2131808 diff --git a/deploy/data/sponza/sponza_curtain_diff.jpg b/deploy/data/sponza/sponza_curtain_diff.jpg deleted file mode 100644 index 51db9bf..0000000 --- a/deploy/data/sponza/sponza_curtain_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:239e87923d98e7d722c08290f567633f817b1868eaa4c2eb0fe229c3192b19b1 -size 2047994 diff --git a/deploy/data/sponza/sponza_curtain_green_diff.jpg b/deploy/data/sponza/sponza_curtain_green_diff.jpg deleted file mode 100644 index fcea1c7..0000000 --- a/deploy/data/sponza/sponza_curtain_green_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2df9ab155f39ff901d41bdcab0e2ef5a8c591ab7cf936021964f51fb5fdcdffd -size 1982011 diff --git a/deploy/data/sponza/sponza_details_diff.jpg b/deploy/data/sponza/sponza_details_diff.jpg deleted file mode 100644 index bccaf42..0000000 --- a/deploy/data/sponza/sponza_details_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8bbb9625e7b64669827272575d7ec3a144c419edaa7ec621478457538a23be79 -size 201736 diff --git a/deploy/data/sponza/sponza_details_spec.jpg b/deploy/data/sponza/sponza_details_spec.jpg deleted file mode 100644 index 7f4f39d..0000000 --- a/deploy/data/sponza/sponza_details_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03db4c5213f000078ec35f9ca404e99e026a9016d8b403eed66b47cbeb40f81d -size 301578 diff --git a/deploy/data/sponza/sponza_fabric_blue_diff.jpg b/deploy/data/sponza/sponza_fabric_blue_diff.jpg deleted file mode 100644 index 00a12c4..0000000 --- a/deploy/data/sponza/sponza_fabric_blue_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d923b7e955cf16b910ef4d5df33f312597ec9d6dd94866a5863ea3a9454dfd52 -size 430283 diff --git a/deploy/data/sponza/sponza_fabric_diff.jpg b/deploy/data/sponza/sponza_fabric_diff.jpg deleted file mode 100644 index 2f7091b..0000000 --- a/deploy/data/sponza/sponza_fabric_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0a448878d89ddb8035242ab5452af1ffc8d6979b4f10b343551c9389b2c6097 -size 466634 diff --git a/deploy/data/sponza/sponza_fabric_green_diff.jpg b/deploy/data/sponza/sponza_fabric_green_diff.jpg deleted file mode 100644 index ab67231..0000000 --- a/deploy/data/sponza/sponza_fabric_green_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c41642a8e47950d92abaafc6de5f8b8374d16f3868a27549082cf1fe9724735b -size 435794 diff --git a/deploy/data/sponza/sponza_fabric_spec.jpg b/deploy/data/sponza/sponza_fabric_spec.jpg deleted file mode 100644 index 90b1c4a..0000000 --- a/deploy/data/sponza/sponza_fabric_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ee375ff556647ab24725b210eed05f99caaa1218a36f3a18efc6fa94f570176 -size 418902 diff --git a/deploy/data/sponza/sponza_flagpole_diff.jpg b/deploy/data/sponza/sponza_flagpole_diff.jpg deleted file mode 100644 index 67c9c15..0000000 --- a/deploy/data/sponza/sponza_flagpole_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e17023ab9879ecde5b216cf34c1ef399d20c58cc57a5a254d7fa9eb2e4e04785 -size 248780 diff --git a/deploy/data/sponza/sponza_flagpole_spec.jpg b/deploy/data/sponza/sponza_flagpole_spec.jpg deleted file mode 100644 index 1f1e7ad..0000000 --- a/deploy/data/sponza/sponza_flagpole_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4b36b4e13e770fe9e4920b091918a3e5c6e62e40dda9b595321806124fa0df49 -size 360542 diff --git a/deploy/data/sponza/sponza_floor_a_ddn.jpg b/deploy/data/sponza/sponza_floor_a_ddn.jpg deleted file mode 100644 index ee33e8f..0000000 --- a/deploy/data/sponza/sponza_floor_a_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:915b62499d589d04b4146ff39d47f1b8e154bcc98dd798ddb7c23809683500bb -size 102390 diff --git a/deploy/data/sponza/sponza_floor_a_diff.jpg b/deploy/data/sponza/sponza_floor_a_diff.jpg deleted file mode 100644 index ef5f60e..0000000 --- a/deploy/data/sponza/sponza_floor_a_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f1ebc760034fe7be2f92f3a1c5ab25d20a182c83f442c4f7f8501b5181b99b6e -size 344863 diff --git a/deploy/data/sponza/sponza_floor_a_spec.jpg b/deploy/data/sponza/sponza_floor_a_spec.jpg deleted file mode 100644 index 76429e4..0000000 --- a/deploy/data/sponza/sponza_floor_a_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:087c3f6399daf515500268db4cb2bdd9bb5f999c5a476175b67dc8aff892fa36 -size 224829 diff --git a/deploy/data/sponza/sponza_roof_diff.jpg b/deploy/data/sponza/sponza_roof_diff.jpg deleted file mode 100644 index e8f6a74..0000000 --- a/deploy/data/sponza/sponza_roof_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8c53ef97c23706f62df7088d01b56b2ae608f33eba44898a32761092ef2b4e0 -size 552593 diff --git a/deploy/data/sponza/sponza_thorn_ddn.jpg b/deploy/data/sponza/sponza_thorn_ddn.jpg deleted file mode 100644 index 8e1a7c3..0000000 --- a/deploy/data/sponza/sponza_thorn_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14b7dcb2728c3c19f6e7fd60005ff89f32fafbf294c6a0c484faf7c10c23dd4e -size 41072 diff --git a/deploy/data/sponza/sponza_thorn_diff.jpg b/deploy/data/sponza/sponza_thorn_diff.jpg deleted file mode 100644 index 6df969d..0000000 --- a/deploy/data/sponza/sponza_thorn_diff.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d9bafc41554f6caae32909049a12b0ace082cba46402314ab5cbd9ba682406c -size 82425 diff --git a/deploy/data/sponza/vase_ddn.jpg b/deploy/data/sponza/vase_ddn.jpg deleted file mode 100644 index 70bedf1..0000000 --- a/deploy/data/sponza/vase_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30d24dd383b45ca98d26ea8a3c273b59108cf8e7423d4fc2ac93a7b5c19575d6 -size 418483 diff --git a/deploy/data/sponza/vase_dif.jpg b/deploy/data/sponza/vase_dif.jpg deleted file mode 100644 index 27c3ff1..0000000 --- a/deploy/data/sponza/vase_dif.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90453a5d13cce6abe874181c78b12f1d189f63564957c9b55f240e5e483c3d25 -size 341785 diff --git a/deploy/data/sponza/vase_hanging.jpg b/deploy/data/sponza/vase_hanging.jpg deleted file mode 100644 index 1b76c28..0000000 --- a/deploy/data/sponza/vase_hanging.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:55df8c4b921dd60ec9a164c28b01480def625989e8badb33f195663c44d29320 -size 191476 diff --git a/deploy/data/sponza/vase_plant.jpg b/deploy/data/sponza/vase_plant.jpg deleted file mode 100644 index 2ac4b13..0000000 --- a/deploy/data/sponza/vase_plant.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6618e5e4c1f5768cdf8eec7e3180cbc81b2fb8ec00cd734696db65ed9885ea24 -size 182011 diff --git a/deploy/data/sponza/vase_round.jpg b/deploy/data/sponza/vase_round.jpg deleted file mode 100644 index 5c9f7b4..0000000 --- a/deploy/data/sponza/vase_round.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e03fb62b74f59e98b1e9d1a62cabfd385fa36a91c38ce6976bedc7e7bc5ff027 -size 367075 diff --git a/deploy/data/sponza/vase_round_ddn.jpg b/deploy/data/sponza/vase_round_ddn.jpg deleted file mode 100644 index 50195a4..0000000 --- a/deploy/data/sponza/vase_round_ddn.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c27f89c31930664d8b3d8a9dfa0804eb08a6fb3f18b75b9014f11b653b67b946 -size 108210 diff --git a/deploy/data/sponza/vase_round_spec.jpg b/deploy/data/sponza/vase_round_spec.jpg deleted file mode 100644 index 873f140..0000000 --- a/deploy/data/sponza/vase_round_spec.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86599ab6e0d1fa21bc6ab25e21ea913328ff7ce6eb8450cebf9194c93aec6fe3 -size 271638 diff --git a/deploy/data/sword.mtl b/deploy/data/sword.mtl index c5cf077..88e8262 100644 --- a/deploy/data/sword.mtl +++ b/deploy/data/sword.mtl @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c4a6427eb082c3e19637ebdc5fb49699cdbc6a9f7e5a0b0a814036794779bc10 -size 100 +oid sha256:21173927cb0e81a2acbc0e4e8382293c08d8e633f47caa3ce76f870b56b6d561 +size 129 diff --git a/src/engine.cpp b/src/engine.cpp index 05c6e0b..ecf45d8 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -12,6 +12,7 @@ #include "sparrowshell/sparrowshell.h" #include "scene/physicsdebugnode.h" #include "imgui/imgui.h" +#include "tools/loader.h" Engine::Engine() : m_window(nullptr), diff --git a/src/scene/gui/backgroundnode.cpp b/src/scene/gui/backgroundnode.cpp index fcdf5be..7358055 100644 --- a/src/scene/gui/backgroundnode.cpp +++ b/src/scene/gui/backgroundnode.cpp @@ -7,7 +7,7 @@ #include "glm/vec3.hpp" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" BackGroundNode::BackGroundNode(glm::vec2 dimension, glm::vec3 color, float opacity,float depth): m_dimension(dimension), @@ -18,9 +18,9 @@ BackGroundNode::BackGroundNode(glm::vec2 dimension, glm::vec3 color, float opaci { Mesh* mesh = new Mesh("background"); mesh->addRectangle2D(glm::vec2(0),dimension); - PhongMaterial *mat = new PhongMaterial(); - mat->diffuse = color; - mat->m_opacity = opacity; + PBRMaterial *mat = new PBRMaterial(); + mat->albedo = color; + mat->opacity = opacity; mesh->setMaterial(mat); mesh->setDepth(depth); mesh->initGL(); @@ -30,13 +30,13 @@ BackGroundNode::BackGroundNode(glm::vec2 dimension, glm::vec3 color, float opaci void BackGroundNode::update(){ if(m_color_updated){ - PhongMaterial* mat = (PhongMaterial*) m_mesh->getGeometryNode()->mesh->getMaterial(); - mat->diffuse = m_color; + PBRMaterial* mat = (PBRMaterial*) m_mesh->getGeometryNode()->mesh->getMaterial(); + mat->albedo = m_color; m_color_updated = false; } if(m_opacity_updated){ - PhongMaterial* mat = (PhongMaterial*) m_mesh->getGeometryNode()->mesh->getMaterial(); - mat->m_opacity = m_opacity; + PBRMaterial* mat = (PBRMaterial*) m_mesh->getGeometryNode()->mesh->getMaterial(); + mat->opacity = m_opacity; m_opacity_updated = false; } GUINode::update(); diff --git a/src/scene/gui/buttonnode.cpp b/src/scene/gui/buttonnode.cpp index 94e2520..ca7d0f8 100644 --- a/src/scene/gui/buttonnode.cpp +++ b/src/scene/gui/buttonnode.cpp @@ -10,7 +10,7 @@ #include "SparrowRenderer/sparrowrenderer.h" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" #include "sparrowshell/sparrowshell.h" #include "tools/font.h" diff --git a/src/scene/gui/labelnode.cpp b/src/scene/gui/labelnode.cpp index ed72a00..d38a80f 100644 --- a/src/scene/gui/labelnode.cpp +++ b/src/scene/gui/labelnode.cpp @@ -3,7 +3,7 @@ #include "resourcemanager.h" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" #include @@ -64,8 +64,8 @@ void LabelNode::update(){ } if(m_color_updated){ if(m_text){ - PhongMaterial* mat = (PhongMaterial*) m_text->m_geometry.mesh->getMaterial(); - mat->diffuse = m_color; + PBRMaterial* mat = (PBRMaterial*) m_text->m_geometry.mesh->getMaterial(); + mat->albedo = m_color; m_color_updated = false; } } diff --git a/src/scene/gui/scrollbarnode.cpp b/src/scene/gui/scrollbarnode.cpp index 2abd15e..875c12a 100644 --- a/src/scene/gui/scrollbarnode.cpp +++ b/src/scene/gui/scrollbarnode.cpp @@ -5,7 +5,7 @@ #include "scene/meshnode.h" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" #include "sparrowshell/sparrowshell.h" ScrollBarNode::ScrollBarNode(glm::vec2 dimension, glm::vec3 bar_color): @@ -22,9 +22,9 @@ ScrollBarNode::ScrollBarNode(glm::vec2 dimension, glm::vec3 bar_color): { Mesh* mesh = new Mesh("scrollbar"); mesh->addRectangle2D(glm::vec2(0),m_dimension); - PhongMaterial* mat = new PhongMaterial(); - mat->diffuse = m_bar_color; - mat->m_opacity = 0.8; + PBRMaterial* mat = new PBRMaterial(); + mat->albedo = m_bar_color; + mat->opacity = 0.8; mesh->setMaterial(mat); mesh->setDepth(SparrowShell::SHELL_DEPTH+1); mesh->initGL(); @@ -63,8 +63,8 @@ void ScrollBarNode::update() } if(m_bar_color_updated) { - PhongMaterial* mat = (PhongMaterial*) m_bar->getGeometryNode()->mesh->getMaterial(); - mat->diffuse = m_bar_color; + PBRMaterial* mat = (PBRMaterial*) m_bar->getGeometryNode()->mesh->getMaterial(); + mat->albedo = m_bar_color; m_bar_color_updated = false; } if(needTransformUpdate) diff --git a/src/scene/gui/scrollbarnode.h b/src/scene/gui/scrollbarnode.h index c6b1348..4f8d6a4 100644 --- a/src/scene/gui/scrollbarnode.h +++ b/src/scene/gui/scrollbarnode.h @@ -10,12 +10,12 @@ class ScrollBarNode : public GUINode protected: glm::vec2 m_dimension; glm::vec2 m_bar_position; - int m_index_position; - int m_bar_size; - int m_total_size; glm::vec2 m_bar_dimension; glm::vec3 m_bar_color; bool m_bar_color_updated; + int m_index_position; + int m_bar_size; + int m_total_size; MeshNode* m_bar; bool m_bar_resized; bool m_bar_moved; diff --git a/src/scene/gui/textinputnode.cpp b/src/scene/gui/textinputnode.cpp index cd8cb64..1103a7d 100644 --- a/src/scene/gui/textinputnode.cpp +++ b/src/scene/gui/textinputnode.cpp @@ -17,8 +17,8 @@ TextInputNode::TextInputNode(glm::vec2 dimension): // Font *shellfont = RESOURCE_GET(Font,"shellfont"); Mesh* mesh = new Mesh(); mesh->addRectangle2D(glm::vec2(0),glm::vec2(2, m_font_size)); - PhongMaterial* mat = new PhongMaterial(); - mat->diffuse = glm::vec3(1,1,1); + PBRMaterial* mat = new PBRMaterial(); + mat->albedo = glm::vec3(1,1,1); mesh->setMaterial(mat); mesh->setDepth(30); mesh->initGL(); diff --git a/src/scene/physicsdebugnode.cpp b/src/scene/physicsdebugnode.cpp index e4492e8..d12f02c 100644 --- a/src/scene/physicsdebugnode.cpp +++ b/src/scene/physicsdebugnode.cpp @@ -1,16 +1,11 @@ #include "physicsdebugnode.h" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" PhysicsDebugNode::PhysicsDebugNode() : MeshNode(new Mesh()) { - PhongMaterial* mat = new PhongMaterial(); - mat->emission = glm::vec3(1, 0, 0); - mat->diffuse = glm::vec3(0); - mat->specular = glm::vec3(0); - - m_geometry.mesh->setMaterial(mat); + m_geometry.mesh->setMaterial(new PBRMaterial()); m_geometry.mesh->setPrimitiveType(GL_LINES); m_geometry.mesh->setWireframe(true); diff --git a/src/scene/playercharacternode.cpp b/src/scene/playercharacternode.cpp index 0567efe..0bc2edf 100644 --- a/src/scene/playercharacternode.cpp +++ b/src/scene/playercharacternode.cpp @@ -55,13 +55,14 @@ void FirstPersonCamera::setUpVector(const glm::vec3 &up) } const float WALK_SPEED = 5.f; -const float PLAYER_RADIUS = 0.30f; -const float PLAYER_HEIGHT = 1.75f; -const float EYES_OFFSET = 0.775f; +const float TORSO_RADIUS = 0.30f; +const float TORSO_HEIGHT = 0.8f; +const float LEGS_HEIGHT = 1.f; +const float EYES_OFFSET = 0.3f; const float JUMP_VELOCITY = 5.f; -const float EPSILON = 1.5f; PlayerCharacterNode::PlayerCharacterNode(bool noClip) : + m_jumping(false), m_noclipMode(noClip), m_inputActions({NO_ACTION, NO_ACTION, NO_ACTION, NO_ACTION, NO_ACTION}) { @@ -70,7 +71,7 @@ PlayerCharacterNode::PlayerCharacterNode(bool noClip) : m_playerLightNode->m_parent = this; // Create the shape - btCollisionShape *shape = new btCapsuleShape(PLAYER_RADIUS, PLAYER_HEIGHT); + btCollisionShape *shape = new btCapsuleShape(TORSO_RADIUS, TORSO_HEIGHT); // Add mass btVector3 localInertia; @@ -114,6 +115,8 @@ void PlayerCharacterNode::setPosition(float x, float y, float z) void PlayerCharacterNode::update() { Input *input = getEngine().getInput(); + float deltaTime = getEngine().getDeltaTime(); + // get events int walk = 0; int strafe = 0; @@ -140,7 +143,7 @@ void PlayerCharacterNode::update() // update camera position btVector3 pos = m_rigidBody->getCenterOfMassPosition(); - m_playerLight->setPos(glm::vec3(pos.x(), pos.y()+PLAYER_HEIGHT/2.f, pos.z())); + m_playerLight->setPos(glm::vec3(pos.x(), pos.y()+TORSO_HEIGHT/2.f, pos.z())); m_fpsCamera.moveTo(glm::vec3(pos.x(), pos.y()+EYES_OFFSET, pos.z())); // update body movement @@ -174,9 +177,9 @@ void PlayerCharacterNode::update() { bool onGround = false; btVector3 start(pos); - start.setY(start.y() - PLAYER_HEIGHT/2.f); - btVector3 end(pos); - end.setY(end.y() - EPSILON); + start.setY(start.y() - TORSO_HEIGHT/2.f); + btVector3 end(start); + end.setY(end.y() - (LEGS_HEIGHT*2.f)); btCollisionWorld::ClosestRayResultCallback RayCallback(start, end); getEngine().getPhysics()->rayTest(start, end, RayCallback); float controlRatio = 0.f; // 1 = total control, 0 = no control, can be seen as a slipperiness factor @@ -186,11 +189,32 @@ void PlayerCharacterNode::update() btVector3 normal = RayCallback.m_hitNormalWorld; float slope = normal.dot(btVector3(0, 1, 0)); controlRatio = slope > 0.4f ? 0.2f * slope : 0.f; + + if(onGround) + { + float displacement = RayCallback.m_hitPointWorld.y() - (end.y() + start.y())/2.f; + if(abs(displacement) > 0.1f) + pos.setY(pos.y() + deltaTime*0.01f*(displacement > 0 ? 1 : -1)); + else + pos.setY(pos.y() + displacement/4); + btTransform transform = btTransform::getIdentity(); + transform.setOrigin(pos); + m_rigidBody->setWorldTransform(transform); + } + if(jump) + m_jumping = true; + else + m_jumping = false; } btVector3 newVelocity = velocity*(1.f-controlRatio) + targetVelocity*controlRatio; - if(jump && onGround) - newVelocity.setY(JUMP_VELOCITY); + if(onGround) + { + if(m_jumping) + newVelocity.setY(JUMP_VELOCITY); + else + newVelocity.setY(0); + } m_rigidBody->setLinearVelocity(newVelocity); } m_playerLightNode->update(); diff --git a/src/scene/playercharacternode.h b/src/scene/playercharacternode.h index 865e2f9..e83659c 100644 --- a/src/scene/playercharacternode.h +++ b/src/scene/playercharacternode.h @@ -38,6 +38,7 @@ class PlayerCharacterNode : public CameraNode btRigidBody* m_rigidBody; FirstPersonCamera m_fpsCamera; + bool m_jumping; bool m_noclipMode; btVector3 m_noclip_pos; diff --git a/src/scene/textnode.h b/src/scene/textnode.h index b78cd03..eaafe73 100644 --- a/src/scene/textnode.h +++ b/src/scene/textnode.h @@ -4,7 +4,7 @@ #include "meshnode.h" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" #include "glm/vec2.hpp" diff --git a/src/sparrowshell/shellscrollbar.cpp b/src/sparrowshell/shellscrollbar.cpp index 192beff..f88fb40 100644 --- a/src/sparrowshell/shellscrollbar.cpp +++ b/src/sparrowshell/shellscrollbar.cpp @@ -1,7 +1,7 @@ #include "shellscrollbar.h" #include "sparrowshell.h" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" #include "scene/meshnode.h" #include "tools/utils.h" #include diff --git a/src/sparrowshell/sparrowshell.cpp b/src/sparrowshell/sparrowshell.cpp index 758c4bf..7f4477a 100644 --- a/src/sparrowshell/sparrowshell.cpp +++ b/src/sparrowshell/sparrowshell.cpp @@ -9,7 +9,7 @@ #include "scriptnode.h" #include "SparrowRenderer/mesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" #include "tools/font.h" #include "resourcemanager.h" @@ -33,8 +33,8 @@ SparrowShell::SparrowShell(sf::Window* window): setPosition(glm::vec2(0)); setVisible(false); - Font* fonte_des_neiges = Loader::loadFont("data/consolas.fnt","consolas.png"); - RESOURCE_ADD(fonte_des_neiges,Font,"shellfont"); + Font* fonte_des_neiges = Loader::loadFont("data/font/consolas.fnt", "font/consolas.png"); + RESOURCE_ADD(fonte_des_neiges, Font, "shellfont"); //Create mesh for background m_background = new BackGroundNode(m_dimension,glm::vec3(0.1,0.1,0.1),0.75,SHELL_DEPTH); diff --git a/src/test/main.cpp b/src/test/main.cpp index 51e8c57..2ffaf5a 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -2,8 +2,9 @@ #include #include #include +#include #include -#include +#include #include #include #include @@ -87,12 +88,9 @@ void generateTerrain(SceneTree *scene, btDiscreteDynamicsWorld *world) GraphicalContainerNode* terrainContainer = new GraphicalContainerNode(); scene->getRootObject()->addChild(terrainContainer); TestGen gen; - PhongMaterial *mat = new PhongMaterial(); - mat->shininess = 5.f; - mat->diffuse = glm::vec3(0.1f, 0.4f, 0.2f); - mat->specular = glm::vec3(0.1f); + PBRMaterial *mat = new PBRMaterial(); + mat->albedo = glm::vec3(0.1f, 0.4f, 0.2f); - mat->emission = glm::vec3(0.5f, 0.1f, 0.1f); for(int x=-3; x<3; ++x) for(int y=-2; y<2; ++y) for(int z=-3; z<3; ++z) @@ -195,7 +193,7 @@ public: //player m_player = new PlayerCharacterNode(false); m_player->setInputs(DefaultKeysMap::MOVE_FORWARD, DefaultKeysMap::MOVE_BACKWARD, DefaultKeysMap::STRAFE_LEFT, DefaultKeysMap::STRAFE_RIGHT, DefaultKeysMap::JUMP, DefaultKeysMap::TOGGLE_NOCLIP); - SceneTree* scene = RESOURCE_GET(SceneTree,m_demo_scene); + SceneTree* scene = RESOURCE_GET(SceneTree, m_demo_scene); scene->getRootObject()->addChild(m_player); scene->setMainCamera(m_player); @@ -204,7 +202,12 @@ public: scene->getRootObject()->addChild(potator); //lighting - LightNode *ambientLight = new LightNode(new AmbientLight(glm::vec3(0.05f))); + Texture* skyboxTexture = RESOURCE_GET(Texture, "skybox"); + Texture* ambientTexture = RESOURCE_GET(Texture, "ambient"); + LightNode *ambientLight = new LightNode(new AmbientLight(ambientTexture, skyboxTexture)); + + DeferredPipeline* pipeline = dynamic_cast(scene->getPipeline()); + pipeline->setSkybox(RESOURCE_GET(Texture, "craterlake")); DirectionnalLight* sun = new DirectionnalLight(glm::vec3(5, 8, -2), glm::vec3(0.9f)); LightNode *sunLight = new LightNode(sun); @@ -315,6 +318,41 @@ int main(){ engine.createWindow("Sparrow Engine Demo", config->width, config->height, config->mode); engine.getWindow()->setVerticalSyncEnabled(config->vsync); + // opengl context is created, we can initialize the global textures used by the rendering pipeline + Image* img = Loader::loadImage("ibl_brdf_lut.png", 24, false); + AmbientLight::setBrdfLut(new Texture(img, false)); + delete img; + Image * imgs[6]; + imgs[0] = Loader::loadImage("skybox/craterlake_rt.tga", 24, false); // right + imgs[1] = Loader::loadImage("skybox/craterlake_lf.tga", 24, false); // left + imgs[2] = Loader::loadImage("skybox/craterlake_up.tga", 24, false); // top + imgs[3] = Loader::loadImage("skybox/craterlake_dn.tga", 24, false); // bottom + imgs[4] = Loader::loadImage("skybox/craterlake_ft.tga", 24, false); // front + imgs[5] = Loader::loadImage("skybox/craterlake_bk.tga", 24, false); // back + RESOURCE_ADD(new Texture(imgs), Texture, "craterlake"); + for(int i=0; i<6; ++i) + delete imgs[i]; + + imgs[0] = Loader::loadImage("skybox/1_posX.tga", 24, false); // right + imgs[1] = Loader::loadImage("skybox/2_negX.tga", 24, false); // left + imgs[2] = Loader::loadImage("skybox/3_posY.tga", 24, false); // top + imgs[3] = Loader::loadImage("skybox/4_negY.tga", 24, false); // bottom + imgs[4] = Loader::loadImage("skybox/5_posZ.tga", 24, false); // front + imgs[5] = Loader::loadImage("skybox/6_negZ.tga", 24, false); // back + RESOURCE_ADD(new Texture(imgs), Texture, "skybox"); + for(int i=0; i<6; ++i) + delete imgs[i]; + + imgs[0] = Loader::loadImage("ambient/1_posX.tga", 24, false); // right + imgs[1] = Loader::loadImage("ambient/2_negX.tga", 24, false); // left + imgs[2] = Loader::loadImage("ambient/3_posY.tga", 24, false); // top + imgs[3] = Loader::loadImage("ambient/4_negY.tga", 24, false); // bottom + imgs[4] = Loader::loadImage("ambient/5_posZ.tga", 24, false); // front + imgs[5] = Loader::loadImage("ambient/6_negZ.tga", 24, false); // back + RESOURCE_ADD(new Texture(imgs), Texture, "ambient"); + for(int i=0; i<6; ++i) + delete imgs[i]; + // engine.toggleMouseVisibility(); // setting up SparrowEngine diff --git a/src/test/potator.cpp b/src/test/potator.cpp index 0963e47..5421fd9 100644 --- a/src/test/potator.cpp +++ b/src/test/potator.cpp @@ -4,7 +4,7 @@ #include #include "scene/scenetree.h" #include "SparrowRenderer/parametricmesh.h" -#include "SparrowRenderer/phongmaterial.h" +#include "SparrowRenderer/pbrmaterial.h" #include "scene/meshnode.h" #include "tools/loader.h" #include "SparrowRenderer/texture.h" @@ -66,12 +66,11 @@ Potator::Potator(PlayerCharacterNode * player, m_cubeMesh->addTriangle(id+7, id+5, id+6); } - Image* wood = Loader::loadImage("woodbox.jpg", false); - PhongMaterial *mat = new PhongMaterial(); - mat->setTexture(PhongMaterial::DIFFUSE_SLOT, new Texture(wood), "wood_texture"); - mat->specular = glm::vec3(0.3f); - mat->shininess = 5.f; - mat->emission = glm::vec3(0.0f); + Image* wood = Loader::loadImage("woodbox.jpg", 24); + PBRMaterial *mat = new PBRMaterial(); + mat->setTexture(PBRMaterial::ALBEDO_SLOT, new Texture(wood), "wood_texture"); + mat->roughness = 0.8f; + mat->metallic = 0.1f; m_cubeMesh->setMaterial(mat); @@ -83,11 +82,10 @@ Potator::Potator(PlayerCharacterNode * player, m_cubeMass = cubeDim.x*cubeDim.y*cubeDim.z*density; // creating sphere - mat = new PhongMaterial(); - mat->diffuse = glm::vec3(0.1f); - mat->specular = glm::vec3(0.9f); - mat->shininess = 150.f; - mat->emission = glm::vec3(0.0f); + mat = new PBRMaterial(); + mat->albedo = glm::vec3(0.1f); + mat->roughness = 0.1f; + mat->metallic = 0.9f; SphereGenerator sphereGen; m_sphereMesh = sphereGen.generateGeodesicMesh(mat, 2, sphereRadius); diff --git a/src/tools/font.cpp b/src/tools/font.cpp index 8ce7723..98f9ac0 100644 --- a/src/tools/font.cpp +++ b/src/tools/font.cpp @@ -1,5 +1,5 @@ #include "font.h" -#include +#include #include "SparrowRenderer/mesh.h" #include "scene/textnode.h" @@ -38,10 +38,10 @@ TextNode* Font::getTextNode(std::string s, glm::vec3 color, float font_size,bool current_pos.x += charInfo.xadvance; } } - PhongMaterial *mat = new PhongMaterial(); + PBRMaterial *mat = new PBRMaterial(); // TODO : delete this material somewhere (garbage collector ?) - mat->setTexture(PhongMaterial::ALPHA_SLOT, m_tex, "font_texture"); - mat->diffuse = color; + mat->setTexture(PBRMaterial::ALPHA_SLOT, m_tex, "font_texture"); + mat->albedo = color; textmesh->setMaterial((Material*)mat); textmesh->initGL(); TextNode *text = new TextNode(textmesh,ws,font_size,visible); diff --git a/src/tools/loader.cpp b/src/tools/loader.cpp index db9c72e..bce4edf 100644 --- a/src/tools/loader.cpp +++ b/src/tools/loader.cpp @@ -6,7 +6,7 @@ #include "../resourcemanager.h" #include #include -#include +#include #include "SparrowRenderer/texture.h" #include "utils.h" #include "font.h" @@ -64,7 +64,7 @@ std::unordered_map* Loader::loadConfigFile(const std:: return configPtr; } -Image* Loader::loadImage(const std::string &filename, bool hasAlpha, bool reversed) +Image* Loader::loadImage(const std::string &filename, int depth, bool reversed) { sf::Image sfImg; bool ok = sfImg.loadFromFile(tex_directory+filename); @@ -73,19 +73,20 @@ Image* Loader::loadImage(const std::string &filename, bool hasAlpha, bool revers if(reversed) sfImg.flipVertically(); Image* img = new Image(); - img->depth = hasAlpha ? 32 : 24; + img->depth = depth; img->width = sfImg.getSize().x; img->height = sfImg.getSize().y; int size = img->width*img->height*(img->depth/8); img->allocate(size); const sf::Uint8 *pixels = sfImg.getPixelsPtr(); - if(hasAlpha) + if(depth == 32) memcpy(img->pixels.data(), pixels, size); else { + int bytesPerPixel = depth/8; sf::Uint8 *ptr = (sf::Uint8*)img->pixels.data(); for(int i=0; iwidth*img->height; ++i) - memcpy(ptr + i*3, pixels + i*4, 3); + memcpy(ptr + i*bytesPerPixel, pixels + i*4, bytesPerPixel); } return img; } @@ -133,7 +134,7 @@ Font* Loader::loadFont(const std::string &description_file, const std::string &t font->addCharInfo(id,char_info); } - Image* fucking_image_of_doom = loadImage(texture_file, true, false); + Image* fucking_image_of_doom = loadImage(texture_file, 32, false); if(fucking_image_of_doom == NULL) printf("can't load \"%s\".\n", texture_file.c_str()); Texture* texture = new Texture(fucking_image_of_doom, false); // mipmaps are doing a very bad job at interpolating alpha component @@ -155,8 +156,8 @@ std::vector Loader::loadMesh(const std::string &filename){ if(defaultMat == NULL) { - defaultMat = new PhongMaterial(); - RESOURCE_ADD(defaultMat,Material,"default"); + defaultMat = new PBRMaterial(); + RESOURCE_ADD(defaultMat, Material, "default"); } Material* currentMat = defaultMat; std::ifstream file(obj_directory + filename); @@ -260,8 +261,8 @@ std::vector Loader::loadMesh(const std::string &filename){ if(currentMat == NULL) { fprintf(stderr, "cannot find any material named : %s.\n", material_name.c_str()); - currentMat = new PhongMaterial(); - RESOURCE_ADD(currentMat,Material,material_name); + currentMat = new PBRMaterial(); + RESOURCE_ADD(currentMat, Material, material_name); } currentMesh->setMaterial(currentMat); currentMesh->setName(material_name); @@ -288,7 +289,7 @@ std::vector Loader::loadMesh(const std::string &filename){ Mesh* m = meshes[i]; if(m->normals.empty()) m->computeNormals(); - if(m->getFlags() & (1 << Mesh::MATERIAL_PHONG_NORMAL_MAP)) + if(m->getFlags() & (1 << Mesh::MATERIAL_PBR_NORMAL_MAP)) m->computeTangents(); m->mergeVertices(); } @@ -308,7 +309,7 @@ bool Loader::loadMTL(const std::string &filename) return false; } - PhongMaterial* mat = NULL; + PBRMaterial* mat = NULL; bool hasNormalMap = false; std::getline(file,line); @@ -329,63 +330,67 @@ bool Loader::loadMTL(const std::string &filename) } else if((tokens[0] == "newmtl") && tokens.size() == 2) { - mat = new PhongMaterial(); - RESOURCE_ADD(mat,Material,tokens[1]); + mat = new PBRMaterial(); + RESOURCE_ADD(mat, Material, tokens[1]); } - else if((tokens[0].compare("Ka") == 0) && tokens.size() == 4) + else if((tokens[0].compare("emission") == 0) && tokens.size() == 4) { mat->emission.r = std::stof(tokens[1]); mat->emission.g = std::stof(tokens[2]); mat->emission.b = std::stof(tokens[3]); } - else if(tokens[0].compare("Kd") == 0 && tokens.size() == 4) + else if(tokens[0].compare("albedo") == 0 && tokens.size() == 4) { - mat->diffuse.r = std::stof(tokens[1]); - mat->diffuse.g = std::stof(tokens[2]); - mat->diffuse.b = std::stof(tokens[3]); + mat->albedo.r = std::stof(tokens[1]); + mat->albedo.g = std::stof(tokens[2]); + mat->albedo.b = std::stof(tokens[3]); } - else if(tokens[0].compare("Ks") == 0 && tokens.size() == 4) + else if(tokens[0].compare("roughness") == 0 && tokens.size() == 2) { - mat->specular.r = std::stof(tokens[1]); - mat->specular.g = std::stof(tokens[2]); - mat->specular.b = std::stof(tokens[3]); + mat->roughness = std::stof(tokens[1]); } - else if(tokens[0].compare("Ns") == 0 && tokens.size() == 2) + else if(tokens[0].compare("metallic") == 0 && tokens.size() == 2) { - mat->shininess = std::stof(tokens[1]); + mat->metallic = std::stof(tokens[1]); } else if((tokens[0].substr(0,4) == "map_") && tokens.size() == 2) { - if(tokens[0].compare("map_Ka") == 0){ - mat->textures[PhongMaterial::EMISSION_SLOT] = RESOURCE_GET(Texture,tokens[1]); - if (mat->textures[PhongMaterial::EMISSION_SLOT] == NULL){ - mat->textures[PhongMaterial::EMISSION_SLOT] = new Texture(loadImage(tokens[1])); - RESOURCE_ADD(mat->textures[PhongMaterial::EMISSION_SLOT], Texture, tokens[1]); + if(tokens[0].compare("map_emission") == 0){ + mat->textures[PBRMaterial::EMISSION_SLOT] = RESOURCE_GET(Texture,tokens[1]); + if (mat->textures[PBRMaterial::EMISSION_SLOT] == NULL){ + mat->textures[PBRMaterial::EMISSION_SLOT] = new Texture(loadImage(tokens[1], 24)); + RESOURCE_ADD(mat->textures[PBRMaterial::EMISSION_SLOT], Texture, tokens[1]); } - } else if(tokens[0].compare("map_Kd") == 0) { - mat->textures[PhongMaterial::DIFFUSE_SLOT] = RESOURCE_GET(Texture,tokens[1]); - if (mat->textures[PhongMaterial::DIFFUSE_SLOT] == NULL){ - mat->textures[PhongMaterial::DIFFUSE_SLOT] = new Texture(loadImage(tokens[1])); - RESOURCE_ADD(mat->textures[PhongMaterial::DIFFUSE_SLOT],Texture,tokens[1]); + } else if(tokens[0].compare("map_albedo") == 0) { + mat->textures[PBRMaterial::ALBEDO_SLOT] = RESOURCE_GET(Texture,tokens[1]); + if (mat->textures[PBRMaterial::ALBEDO_SLOT] == NULL){ + mat->textures[PBRMaterial::ALBEDO_SLOT] = new Texture(loadImage(tokens[1])); + RESOURCE_ADD(mat->textures[PBRMaterial::ALBEDO_SLOT],Texture,tokens[1]); } - } else if(tokens[0].compare("map_Ks") == 0) { - mat->textures[PhongMaterial::SPECULAR_SLOT] = RESOURCE_GET(Texture,tokens[1]); - if (mat->textures[PhongMaterial::SPECULAR_SLOT] == NULL){ - mat->textures[PhongMaterial::SPECULAR_SLOT] = new Texture(loadImage(tokens[1])); - RESOURCE_ADD(mat->textures[PhongMaterial::SPECULAR_SLOT],Texture,tokens[1]); + } else if(tokens[0].compare("map_roughness") == 0) { + mat->textures[PBRMaterial::ROUGHNESS_SLOT] = RESOURCE_GET(Texture,tokens[1]); + if (mat->textures[PBRMaterial::ROUGHNESS_SLOT] == NULL){ + mat->textures[PBRMaterial::ROUGHNESS_SLOT] = new Texture(loadImage(tokens[1], 8)); + RESOURCE_ADD(mat->textures[PBRMaterial::ROUGHNESS_SLOT],Texture,tokens[1]); } - } else if(tokens[0].compare("map_Normal") == 0) { - mat->textures[PhongMaterial::NORMALS_SLOT] = RESOURCE_GET(Texture,tokens[1]); - if (mat->textures[PhongMaterial::NORMALS_SLOT] == NULL){ - mat->textures[PhongMaterial::NORMALS_SLOT] = new Texture(loadImage(tokens[1])); - RESOURCE_ADD(mat->textures[PhongMaterial::NORMALS_SLOT],Texture,tokens[1]); + } else if(tokens[0].compare("map_metallic") == 0) { + mat->textures[PBRMaterial::METALLIC_SLOT] = RESOURCE_GET(Texture,tokens[1]); + if (mat->textures[PBRMaterial::METALLIC_SLOT] == NULL){ + mat->textures[PBRMaterial::METALLIC_SLOT] = new Texture(loadImage(tokens[1], 8)); + RESOURCE_ADD(mat->textures[PBRMaterial::METALLIC_SLOT],Texture,tokens[1]); + } + } else if(tokens[0].compare("map_normal") == 0) { + mat->textures[PBRMaterial::NORMALS_SLOT] = RESOURCE_GET(Texture,tokens[1]); + if (mat->textures[PBRMaterial::NORMALS_SLOT] == NULL){ + mat->textures[PBRMaterial::NORMALS_SLOT] = new Texture(loadImage(tokens[1], 24)); + RESOURCE_ADD(mat->textures[PBRMaterial::NORMALS_SLOT],Texture,tokens[1]); } hasNormalMap = true; - } else if(tokens[0].compare("map_d") == 0) { - mat->textures[PhongMaterial::ALPHA_SLOT] = RESOURCE_GET(Texture,tokens[1]); - if (mat->textures[PhongMaterial::ALPHA_SLOT] == NULL){ - mat->textures[PhongMaterial::ALPHA_SLOT] = new Texture(loadImage(tokens[1])); - RESOURCE_ADD(mat->textures[PhongMaterial::ALPHA_SLOT],Texture,tokens[1]); + } else if(tokens[0].compare("map_alpha") == 0) { + mat->textures[PBRMaterial::ALPHA_SLOT] = RESOURCE_GET(Texture,tokens[1]); + if (mat->textures[PBRMaterial::ALPHA_SLOT] == NULL){ + mat->textures[PBRMaterial::ALPHA_SLOT] = new Texture(loadImage(tokens[1], 8)); + RESOURCE_ADD(mat->textures[PBRMaterial::ALPHA_SLOT],Texture,tokens[1]); } } else fprintf(stderr, "unsupported material property : \"%s\"\n", tokens[0].c_str()); diff --git a/src/tools/loader.h b/src/tools/loader.h index 9a839d1..59d6f18 100644 --- a/src/tools/loader.h +++ b/src/tools/loader.h @@ -19,7 +19,7 @@ class Loader public: static std::string* loadTextFile(const std::string &filename); static std::unordered_map* loadConfigFile(const std::string &filename); - static Image* loadImage(const std::string &filename, bool hasAlpha = true, bool reversed = true); + static Image* loadImage(const std::string &filename, int depth = 32, bool reversed = true); static std::vector loadMesh(const std::string &filename); static Font* loadFont(const std::string &texture, const std::string &description); static bool loadMTL(const std::string &filename);