diff --git a/.gitignore b/.gitignore index 713474faf..c651b8756 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,6 @@ bld/ deps/lib/legion* *.shil !**/applications/**/engine/** + +# Mono VM +vm/** diff --git a/README.md b/README.md index 8d897c518..82b72c963 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,105 @@ [![build](https://github.com/Legion-Engine/Legion-Engine/workflows/build-action/badge.svg)](https://github.com/Legion-Engine/Legion-Engine/actions?query=workflow%3Abuild-action) [![analyze](https://github.com/Legion-Engine/Legion-Engine/workflows/analyze-action/badge.svg)](https://github.com/Legion-Engine/Legion-Engine/actions?query=workflow%3Aanalyze-action) [![docs](https://github.com/Legion-Engine/Legion-Engine/workflows/docs-action/badge.svg)](https://docs.legion-engine.com) +[![License-MIT](https://img.shields.io/github/license/Legion-Engine/Legion-Engine)](https://github.com/Legion-Engine/Legion-Engine/blob/main/LICENSE) +[![Discord](https://img.shields.io/static/v1?label=Discord&message=Join%20Our%20Discord%20Server!&color=white&logo=discord)](https://discord.gg/unVNRbd) # Legion-Engine Legion-Engine is a data oriented C++17 OpenGL game engine built to make optimal use of modern hardware.

The Legion-Core is built on an async compute minded design to take care of the logic and an ECS to take care of the data. This allows the engine and editor to utilize all the power they can find and to be extremely modular. + +## Getting Started +### Prerequisites +The engine is by default build using Visual Studio 19 using the Clang++ compiler and C++17. +For linux we don't provide any default IDE support. However, you can still compile the engine using Clang++. +### Install +You can either build the engine yourself using Premake5 or the already provided Visual Studio 19 solution. As of now Legion does not support compilation to DLL. +Copy the include folder to your project and link the libraries you compiled. +### Setup +Legion already defines the C++ entry point in it's own source code. So in order to start making a program define ``LEGION_ENTRY`` and include any of modules main include files. +eg: +```cpp +#define LEGION_ENTRY +#include +``` +Since the entry point is already defined you need to define a different function to start working with Legion. Legion will already start itself, but it won't have any modules attached. In order to attach modules you need to define the ``reportModules`` function like so: +```cpp +#include "mymodule.hpp" +using namespace legion; + +void LEGION_CCONV reportModules(Engine* engine) +{ + engine->reportModule(); + engine->reportModule(); +} +``` +Of course in order to link your own modules you need to make one: +```cpp +#include +#include "mysystem.hpp" + +class TestModule : public legion::Module +{ +public: + virtual void setup() override + { + reportComponentType(); // Report a component type + reportSystem(); // Report a system + } +}; +``` +Legion engine uses an ECS for all of it's core functionality. So for your own project you need to define your own systems and components: +```cpp +#include + +struct my_component { int myVal; }; + +class MySystem final : public legion::System +{ + virtual void setup() + { + createProcess<&MySystem::update>("Update"); + } + + void update(legion::time::span deltaTime) + { + // Do stuff every frame on the update thread + static auto myQuery = createQuery(); + for(auto entity : myQuery) + { + // Runs for every entity that has both my_component and a position component. + } + } +}; +``` +For more information about the engine usage see the [docs](https://docs.legion-engine.com). +## Dependencies +(All libraries can already be found in the [deps](https://github.com/Legion-Engine/Legion-Engine/tree/main/deps) folder) +* [OpenAL Soft](https://github.com/kcat/openal-soft) +* [GLM](https://glm.g-truc.net/) +* [OpenGL](https://www.khronos.org/opengl/) +* [GLFW](https://www.glfw.org) +* [OpenCL](https://www.khronos.org/opencl/) +* [TinyOBJ](https://github.com/tinyobjloader/tinyobjloader) +* [STB image](https://github.com/nothings/stb) +* [Cereal](http://uscilab.github.io/cereal/) +* [Spdlog](https://github.com/gabime/spdlog) +* [Minimp3](https://github.com/lieff/minimp3) +* [Legion shader preprocessor (lgnspre)](https://github.com/Legion-Engine/LegionShaderPreprocess) + +## Contributing + +Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. + +## Authors + +* **Glyn Leine** - *Core architecture, ECS, scheduling, import pipeline, and renderer* - [[Website](https://glynleine.com)] [[Github](https://github.com/GlynLeine)] [[LinkedIn](https://www.linkedin.com/in/glyn-leine-7140a8167/)] +* **Raphael Baier** - *Filesystem, build pipeline, GPGPU compute, input system, meta nonsense* - [[Website](https://rbaier.me)] [[Github](https://github.com/Algo-ryth-mix)] [[LinkedIn](https://www.linkedin.com/in/raphael-baier-26800a188/)] +* **Raphael Priatama** - *Physics* - [[Website](https://developer-the-great.github.io)] [[Github](https://github.com/Developer-The-Great)] [[LinkedIn](https://www.linkedin.com/in/raphael-priatama-78a0a7189/?originalSubdomain=nl)] +* **Jelle Vrieze** - *Audio/3D audio* - [[Website](http://jellevrieze.nl)] [[Github](https://github.com/Jelled1st)] [[LinkedIn](https://www.linkedin.com/in/jelle-vrieze-2467661a7/)] +* **Rowan Ramsey** - *Serialization* - [[Website](https://blazinram.wixsite.com/rowanramsey)] [[Github](https://github.com/Ragingram2)] [[LinkedIn](https://www.linkedin.com/in/rowan-r-42a760125/)] + +See also the list of [contributors](AUTHORS.md) who participated in this project. + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details diff --git a/applications/editor/engine/shaderlib/lighting.shinc b/applications/editor/engine/shaderlib/lighting.shinc index 0e8da4683..1bc29f667 100644 --- a/applications/editor/engine/shaderlib/lighting.shinc +++ b/applications/editor/engine/shaderlib/lighting.shinc @@ -18,7 +18,7 @@ struct Light float falloff; // 4 28 vec3 position; // 12 32 float angle; // 4 44 - vec3 color; // 12 48 + vec3 color; // 12 48 float meta; // 4 60 }; diff --git a/applications/editor/engine/shaderlib/lighting_input.shinc b/applications/editor/engine/shaderlib/lighting_input.shinc index 6c0958cc1..50e8128c7 100644 --- a/applications/editor/engine/shaderlib/lighting_input.shinc +++ b/applications/editor/engine/shaderlib/lighting_input.shinc @@ -2,7 +2,7 @@ // Lighting Input // ////////////////////// -layout(std140) buffer LightsBuffer +layout(std140, binding = SV_LIGHTS) readonly buffer LightsBuffer { Light lights[]; }; diff --git a/applications/sandbox/assets/materials/aluminum.material b/applications/sandbox/assets/materials/aluminum.material new file mode 100644 index 000000000..318a701e5 --- /dev/null +++ b/applications/sandbox/assets/materials/aluminum.material @@ -0,0 +1,7 @@ +[pbr] +material_input.albedo=../textures/aluminum/aluminum-albedo.png +material_input.normalHeight=../textures/aluminum/aluminum-normalHeight.png +material_input.MRDAo=../textures/aluminum/aluminum-MRDAo.png +material_input.emissive=../textures/aluminum/aluminum-emissive.png +material_input.heightScale=1.0 +discardExcess=false \ No newline at end of file diff --git a/applications/sandbox/assets/models/directional-light.mtl b/applications/sandbox/assets/models/directional-light.mtl new file mode 100644 index 000000000..f231bdf4c --- /dev/null +++ b/applications/sandbox/assets/models/directional-light.mtl @@ -0,0 +1,10 @@ +# Blender MTL File: 'None' +# Material Count: 1 + +newmtl None +Ns 500 +Ka 0.8 0.8 0.8 +Kd 0.8 0.8 0.8 +Ks 0.8 0.8 0.8 +d 1 +illum 2 diff --git a/applications/sandbox/assets/models/directional-light.obj b/applications/sandbox/assets/models/directional-light.obj new file mode 100644 index 000000000..e8fc929dc --- /dev/null +++ b/applications/sandbox/assets/models/directional-light.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ceb35eb78589eda3209cf1c6e1303d79b45e0a3976739a5d05e7eb07fec5564a +size 10421 diff --git a/applications/sandbox/assets/models/plane.mtl b/applications/sandbox/assets/models/plane.mtl new file mode 100644 index 000000000..5882e039a --- /dev/null +++ b/applications/sandbox/assets/models/plane.mtl @@ -0,0 +1,12 @@ +# Blender MTL File: 'None' +# Material Count: 1 + +newmtl None +Ns 500.000001 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.800000 0.800000 0.800000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 diff --git a/applications/sandbox/assets/models/plane.obj b/applications/sandbox/assets/models/plane.obj new file mode 100644 index 000000000..c170d4b37 --- /dev/null +++ b/applications/sandbox/assets/models/plane.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61e4eb2594581f5885073251c6557d1af9e3ed1e92d203d64a972579aeae1814 +size 353 diff --git a/applications/sandbox/assets/models/point-light.mtl b/applications/sandbox/assets/models/point-light.mtl new file mode 100644 index 000000000..b6938abc8 --- /dev/null +++ b/applications/sandbox/assets/models/point-light.mtl @@ -0,0 +1,12 @@ +# Blender MTL File: 'None' +# Material Count: 1 + +newmtl None.001 +Ns 500.000001 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.800000 0.800000 0.800000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 diff --git a/applications/sandbox/assets/models/point-light.obj b/applications/sandbox/assets/models/point-light.obj new file mode 100644 index 000000000..028b2e9e3 --- /dev/null +++ b/applications/sandbox/assets/models/point-light.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6bd70a57c6c27aed9a64ea27f606bb7f3324f49e25ded5717736fae23415e18 +size 38109 diff --git a/applications/sandbox/assets/models/spot-light.mtl b/applications/sandbox/assets/models/spot-light.mtl new file mode 100644 index 000000000..28180c3a2 --- /dev/null +++ b/applications/sandbox/assets/models/spot-light.mtl @@ -0,0 +1,12 @@ +# Blender MTL File: 'None' +# Material Count: 1 + +newmtl None.002 +Ns 500.000001 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.800000 0.800000 0.800000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 diff --git a/applications/sandbox/assets/models/spot-light.obj b/applications/sandbox/assets/models/spot-light.obj new file mode 100644 index 000000000..f678cf541 --- /dev/null +++ b/applications/sandbox/assets/models/spot-light.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f8609b42f612bedf86b3da78f0d707b1ae5538e6c0c36cb8f4fa5cc7290839e +size 5675 diff --git a/applications/sandbox/assets/models/submeshtest.mtl b/applications/sandbox/assets/models/submeshtest.mtl index cc35370ce..b9e52d8fc 100644 --- a/applications/sandbox/assets/models/submeshtest.mtl +++ b/applications/sandbox/assets/models/submeshtest.mtl @@ -11,12 +11,12 @@ Ni 1.000000 d 1.000000 illum 2 -newmtl Material.002 -Ns 92.156872 +newmtl lambert1 +Ns 225.000000 Ka 1.000000 1.000000 1.000000 -Kd 0.640000 0.640000 0.640000 +Kd 0.800000 0.800000 0.800000 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 -Ni 1.000000 +Ni 1.450000 d 1.000000 illum 2 diff --git a/applications/sandbox/assets/models/submeshtest.obj b/applications/sandbox/assets/models/submeshtest.obj index e927c1e03..85aaaa409 100644 --- a/applications/sandbox/assets/models/submeshtest.obj +++ b/applications/sandbox/assets/models/submeshtest.obj @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf8141330a99eb304db9c4958258eca668b1a70731cddd76e5634b86ca216959 -size 2156 +oid sha256:13a51e877d78e331aadccc9333acf6c1f60e0ab0326e82562b0eae7b07faae41 +size 72898 diff --git a/applications/sandbox/assets/models/suzanne.mtl b/applications/sandbox/assets/models/suzanne.mtl index 70d3ba1da..f231bdf4c 100644 --- a/applications/sandbox/assets/models/suzanne.mtl +++ b/applications/sandbox/assets/models/suzanne.mtl @@ -2,8 +2,8 @@ # Material Count: 1 newmtl None -Ns 0 -Ka 0.000000 0.000000 0.000000 +Ns 500 +Ka 0.8 0.8 0.8 Kd 0.8 0.8 0.8 Ks 0.8 0.8 0.8 d 1 diff --git a/applications/sandbox/assets/models/suzanne.obj b/applications/sandbox/assets/models/suzanne.obj index 000ac5ec9..d13f34772 100644 --- a/applications/sandbox/assets/models/suzanne.obj +++ b/applications/sandbox/assets/models/suzanne.obj @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:df18f4686e37d95ecfecd934149f81b88d0bef409905f949265e94b0d36ad4d9 -size 45914 +oid sha256:3d6cf9b13b60344944460ad04a3d27823c88657ceceadd913c40ad2f91a8d61c +size 74071 diff --git a/applications/sandbox/assets/scenes/Main.cornflake b/applications/sandbox/assets/scenes/Main.cornflake index 3b2ff26c7..fcccb8389 100644 --- a/applications/sandbox/assets/scenes/Main.cornflake +++ b/applications/sandbox/assets/scenes/Main.cornflake @@ -1,10 +1,10 @@ { "Entity": { - "Id": 62, + "Id": 29, "Name": "Entity", "Components": [ { - "Owner": 62, + "Owner": 29, "Component Type": 9547123436134525643, "Component Name": "struct legion::core::scenemanagement::scene", "NAME": "Main" @@ -101,29 +101,24 @@ "Id": 4, "Name": "Entity", "Components": [ - { - "Owner": 4, - "Component Type": 7523951964142181909, - "Component Name": "struct sah" - }, { "Owner": 4, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 6546381963644500447 + "value0": 18257050065998780757 }, "value1": { - "value0": 10254948448905657575 + "value0": 1796173653269013518 } }, { "Owner": 4, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 4, @@ -139,8 +134,8 @@ "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", "x": 0.0, - "y": 3.0, - "z": 5.099999904632568 + "y": 0.009999999776482582, + "z": 0.0 } ], "Children": [] @@ -149,29 +144,24 @@ "Id": 5, "Name": "Entity", "Components": [ - { - "Owner": 5, - "Component Type": 7523951964142181909, - "Component Name": "struct sah" - }, { "Owner": 5, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 6546381963644500447 + "value0": 18257050065998780757 }, "value1": { - "value0": 11132040061712174085 + "value0": 5048211821449389780 } }, { "Owner": 5, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 5, @@ -186,9 +176,9 @@ "Owner": 5, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 0.0, - "y": 3.0, - "z": 8.100000381469727 + "x": 20.0, + "y": 0.009999999776482582, + "z": 0.0 } ], "Children": [] @@ -197,29 +187,24 @@ "Id": 6, "Name": "Entity", "Components": [ - { - "Owner": 6, - "Component Type": 7523951964142181909, - "Component Name": "struct sah" - }, { "Owner": 6, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 6546381963644500447 + "value0": 18257050065998780757 }, "value1": { - "value0": 6991063326977151602 + "value0": 8671878212514116987 } }, { "Owner": 6, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 6, @@ -234,9 +219,9 @@ "Owner": 6, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 0.0, - "y": 3.0, - "z": 11.100000381469727 + "x": 20.0, + "y": 0.009999999776482582, + "z": 20.0 } ], "Children": [] @@ -245,29 +230,24 @@ "Id": 7, "Name": "Entity", "Components": [ - { - "Owner": 7, - "Component Type": 7523951964142181909, - "Component Name": "struct sah" - }, { "Owner": 7, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 13126652788706525288 + "value0": 18257050065998780757 }, "value1": { - "value0": 6991063326977151602 + "value0": 6773895175305003099 } }, { "Owner": 7, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 7, @@ -282,9 +262,9 @@ "Owner": 7, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 0.0, - "y": 10.0, - "z": 0.0 + "x": 20.0, + "y": 0.009999999776482582, + "z": -20.0 } ], "Children": [] @@ -298,19 +278,19 @@ "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 3645275238404220856 + "value0": 18257050065998780757 }, "value1": { - "value0": 6991063326977151602 + "value0": 14417210513765110748 } }, { "Owner": 8, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 8, @@ -325,8 +305,8 @@ "Owner": 8, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 0.0, - "y": 0.0, + "x": -20.0, + "y": 0.009999999776482582, "z": 0.0 } ], @@ -336,29 +316,24 @@ "Id": 9, "Name": "Entity", "Components": [ - { - "Owner": 9, - "Component Type": 7523951964142181909, - "Component Name": "struct sah" - }, { "Owner": 9, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 18257050065998780757 }, "value1": { - "value0": 631700249591079858 + "value0": 21745149160326459 } }, { "Owner": 9, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 0.75, - "y": 0.75, - "z": 0.75 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 9, @@ -373,9 +348,9 @@ "Owner": 9, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 5.099999904632568, - "y": 3.0, - "z": 0.0 + "x": -20.0, + "y": 0.009999999776482582, + "z": 20.0 } ], "Children": [] @@ -384,29 +359,24 @@ "Id": 10, "Name": "Entity", "Components": [ - { - "Owner": 10, - "Component Type": 7523951964142181909, - "Component Name": "struct sah" - }, { "Owner": 10, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 9915782786907616376 + "value0": 18257050065998780757 }, "value1": { - "value0": 6991063326977151602 + "value0": 8630977270866280095 } }, { "Owner": 10, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 2.5, - "z": 2.5 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 10, @@ -422,8 +392,8 @@ "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", "x": 0.0, - "y": 3.0, - "z": -5.099999904632568 + "y": 0.009999999776482582, + "z": 20.0 } ], "Children": [] @@ -432,29 +402,24 @@ "Id": 11, "Name": "Entity", "Components": [ - { - "Owner": 11, - "Component Type": 7523951964142181909, - "Component Name": "struct sah" - }, { "Owner": 11, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 16147701225056486911 + "value0": 18257050065998780757 }, "value1": { - "value0": 11132040061712174085 + "value0": 11780878001689302868 } }, { "Owner": 11, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 2.5, - "z": 2.5 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 11, @@ -469,14 +434,9 @@ "Owner": 11, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": -5.099999904632568, - "y": 3.0, - "z": 0.0 - }, - { - "Owner": 11, - "Component Type": 12879719932595839335, - "Component Name": "struct legion::audio::audio_source" + "x": 0.0, + "y": 0.009999999776482582, + "z": -20.0 } ], "Children": [] @@ -485,29 +445,24 @@ "Id": 12, "Name": "Entity", "Components": [ - { - "Owner": 12, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, { "Owner": 12, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 18257050065998780757 }, "value1": { - "value0": 11132040061712174085 + "value0": 6083584261053556819 } }, { "Owner": 12, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 10.0, + "y": 10.0, + "z": 10.0 }, { "Owner": 12, @@ -522,9 +477,9 @@ "Owner": 12, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 0.0, - "y": -3.0, - "z": 8.0 + "x": -20.0, + "y": 0.009999999776482582, + "z": -20.0 } ], "Children": [] @@ -535,18 +490,18 @@ "Components": [ { "Owner": 13, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 2383550021419578009, + "Component Name": "struct legion::rendering::light" }, { "Owner": 13, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 5112364170975192303 }, "value1": { - "value0": 11132040061712174085 + "value0": 5112364170975192303 } }, { @@ -561,18 +516,18 @@ "Owner": 13, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 + "x": 0.115916907787323, + "y": -0.8804763555526733, + "z": 0.2798481583595276, + "w": 0.3647052049636841 }, { "Owner": 13, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 3.0, - "y": -3.0, - "z": 8.0 + "x": 5.0, + "y": 13.0, + "z": 5.0 } ], "Children": [] @@ -583,18 +538,18 @@ "Components": [ { "Owner": 14, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 2383550021419578009, + "Component Name": "struct legion::rendering::light" }, { "Owner": 14, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 4127307817236017217 }, "value1": { - "value0": 11132040061712174085 + "value0": 4127307817236017217 } }, { @@ -609,18 +564,18 @@ "Owner": 14, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, + "x": -0.0, + "y": -0.0, + "z": -0.0, "w": 1.0 }, { "Owner": 14, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 0.0, - "y": -3.0, - "z": 5.0 + "x": 0.10000000149011612, + "y": 10.0, + "z": -7.0 } ], "Children": [] @@ -631,18 +586,18 @@ "Components": [ { "Owner": 15, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 2383550021419578009, + "Component Name": "struct legion::rendering::light" }, { "Owner": 15, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 5592977308715235853 }, "value1": { - "value0": 11132040061712174085 + "value0": 5592977308715235853 } }, { @@ -666,9 +621,9 @@ "Owner": 15, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 3.0, - "y": -2.0, - "z": 4.0 + "x": -5.0, + "y": 9.0, + "z": 0.0 } ], "Children": [] @@ -679,18 +634,18 @@ "Components": [ { "Owner": 16, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { "Owner": 16, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 6546381963644500447 }, "value1": { - "value0": 11132040061712174085 + "value0": 10254948448905657575 } }, { @@ -715,8 +670,8 @@ "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", "x": 0.0, - "y": -3.0, - "z": -2.0 + "y": 3.0, + "z": 5.099999904632568 } ], "Children": [] @@ -727,15 +682,15 @@ "Components": [ { "Owner": 17, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { "Owner": 17, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 6546381963644500447 }, "value1": { "value0": 11132040061712174085 @@ -753,18 +708,18 @@ "Owner": 17, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", - "x": 0.23733900487422944, - "y": 0.42545178532600405, - "z": 0.42545178532600405, - "w": 0.7626610398292542 + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 1.0 }, { "Owner": 17, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 3.0, - "y": -3.0, - "z": -2.0 + "x": 0.0, + "y": 3.0, + "z": 8.100000381469727 } ], "Children": [] @@ -775,18 +730,18 @@ "Components": [ { "Owner": 18, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { "Owner": 18, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 6546381963644500447 }, "value1": { - "value0": 11132040061712174085 + "value0": 5048211821449389780 } }, { @@ -802,17 +757,17 @@ "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", "x": 0.0, - "y": -0.5440211296081543, + "y": 0.0, "z": 0.0, - "w": -0.83907151222229 + "w": 1.0 }, { "Owner": 18, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", "x": 0.0, - "y": -3.0, - "z": -7.0 + "y": 3.0, + "z": 11.100000381469727 } ], "Children": [] @@ -823,18 +778,18 @@ "Components": [ { "Owner": 19, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { "Owner": 19, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 13126652788706525288 }, "value1": { - "value0": 11132040061712174085 + "value0": 8630977270866280095 } }, { @@ -849,18 +804,18 @@ "Owner": 19, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", - "x": 0.23733900487422944, - "y": 0.42545178532600405, - "z": 0.42545178532600405, - "w": 0.7626610398292542 + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 1.0 }, { "Owner": 19, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 3.0, - "y": -3.0, - "z": -7.0 + "x": 0.0, + "y": 10.0, + "z": 0.0 } ], "Children": [] @@ -869,20 +824,15 @@ "Id": 20, "Name": "Entity", "Components": [ - { - "Owner": 20, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, { "Owner": 20, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 3645275238404220856 }, "value1": { - "value0": 11132040061712174085 + "value0": 6991063326977151602 } }, { @@ -898,17 +848,17 @@ "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", "x": 0.0, - "y": -0.48717451095581057, + "y": 0.0, "z": 0.0, - "w": -0.8733046650886536 + "w": 1.0 }, { "Owner": 20, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", "x": 0.0, - "y": -3.0, - "z": -12.0 + "y": 0.0, + "z": 0.0 } ], "Children": [] @@ -919,8 +869,8 @@ "Components": [ { "Owner": 21, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { "Owner": 21, @@ -930,33 +880,33 @@ "value0": 5503224543670688896 }, "value1": { - "value0": 11132040061712174085 + "value0": 8630977270866280095 } }, { "Owner": 21, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 0.75, + "y": 0.75, + "z": 0.75 }, { "Owner": 21, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", - "x": 0.42545178532600405, - "y": 0.42545178532600405, - "z": 0.23733900487422944, - "w": 0.7626610398292542 + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 1.0 }, { "Owner": 21, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 3.0, - "y": -3.0, - "z": -13.0 + "x": 5.099999904632568, + "y": 9.0, + "z": 0.0 } ], "Children": [] @@ -965,12 +915,28 @@ "Id": 22, "Name": "Entity", "Components": [ + { + "Owner": 22, + "Component Type": 7523951964142181909, + "Component Name": "struct sah" + }, + { + "Owner": 22, + "Component Type": 6208564340805693071, + "Component Name": "struct legion::rendering::renderable", + "value0": { + "value0": 9915782786907616376 + }, + "value1": { + "value0": 5048211821449389780 + } + }, { "Owner": 22, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", "x": 2.5, - "y": 1.0, + "y": 2.5, "z": 2.5 }, { @@ -986,20 +952,9 @@ "Owner": 22, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 22, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 631700249591079858 - } + "x": 0.0, + "y": 3.0, + "z": -5.099999904632568 } ], "Children": [] @@ -1010,16 +965,27 @@ "Components": [ { "Owner": 23, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { "Owner": 23, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "Component Type": 6208564340805693071, + "Component Name": "struct legion::rendering::renderable", + "value0": { + "value0": 9915782786907616376 + }, + "value1": { + "value0": 8671878212514116987 + } + }, + { + "Owner": 23, + "Component Type": 4306336647627884212, + "Component Name": "struct legion::core::scale", + "x": 2.5, + "y": 2.5, + "z": 2.5 }, { "Owner": 23, @@ -1034,14 +1000,9 @@ "Owner": 23, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 23, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" + "x": 0.0, + "y": 3.0, + "z": -8.0 } ], "Children": [] @@ -1052,16 +1013,27 @@ "Components": [ { "Owner": 24, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Component Type": 7523951964142181909, + "Component Name": "struct sah" + }, + { + "Owner": 24, + "Component Type": 6208564340805693071, + "Component Name": "struct legion::rendering::renderable", + "value0": { + "value0": 9915782786907616376 + }, + "value1": { + "value0": 6773895175305003099 + } }, { "Owner": 24, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 2.5, + "y": 2.5, + "z": 2.5 }, { "Owner": 24, @@ -1076,14 +1048,9 @@ "Owner": 24, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 19.0, - "y": -1.5, - "z": 15.0 - }, - { - "Owner": 24, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" + "x": 0.0, + "y": 3.0, + "z": -2.200000047683716 } ], "Children": [] @@ -1094,104 +1061,30 @@ "Components": [ { "Owner": 25, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 25, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 25, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": 8.0 + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { "Owner": 25, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 9915782786907616376 }, "value1": { - "value0": 631700249591079858 + "value0": 3874232068280630314 } - } - ], - "Children": [] - }, - { - "Id": 26, - "Name": "Entity", - "Components": [ - { - "Owner": 26, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 26, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 26, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 }, { - "Owner": 26, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": 8.0 - }, - { - "Owner": 26, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 27, - "Name": "Entity", - "Components": [ - { - "Owner": 27, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 27, + "Owner": 25, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 2.5, + "y": 2.5, + "z": 2.5 }, { - "Owner": 27, + "Owner": 25, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", "x": 0.0, @@ -1200,83 +1093,46 @@ "w": 1.0 }, { - "Owner": 27, + "Owner": 25, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 19.0, - "y": -1.5, - "z": 8.0 - }, - { - "Owner": 27, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" + "x": 4.0, + "y": 3.0, + "z": -8.0 } ], "Children": [] }, { - "Id": 28, + "Id": 26, "Name": "Entity", "Components": [ { - "Owner": 28, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 28, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 28, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": 1.0 + "Owner": 26, + "Component Type": 7523951964142181909, + "Component Name": "struct sah" }, { - "Owner": 28, + "Owner": 26, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { - "value0": 5503224543670688896 + "value0": 9915782786907616376 }, "value1": { - "value0": 631700249591079858 + "value0": 14417210513765110748 } - } - ], - "Children": [] - }, - { - "Id": 29, - "Name": "Entity", - "Components": [ - { - "Owner": 29, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" }, { - "Owner": 29, + "Owner": 26, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 2.5, + "y": 2.5, + "z": 2.5 }, { - "Owner": 29, + "Owner": 26, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", "x": 0.0, @@ -1285,1467 +1141,108 @@ "w": 1.0 }, { - "Owner": 29, + "Owner": 26, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": 1.0 - }, - { - "Owner": 29, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" + "x": 4.0, + "y": 3.0, + "z": -5.099999904632568 } ], "Children": [] }, { - "Id": 30, + "Id": 27, "Name": "Entity", "Components": [ { - "Owner": 30, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" + "Owner": 27, + "Component Type": 6208564340805693071, + "Component Name": "struct legion::rendering::renderable", + "value0": { + "value0": 5503224543670688896 + }, + "value1": { + "value0": 6991063326977151602 + } }, { - "Owner": 30, + "Owner": 27, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 0.5, + "y": 0.5, + "z": 0.5 }, { - "Owner": 30, + "Owner": 27, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", "x": 0.0, - "y": 0.0, + "y": -0.7071067690849304, "z": 0.0, - "w": 1.0 + "w": 0.7071067690849304 }, { - "Owner": 30, + "Owner": 27, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 19.0, - "y": -1.5, - "z": 1.0 + "x": -5.0, + "y": 0.0, + "z": 10.0 }, { - "Owner": 30, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" + "Owner": 27, + "Component Type": 12879719932595839335, + "Component Name": "struct legion::audio::audio_source" } ], "Children": [] }, { - "Id": 31, + "Id": 28, "Name": "Entity", "Components": [ { - "Owner": 31, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 31, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 31, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": -6.0 - }, - { - "Owner": 31, + "Owner": 28, "Component Type": 6208564340805693071, "Component Name": "struct legion::rendering::renderable", "value0": { "value0": 5503224543670688896 }, "value1": { - "value0": 631700249591079858 + "value0": 6991063326977151602 } - } - ], - "Children": [] - }, - { - "Id": 32, - "Name": "Entity", - "Components": [ - { - "Owner": 32, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" }, { - "Owner": 32, + "Owner": 28, "Component Type": 4306336647627884212, "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 + "x": 0.5, + "y": 0.5, + "z": 0.5 }, { - "Owner": 32, + "Owner": 28, "Component Type": 7097645533378480892, "Component Name": "struct legion::core::rotation", "x": 0.0, - "y": 0.0, + "y": -0.7071067690849304, "z": 0.0, - "w": 1.0 + "w": 0.7071067690849304 }, { - "Owner": 32, + "Owner": 28, "Component Type": 1703773829785910945, "Component Name": "struct legion::core::position", - "x": 20.0, - "y": -3.0, - "z": -6.0 + "x": 5.0, + "y": 0.0, + "z": 10.0 }, { - "Owner": 32, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 33, - "Name": "Entity", - "Components": [ - { - "Owner": 33, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 33, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 33, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 33, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 19.0, - "y": -1.5, - "z": -6.0 - }, - { - "Owner": 33, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 34, - "Name": "Entity", - "Components": [ - { - "Owner": 34, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 34, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 34, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 35.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 34, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 631700249591079858 - } - } - ], - "Children": [] - }, - { - "Id": 35, - "Name": "Entity", - "Components": [ - { - "Owner": 35, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 35, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 35, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 35, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 35.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 35, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 36, - "Name": "Entity", - "Components": [ - { - "Owner": 36, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 36, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 36, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 36, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 35.0, - "y": -1.5, - "z": 15.0 - }, - { - "Owner": 36, - "Component Type": 2672125980063885289, - "Component Name": "struct legion::physics::rigidbody", - "Name": "Rigidbody", - "Inverse Mass": 1.0, - "Velocity": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Acceleration": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Linear Drag": NaN, - "Inverse Intertia Tensor": {}, - "Angular Acceleration": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Angular Velocity": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Angular Drag": 0.009999999776482582, - "Global Centre of Mass": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Force Accumulator": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Torque Accumulator": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Restitution": 0.5, - "Friction": 0.10000000149011612, - "Is Asleep?": false - }, - { - "Owner": 36, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 37, - "Name": "Entity", - "Components": [ - { - "Owner": 37, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 37, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 37, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 37, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 35.0, - "y": -0.5, - "z": 15.0 - }, - { - "Owner": 37, - "Component Type": 2672125980063885289, - "Component Name": "struct legion::physics::rigidbody", - "Name": "Rigidbody", - "Inverse Mass": 1.0, - "Velocity": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Acceleration": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Linear Drag": NaN, - "Inverse Intertia Tensor": {}, - "Angular Acceleration": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Angular Velocity": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Angular Drag": 0.009999999776482582, - "Global Centre of Mass": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Force Accumulator": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Torque Accumulator": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "Restitution": 0.5, - "Friction": 0.10000000149011612, - "Is Asleep?": false - }, - { - "Owner": 37, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 38, - "Name": "Entity", - "Components": [ - { - "Owner": 38, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 38, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 38, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 38, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 631700249591079858 - } - } - ], - "Children": [] - }, - { - "Id": 39, - "Name": "Entity", - "Components": [ - { - "Owner": 39, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 39, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 39, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 39, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 39, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 40, - "Name": "Entity", - "Components": [ - { - "Owner": 40, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 40, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 40, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 40, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -0.0, - "z": 15.0 - }, - { - "Owner": 40, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 41, - "Name": "Entity", - "Components": [ - { - "Owner": 41, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 41, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 41, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 8.0 - }, - { - "Owner": 41, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 631700249591079858 - } - } - ], - "Children": [] - }, - { - "Id": 42, - "Name": "Entity", - "Components": [ - { - "Owner": 42, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 42, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 42, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 42, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 8.0 - }, - { - "Owner": 42, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 43, - "Name": "Entity", - "Components": [ - { - "Owner": 43, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 43, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 43, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 43, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 7.300000190734863, - "y": -0.0, - "z": 8.0 - }, - { - "Owner": 43, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 44, - "Name": "Entity", - "Components": [ - { - "Owner": 44, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 44, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 44, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 2.0 - }, - { - "Owner": 44, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 631700249591079858 - } - } - ], - "Children": [] - }, - { - "Id": 45, - "Name": "Entity", - "Components": [ - { - "Owner": 45, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 45, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 45, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 45, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 2.0 - }, - { - "Owner": 45, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 46, - "Name": "Entity", - "Components": [ - { - "Owner": 46, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 46, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 46, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": -0.012340724468231202, - "y": 0.4639037549495697, - "z": 0.7069990038871765, - "w": 0.5336602330207825 - }, - { - "Owner": 46, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -0.0, - "z": 2.0 - }, - { - "Owner": 46, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 47, - "Name": "Entity", - "Components": [ - { - "Owner": 47, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 47, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 47, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": -4.0 - }, - { - "Owner": 47, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 631700249591079858 - } - } - ], - "Children": [] - }, - { - "Id": 48, - "Name": "Entity", - "Components": [ - { - "Owner": 48, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 48, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 48, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 48, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": -4.0 - }, - { - "Owner": 48, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 49, - "Name": "Entity", - "Components": [ - { - "Owner": 49, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 49, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 49, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.42545178532600405, - "y": 0.42545178532600405, - "z": 0.23733900487422944, - "w": 0.7626610398292542 - }, - { - "Owner": 49, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 13.0, - "y": 2.0, - "z": -4.0 - }, - { - "Owner": 49, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 50, - "Name": "Entity", - "Components": [ - { - "Owner": 50, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 50, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 50, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 50, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 11132040061712174085 - } - } - ], - "Children": [] - }, - { - "Id": 51, - "Name": "Entity", - "Components": [ - { - "Owner": 51, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 51, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 51, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 51, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 15.0 - }, - { - "Owner": 51, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 52, - "Name": "Entity", - "Components": [ - { - "Owner": 52, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 52, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 52, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 52, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -0.0, - "z": 15.0 - }, - { - "Owner": 52, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 53, - "Name": "Entity", - "Components": [ - { - "Owner": 53, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 53, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 53, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 8.0 - }, - { - "Owner": 53, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 11132040061712174085 - } - } - ], - "Children": [] - }, - { - "Id": 54, - "Name": "Entity", - "Components": [ - { - "Owner": 54, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 54, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 54, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 54, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 8.0 - }, - { - "Owner": 54, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 55, - "Name": "Entity", - "Components": [ - { - "Owner": 55, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 55, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 55, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 55, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 7.300000190734863, - "y": -0.0, - "z": 8.0 - }, - { - "Owner": 55, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 56, - "Name": "Entity", - "Components": [ - { - "Owner": 56, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 56, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 56, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 2.0 - }, - { - "Owner": 56, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 11132040061712174085 - } - } - ], - "Children": [] - }, - { - "Id": 57, - "Name": "Entity", - "Components": [ - { - "Owner": 57, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 57, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 57, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 57, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": 2.0 - }, - { - "Owner": 57, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 58, - "Name": "Entity", - "Components": [ - { - "Owner": 58, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 58, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 58, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": -0.012340724468231202, - "y": 0.4639037549495697, - "z": 0.7069990038871765, - "w": 0.5336602330207825 - }, - { - "Owner": 58, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -0.0, - "z": 2.0 - }, - { - "Owner": 58, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 59, - "Name": "Entity", - "Components": [ - { - "Owner": 59, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 2.5, - "y": 1.0, - "z": 2.5 - }, - { - "Owner": 59, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 59, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": -4.0 - }, - { - "Owner": 59, - "Component Type": 6208564340805693071, - "Component Name": "struct legion::rendering::renderable", - "value0": { - "value0": 5503224543670688896 - }, - "value1": { - "value0": 11132040061712174085 - } - } - ], - "Children": [] - }, - { - "Id": 60, - "Name": "Entity", - "Components": [ - { - "Owner": 60, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 60, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 60, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 1.0 - }, - { - "Owner": 60, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 10.0, - "y": -3.0, - "z": -4.0 - }, - { - "Owner": 60, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" - } - ], - "Children": [] - }, - { - "Id": 61, - "Name": "Entity", - "Components": [ - { - "Owner": 61, - "Component Type": 17853874947922195038, - "Component Name": "struct legion::physics::physicsComponent" - }, - { - "Owner": 61, - "Component Type": 4306336647627884212, - "Component Name": "struct legion::core::scale", - "x": 1.0, - "y": 1.0, - "z": 1.0 - }, - { - "Owner": 61, - "Component Type": 7097645533378480892, - "Component Name": "struct legion::core::rotation", - "x": 0.42545178532600405, - "y": 0.42545178532600405, - "z": 0.23733900487422944, - "w": 0.7626610398292542 - }, - { - "Owner": 61, - "Component Type": 1703773829785910945, - "Component Name": "struct legion::core::position", - "x": 13.0, - "y": 2.0, - "z": -4.0 - }, - { - "Owner": 61, - "Component Type": 330077082970471169, - "Component Name": "struct legion::physics::identifier" + "Owner": 28, + "Component Type": 12879719932595839335, + "Component Name": "struct legion::audio::audio_source" } ], "Children": [] diff --git a/applications/sandbox/assets/shaders/color.shs b/applications/sandbox/assets/shaders/color.shs new file mode 100644 index 000000000..24cb60a43 --- /dev/null +++ b/applications/sandbox/assets/shaders/color.shs @@ -0,0 +1,24 @@ +#version 450 + +generate(vertex, fragment) + +#include + +shader(vertex) +{ + void main(void) + { + gl_Position = ModelToScreenSpacePosition(position); + } +} + +shader(fragment) +{ + uniform vec4 color; + out vec4 fragment_color; + + void main(void) + { + fragment_color = color; + } +} diff --git a/applications/sandbox/assets/shaders/normal.shs b/applications/sandbox/assets/shaders/normal.shs index 7dd222af9..9cde1d49f 100644 --- a/applications/sandbox/assets/shaders/normal.shs +++ b/applications/sandbox/assets/shaders/normal.shs @@ -3,6 +3,7 @@ generate(vertex, fragment) #include +#include shader(vertex) { @@ -19,6 +20,8 @@ shader(fragment) void main(void) { - fragment_color = vec4((abs(stdin(normal)) + clamp(stdin(normal), 0.0, 1.0) * 2) / 3, 1); + vec3 normal = NormalMap(material_input.normalHeight, stdio(uv), GetTBNMatrix()); + + fragment_color = vec4((abs(normal) + clamp(normal, 0.0, 1.0) * 2) / 3, 1); } } diff --git a/applications/sandbox/assets/shaders/pbr.shs b/applications/sandbox/assets/shaders/pbr.shs index 2742024c7..ec2c97400 100644 --- a/applications/sandbox/assets/shaders/pbr.shs +++ b/applications/sandbox/assets/shaders/pbr.shs @@ -1,4 +1,5 @@ #version 450 +#state CULL BACK generate(fragment, vertex) @@ -17,16 +18,26 @@ shader(vertex) shader(fragment) { + uniform bool discardExcess; + out vec4 fragment_color; void main(void) { Camera camera = GetCamera(); + vec3 worldNormal = GetWorldNormal(); Material material = ExtractMaterial(stdio(uv), camera, worldNormal, GetWorldTangent(worldNormal)); - vec3 lighting = GetAllLighting(material, camera, GetWorldPosition(), worldNormal); + if(discardExcess) + if(material.texcoords.x < 0 || material.texcoords.x > 1 || material.texcoords.y < 0 || material.texcoords.y > 1) + discard; + + vec3 lighting = GammaCorrect(GetAllLighting(material, camera, GetWorldPosition())); + + vec3 unitDir = reflect(-normalize(camera.toView), material.normal); + lighting += mix(vec3(1.f), vec3(0.2f, 0.4f, 1.0f), clamp(dot(unitDir, vec3(0.f, 1.f, 0.f)) + 0.5f, 0.f, 1.f)) * pow(1.0 - material.roughness, 4); - fragment_color = vec4(GammaCorrect(lighting), material.albedo.a); + fragment_color = vec4(lighting, material.albedo.a); } } diff --git a/applications/sandbox/assets/shaders/skybox.shs b/applications/sandbox/assets/shaders/skybox.shs index 88057b9c6..0dcf78b4e 100644 --- a/applications/sandbox/assets/shaders/skybox.shs +++ b/applications/sandbox/assets/shaders/skybox.shs @@ -20,7 +20,7 @@ shader(fragment) void main(void) { - vec3 unitDir = stdin(position); + vec3 unitDir = normalize(stdin(position)); fragment_color = vec4(mix(vec3(1.f), vec3(0.2f, 0.4f, 1.0f), clamp(dot(unitDir, vec3(0.f, 1.f, 0.f)) + 0.5f, 0.f, 1.f)), 1.f); } diff --git a/applications/sandbox/assets/shaders/worldnormal.shs b/applications/sandbox/assets/shaders/worldnormal.shs new file mode 100644 index 000000000..51b33dcf4 --- /dev/null +++ b/applications/sandbox/assets/shaders/worldnormal.shs @@ -0,0 +1,26 @@ +#version 450 + +generate(vertex, fragment) + +#include + +shader(vertex) +{ + void main(void) + { + gl_Position = ModelToScreenSpacePosition(position); + PropagateStdIO(); + } +} + +shader(fragment) +{ + out vec4 fragment_color; + + void main(void) + { + vec3 normal = GetWorldNormal(); + + fragment_color = vec4((abs(normal) + clamp(normal, 0.0, 1.0) * 2) / 3, 1); + } +} diff --git a/applications/sandbox/assets/shaders/worldposition.shs b/applications/sandbox/assets/shaders/worldposition.shs new file mode 100644 index 000000000..c24cc9bf7 --- /dev/null +++ b/applications/sandbox/assets/shaders/worldposition.shs @@ -0,0 +1,24 @@ +#version 450 + +generate(vertex, fragment) + +#include + +shader(vertex) +{ + void main(void) + { + gl_Position = ModelToScreenSpacePosition(position); + PropagateStdIO(); + } +} + +shader(fragment) +{ + out vec4 fragment_color; + + void main(void) + { + fragment_color = vec4(GetWorldPosition(), 1); + } +} diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-MRDAo.png b/applications/sandbox/assets/textures/aluminum/aluminum-MRDAo.png new file mode 100644 index 000000000..aa7302748 --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9b1f5f37023e760b4c8c3613b897c8fa695ea76abd77a0eb400433cdede3821 +size 2834440 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-albedo.png b/applications/sandbox/assets/textures/aluminum/aluminum-albedo.png new file mode 100644 index 000000000..074a03b5b --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8007049bc99fedbc3f3b732c505b47ebb94358fdf368adeefbe2ee5a826cb211 +size 19628 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-ao.png b/applications/sandbox/assets/textures/aluminum/aluminum-ao.png new file mode 100644 index 000000000..8d02c149b --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f69931c595cfe75484ee8d071e54f03d2e6eb5e4072123811b1cfc3e2a7947fa +size 78118 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-emissive.png b/applications/sandbox/assets/textures/aluminum/aluminum-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-height.png b/applications/sandbox/assets/textures/aluminum/aluminum-height.png new file mode 100644 index 000000000..a11c0471d --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4500cdb6875f0421619900aab90aac049389dc7487e383d3f10fae7e8e279c1 +size 78120 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-metallic-inverted.png b/applications/sandbox/assets/textures/aluminum/aluminum-metallic-inverted.png new file mode 100644 index 000000000..4a46c29e4 --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-metallic-inverted.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b6ee33555edbb201ed922a0710ee4bf405b053399d6e2852da71b79c8500da6 +size 4929 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-metallic.png b/applications/sandbox/assets/textures/aluminum/aluminum-metallic.png new file mode 100644 index 000000000..30292873e --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-metallic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ea72adab41824a5fef4ccce96ed993b54329c1b40654d6c2e5696eda9d67d9c +size 8575 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-normal.png b/applications/sandbox/assets/textures/aluminum/aluminum-normal.png new file mode 100644 index 000000000..add837f10 --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f1f211d3f603e0cbf6c2d72cf4dd5aa0d30de33cd011d03d11c0788992b3d0f +size 25602 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-normalHeight.png b/applications/sandbox/assets/textures/aluminum/aluminum-normalHeight.png new file mode 100644 index 000000000..e8636520c --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de0e6be701d6ff362251539c2ae53bd6c0ff90e37fcd848c7dafcb61c1a9ff4b +size 29192 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-roughness-inverted.png b/applications/sandbox/assets/textures/aluminum/aluminum-roughness-inverted.png new file mode 100644 index 000000000..d3f636c5b --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-roughness-inverted.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e78b52a7210a5975eec2e4ff2846b8fdcc6c494c4d9860223595034f3abbfb0b +size 1955525 diff --git a/applications/sandbox/assets/textures/aluminum/aluminum-roughness.png b/applications/sandbox/assets/textures/aluminum/aluminum-roughness.png new file mode 100644 index 000000000..9a3283576 --- /dev/null +++ b/applications/sandbox/assets/textures/aluminum/aluminum-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf425de69daa965b8cabfd8e4430b4b7bb58b949cadf32ff746226b158b6919f +size 1762692 diff --git a/applications/sandbox/assets/textures/bog/bog-MRDAo.png b/applications/sandbox/assets/textures/bog/bog-MRDAo.png new file mode 100644 index 000000000..37c29f72c --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af4447fe2b046eddaedc3a383c1dc347f71c67bb66202240015dcb13f23bc112 +size 5377518 diff --git a/applications/sandbox/assets/textures/bog/bog-albedo.png b/applications/sandbox/assets/textures/bog/bog-albedo.png new file mode 100644 index 000000000..e940edf17 --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecf09a4a881ca2f2df435f86c87f15315983049e5e7097d89753858a75cbad69 +size 9050608 diff --git a/applications/sandbox/assets/textures/bog/bog-ao.png b/applications/sandbox/assets/textures/bog/bog-ao.png new file mode 100644 index 000000000..279c86cc3 --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9d13f7162dfa2b82473f60594ef0b3a021988f03387cb7799184212533dc6b2 +size 2417699 diff --git a/applications/sandbox/assets/textures/bog/bog-emissive.png b/applications/sandbox/assets/textures/bog/bog-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/bog/bog-height.png b/applications/sandbox/assets/textures/bog/bog-height.png new file mode 100644 index 000000000..e847329af --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef588018398a80c66bba5b83e330e506b582d2d3630b54231c7135e4b06235f0 +size 2307016 diff --git a/applications/sandbox/assets/textures/bog/bog-metallic.png b/applications/sandbox/assets/textures/bog/bog-metallic.png new file mode 100644 index 000000000..57ee52c29 --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-metallic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:853c74cbddd9365725ee0f8e419931080c72fbb1f0be9eb70292e66327868198 +size 56038 diff --git a/applications/sandbox/assets/textures/bog/bog-normal.png b/applications/sandbox/assets/textures/bog/bog-normal.png new file mode 100644 index 000000000..33464d3c1 --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5392b48cb314921734667812cae96de1647388579e1758607a5fe74d1801f94 +size 8553235 diff --git a/applications/sandbox/assets/textures/bog/bog-normalHeight.png b/applications/sandbox/assets/textures/bog/bog-normalHeight.png new file mode 100644 index 000000000..b062a9c2a --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e77e64db181bca9203016f52fe68f7f2f85208906648d95e43c07c0ee4aea964 +size 9832961 diff --git a/applications/sandbox/assets/textures/bog/bog-roughness.png b/applications/sandbox/assets/textures/bog/bog-roughness.png new file mode 100644 index 000000000..ad231b187 --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70b7e7c1c0a2512975d9e39ddcba27d0c67fbd39259ba20486ee2f9b6d0c652e +size 4595098 diff --git a/applications/sandbox/assets/textures/bog/bog-smoothness.png b/applications/sandbox/assets/textures/bog/bog-smoothness.png new file mode 100644 index 000000000..18f91bb32 --- /dev/null +++ b/applications/sandbox/assets/textures/bog/bog-smoothness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fd39f12d19e8d761aaa294c119d7b6811322031883a6dfd5ab06e26edac600c +size 4602355 diff --git a/applications/sandbox/assets/textures/copper/copper-MRDAo.png b/applications/sandbox/assets/textures/copper/copper-MRDAo.png new file mode 100644 index 000000000..602863ac8 --- /dev/null +++ b/applications/sandbox/assets/textures/copper/copper-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aeefe6103f3d0ad53af59010a70f334eb41d21bc2c3f8ca454e64c5edb820a0d +size 7384456 diff --git a/applications/sandbox/assets/textures/copper/copper-albedo.png b/applications/sandbox/assets/textures/copper/copper-albedo.png new file mode 100644 index 000000000..1570456a2 --- /dev/null +++ b/applications/sandbox/assets/textures/copper/copper-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3903cb3b215269b8814d2f9f2f688fedad62b9e3eae34d490d408ed168dbd1c9 +size 4896506 diff --git a/applications/sandbox/assets/textures/copper/copper-emissive.png b/applications/sandbox/assets/textures/copper/copper-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/copper/copper-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/copper/copper-normalHeight.png b/applications/sandbox/assets/textures/copper/copper-normalHeight.png new file mode 100644 index 000000000..8fe8d5c47 --- /dev/null +++ b/applications/sandbox/assets/textures/copper/copper-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4d71c9b8e585f707b1501d7814b93d5c202e50d393b99c0b553ec88df5bcabc +size 4722616 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-MRDAo.png b/applications/sandbox/assets/textures/fabric/fabric-highres-MRDAo.png new file mode 100644 index 000000000..7f432a844 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7bfc532e34fedc090b4978cdf17bdb8db078d6e8680b64e3763ad6941401464 +size 8766585 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-albedo.png b/applications/sandbox/assets/textures/fabric/fabric-highres-albedo.png new file mode 100644 index 000000000..884724caa --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34d203fee1c116694c944706436f7762ea87854c4fb4ff1825429f8b21432b9d +size 17622366 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-ao.png b/applications/sandbox/assets/textures/fabric/fabric-highres-ao.png new file mode 100644 index 000000000..898926606 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a7d4c22a9ba392acc33e3bfb58bb3199853433883c48a21da079b84732e8958 +size 7214774 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-emissive.png b/applications/sandbox/assets/textures/fabric/fabric-highres-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-height.png b/applications/sandbox/assets/textures/fabric/fabric-highres-height.png new file mode 100644 index 000000000..2b00897d1 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5ab44bcb3f6c5c6d33c147b83b366d172c4401e2f284e276bf185bcce2f1be1 +size 4078783 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-metallic.png b/applications/sandbox/assets/textures/fabric/fabric-highres-metallic.png new file mode 100644 index 000000000..b1fd5c6f0 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-metallic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44438906c84ea9c94ea11ec99e2120f73f5d986fb821c53ba29cab27fc683e75 +size 166429 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-normal.png b/applications/sandbox/assets/textures/fabric/fabric-highres-normal.png new file mode 100644 index 000000000..14e551c05 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a1cb392956631441288756b8c5dda270cca2f1037453042f6494e4e9a5c0cb6 +size 13105438 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-normalHeight.png b/applications/sandbox/assets/textures/fabric/fabric-highres-normalHeight.png new file mode 100644 index 000000000..6a27ca0f3 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57e2cd66d8df24091b450fc4f6a9a2da70604876c8735c4bca48603c3063a4a4 +size 11276455 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-roughness-inverted.png b/applications/sandbox/assets/textures/fabric/fabric-highres-roughness-inverted.png new file mode 100644 index 000000000..dbad47d77 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-roughness-inverted.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:359e1d3fd50a2083e303818fbbcf8409229ca60af4f07bc12b5b7cdbc75103b1 +size 6783722 diff --git a/applications/sandbox/assets/textures/fabric/fabric-highres-roughness.png b/applications/sandbox/assets/textures/fabric/fabric-highres-roughness.png new file mode 100644 index 000000000..5605c4944 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-highres-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61478ffd77fe7f9196e894efba93a0b0554899edb59ee25dadae11d56fda7c98 +size 4790065 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-MRDAo.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-MRDAo.png new file mode 100644 index 000000000..06b133a40 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c1cee04778819242d22ad32fd906dfe39ef506189d6dc49cc98462c5c1b4f72 +size 5307011 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-albedo.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-albedo.png new file mode 100644 index 000000000..cd728ae22 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4038b6363adab5cb45d46e0d30f4736fc8a05fc0e51da82ce83455d3b366b44c +size 7491183 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-ao.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-ao.png new file mode 100644 index 000000000..5178efc8b --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:052696bd47bf453a3b3c947b10b97e7fe060b31d87efbca6ad2d759da68ec855 +size 4662021 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-emissive.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-height.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-height.png new file mode 100644 index 000000000..91f54b239 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de554b22e730a0864c6bc16ea432b9b8088a4a83445ba09a910daba854f6bb48 +size 2269137 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-metallic.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-metallic.png new file mode 100644 index 000000000..dd7a3477f --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-metallic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbeac4d92c2a6571a64f870c4987a30abc1d60cdaffed5ee1ab8dd473019c8bb +size 1087521 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-normal.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-normal.png new file mode 100644 index 000000000..06d263d6c --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3011ff97bb9f87e41906b236432b0be5f04344bc745e26787d986de9ea1e7d4 +size 6929257 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-normalHeight.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-normalHeight.png new file mode 100644 index 000000000..df99b8c91 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8284ad653aad2188412fdda8e15dd3713612018ddcd297d55323289be7a3ad99 +size 6271948 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-roughness-inverted.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-roughness-inverted.png new file mode 100644 index 000000000..824e59b81 --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-roughness-inverted.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a6266e30cd5bd6280f19a3c8af6ac037d270d597ad867124e59cc5409eac107 +size 3083123 diff --git a/applications/sandbox/assets/textures/fabric/fabric-lowres-roughness.png b/applications/sandbox/assets/textures/fabric/fabric-lowres-roughness.png new file mode 100644 index 000000000..48d1e2b5d --- /dev/null +++ b/applications/sandbox/assets/textures/fabric/fabric-lowres-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14483484a849cefd26bab2aecf45f44704ac4d1666c4cb4d7fb16e0e97d2b098 +size 2177451 diff --git a/applications/sandbox/assets/textures/iron/rustediron-MRDAo.png b/applications/sandbox/assets/textures/iron/rustediron-MRDAo.png new file mode 100644 index 000000000..08f27f5df --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:154bb8f06e16d1593dbe7282cd34f72b55b774266a36c8c13b59cecfffb0f1f1 +size 8582652 diff --git a/applications/sandbox/assets/textures/iron/rustediron-albedo.png b/applications/sandbox/assets/textures/iron/rustediron-albedo.png new file mode 100644 index 000000000..d31d2924f --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea49f2c44684c8810dfb628297c6b1bd8a8477fc77c469510f54db83edd1ba3b +size 10806142 diff --git a/applications/sandbox/assets/textures/iron/rustediron-ao.png b/applications/sandbox/assets/textures/iron/rustediron-ao.png new file mode 100644 index 000000000..b42725412 --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:361a9f4083560c8f7b8ac50f27619eb9b0a3f9c21375b7a9fad8d377b61956f0 +size 2115872 diff --git a/applications/sandbox/assets/textures/iron/rustediron-emissive.png b/applications/sandbox/assets/textures/iron/rustediron-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/iron/rustediron-height.png b/applications/sandbox/assets/textures/iron/rustediron-height.png new file mode 100644 index 000000000..c52412a9a --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0de79aec174692a3742157d504100a226a74c9934f35f89dfd2cf10fa1f34384 +size 712185 diff --git a/applications/sandbox/assets/textures/iron/rustediron-metallic.png b/applications/sandbox/assets/textures/iron/rustediron-metallic.png new file mode 100644 index 000000000..3bc5d4ba7 --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-metallic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:571e89a4552fd8ae250e39a6058b484047798815f751f9eace60455ae64f0f91 +size 3419179 diff --git a/applications/sandbox/assets/textures/iron/rustediron-normal.png b/applications/sandbox/assets/textures/iron/rustediron-normal.png new file mode 100644 index 000000000..1c196fc89 --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05c003964568c6657fd7817e58ab7d965b8f854821e59fb768688bc7393d6cfb +size 3143620 diff --git a/applications/sandbox/assets/textures/iron/rustediron-normalHeight.png b/applications/sandbox/assets/textures/iron/rustediron-normalHeight.png new file mode 100644 index 000000000..249e12d1b --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba95e833bfc2b2117edd888e6693163bf1572fcf7ac29bf05c1db1677a10a8ef +size 2141745 diff --git a/applications/sandbox/assets/textures/iron/rustediron-roughness.png b/applications/sandbox/assets/textures/iron/rustediron-roughness.png new file mode 100644 index 000000000..7e3bdd766 --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b078c4d5c20f9a04e7fe48c96119629d4692897bb6fa414c8419200946f125bc +size 3116093 diff --git a/applications/sandbox/assets/textures/iron/rustediron-smoothness.png b/applications/sandbox/assets/textures/iron/rustediron-smoothness.png new file mode 100644 index 000000000..b717fc03b --- /dev/null +++ b/applications/sandbox/assets/textures/iron/rustediron-smoothness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa1c864af35381ae75dea4e1a788b1682ef21d6fa64b3c26510d2b377658661c +size 3097459 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-MRDAo.png b/applications/sandbox/assets/textures/paint/paint-peeling-MRDAo.png new file mode 100644 index 000000000..3b7157ee0 --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5d73073f79149cf9c5290e53d7b6692885401642088e3ccbdb0a8136f76cf8a +size 2683772 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-albedo.png b/applications/sandbox/assets/textures/paint/paint-peeling-albedo.png new file mode 100644 index 000000000..5cc7e20c7 --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8fb0a5cc6f46c8d42f7d8c7d52252f07851f98f6cc36232a4579852f14eb06e +size 8526049 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-ao.png b/applications/sandbox/assets/textures/paint/paint-peeling-ao.png new file mode 100644 index 000000000..79dc46b96 --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75477cd472e53799fcf414dc095c17247de143d25f937f1d0d297418320862b8 +size 1221625 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-emissive.png b/applications/sandbox/assets/textures/paint/paint-peeling-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-height.png b/applications/sandbox/assets/textures/paint/paint-peeling-height.png new file mode 100644 index 000000000..81d6ba8a3 --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8123c0b01db65697583737a1f33b34e3e7bf37752c8288dc318b9c5efbec006d +size 912659 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-metalness.png b/applications/sandbox/assets/textures/paint/paint-peeling-metalness.png new file mode 100644 index 000000000..51ec91df6 --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-metalness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:659a75f69d9d1d48e0b5b792688baf26dcbe59328ca0a292f1f7799b58d602d6 +size 33033 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-normal.png b/applications/sandbox/assets/textures/paint/paint-peeling-normal.png new file mode 100644 index 000000000..8e34ed661 --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:801abb0280042d7c2af5e478eaa792b37eda20e60866b4ba26a71508850fd1a3 +size 8145756 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-normalHeight.png b/applications/sandbox/assets/textures/paint/paint-peeling-normalHeight.png new file mode 100644 index 000000000..978caba71 --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcb339622cd7a6872d4f4bbd5b23748a6b10c3177274d92146621d11905f09f6 +size 8308210 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-roughness.png b/applications/sandbox/assets/textures/paint/paint-peeling-roughness.png new file mode 100644 index 000000000..8daa549bf --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dbe4405dba726d1f56313f60e10c9ec01e96045cf33751bcb3fc722ccd207df +size 1950520 diff --git a/applications/sandbox/assets/textures/paint/paint-peeling-smoothness.png b/applications/sandbox/assets/textures/paint/paint-peeling-smoothness.png new file mode 100644 index 000000000..a8151041c --- /dev/null +++ b/applications/sandbox/assets/textures/paint/paint-peeling-smoothness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20f9b86979edbad77a76761e8ceadd56d266e0fb902a5883b10e64c16487504b +size 1901113 diff --git a/applications/sandbox/assets/textures/rock/rock-MRDAo.png b/applications/sandbox/assets/textures/rock/rock-MRDAo.png new file mode 100644 index 000000000..8bc5805d8 --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8432a152780bfe5596258b51b7371015d82e71ef42e7e535599216bfbdd0e22 +size 5105443 diff --git a/applications/sandbox/assets/textures/rock/rock-albedo.png b/applications/sandbox/assets/textures/rock/rock-albedo.png new file mode 100644 index 000000000..aaa4a9d8c --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d150c8e09d7f6509ec3d292abb011ce5da0ffe97f71090442277b05e8824e624 +size 11691402 diff --git a/applications/sandbox/assets/textures/rock/rock-ao.png b/applications/sandbox/assets/textures/rock/rock-ao.png new file mode 100644 index 000000000..a30048de7 --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e0a7a198b270e6c5c17eb8f390ce6314166cb5f68d7f0b82c0d43d4956614c9 +size 1168307 diff --git a/applications/sandbox/assets/textures/rock/rock-emissive.png b/applications/sandbox/assets/textures/rock/rock-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/rock/rock-height.png b/applications/sandbox/assets/textures/rock/rock-height.png new file mode 100644 index 000000000..2abbb4162 --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32d4a5f39ab6d657738ff49f70b72812583652b5c0164d26d0ae5690678c659b +size 1247672 diff --git a/applications/sandbox/assets/textures/rock/rock-metallic.png b/applications/sandbox/assets/textures/rock/rock-metallic.png new file mode 100644 index 000000000..d4363ce8b --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-metallic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a711a1155613bf99484e6dfb3682678d5f07b6a4956ff0785cee6486ea71d51e +size 5015 diff --git a/applications/sandbox/assets/textures/rock/rock-normal.png b/applications/sandbox/assets/textures/rock/rock-normal.png new file mode 100644 index 000000000..b59f8dbb7 --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bb8e0f5bdbdd0276b939ee970ad88a027830a1299ab71bf3ee177297a941220 +size 10133880 diff --git a/applications/sandbox/assets/textures/rock/rock-normalHeight.png b/applications/sandbox/assets/textures/rock/rock-normalHeight.png new file mode 100644 index 000000000..bb84b19e9 --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9465b03140fbbfc3b83dd33986f53ac7f997209ddda6f5e10370882edc4a68e2 +size 11184606 diff --git a/applications/sandbox/assets/textures/rock/rock-roughness-inverted.png b/applications/sandbox/assets/textures/rock/rock-roughness-inverted.png new file mode 100644 index 000000000..c5ba8d896 --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-roughness-inverted.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:887e4f6e41ea15b901f66e972a5d8a55451003794dd27921c7cdccba5bb83c5d +size 3671999 diff --git a/applications/sandbox/assets/textures/rock/rock-roughness.png b/applications/sandbox/assets/textures/rock/rock-roughness.png new file mode 100644 index 000000000..981d48137 --- /dev/null +++ b/applications/sandbox/assets/textures/rock/rock-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:612596c9c9229f3934ee6e08222ef703f48a2f563d00344aa8acf004363cb825 +size 3683622 diff --git a/applications/sandbox/assets/textures/slate/slate-MRDAo.png b/applications/sandbox/assets/textures/slate/slate-MRDAo.png new file mode 100644 index 000000000..b4992306f --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f8d17d20a71dad270979a7abe782cf090723a680959e8bdcecd614b55efe4b1 +size 5348492 diff --git a/applications/sandbox/assets/textures/slate/slate-albedo.png b/applications/sandbox/assets/textures/slate/slate-albedo.png new file mode 100644 index 000000000..e16139020 --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa03b269f9a94374b72c8f985d203a4a533e4be78bc0fd6aac3b636bab4f8765 +size 8497552 diff --git a/applications/sandbox/assets/textures/slate/slate-ao.png b/applications/sandbox/assets/textures/slate/slate-ao.png new file mode 100644 index 000000000..c18ef979e --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aad4a6817fa1e2bd941bf08e65693bf47690f49f913eb6225adff51ccd7b2d31 +size 2518253 diff --git a/applications/sandbox/assets/textures/slate/slate-emissive.png b/applications/sandbox/assets/textures/slate/slate-emissive.png new file mode 100644 index 000000000..86aba0c0f --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d592b7539fef91c2488e9a777b192423b275157feb3586ef036c59f8c1111f9f +size 17137 diff --git a/applications/sandbox/assets/textures/slate/slate-height.png b/applications/sandbox/assets/textures/slate/slate-height.png new file mode 100644 index 000000000..25b8717da --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c76bbb1bbedc4cceae4d96b8bfaf27231cbc737ce4a3c756fbcd8ff40f99668 +size 1212176 diff --git a/applications/sandbox/assets/textures/slate/slate-normal.png b/applications/sandbox/assets/textures/slate/slate-normal.png new file mode 100644 index 000000000..f72f0854d --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca0b160ee2c5b72b39906196ce0eca83c30110cab07f2bac6bfb0a1d51c75316 +size 8291709 diff --git a/applications/sandbox/assets/textures/slate/slate-normalHeight.png b/applications/sandbox/assets/textures/slate/slate-normalHeight.png new file mode 100644 index 000000000..f15cbbb63 --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:609fc68b67bf1037973be6d8bd9883a22e40cb1985c38249cafc18d33e0a394a +size 10083732 diff --git a/applications/sandbox/assets/textures/slate/slate-roughness.png b/applications/sandbox/assets/textures/slate/slate-roughness.png new file mode 100644 index 000000000..77745f8b5 --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:607611109197933f21017cca337c4a2f3c667f03ab31a8abd37b192d7a9e9868 +size 2740285 diff --git a/applications/sandbox/assets/textures/slate/slate-smoothness.png b/applications/sandbox/assets/textures/slate/slate-smoothness.png new file mode 100644 index 000000000..2be1d6128 --- /dev/null +++ b/applications/sandbox/assets/textures/slate/slate-smoothness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4fd8cc5bb5febf6c8afde8fdb146f7c0a5fee73375d5788598a8cd6b7fbb058 +size 2734205 diff --git a/applications/sandbox/assets/textures/test/test-MRDAo.png b/applications/sandbox/assets/textures/test/test-MRDAo.png new file mode 100644 index 000000000..a99182977 --- /dev/null +++ b/applications/sandbox/assets/textures/test/test-MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95b099fea2a6b53437f0f24cf75fc12b2cf7bb671748ef57797a92fd00f417be +size 18709 diff --git a/applications/sandbox/assets/textures/test/test-albedo.png b/applications/sandbox/assets/textures/test/test-albedo.png new file mode 100644 index 000000000..5c69cda3f --- /dev/null +++ b/applications/sandbox/assets/textures/test/test-albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4f59ab125e70eb1e391db11e37c9f4291d4bf97e7a2cea08e25d3bd4aa318d7 +size 105656 diff --git a/applications/sandbox/assets/textures/test/test-ao.png b/applications/sandbox/assets/textures/test/test-ao.png new file mode 100644 index 000000000..2aac3d186 --- /dev/null +++ b/applications/sandbox/assets/textures/test/test-ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b0d131bc8846cdeb6b93f0df6a62d5b54d48dd56ab5bc53d8a9d10c7e51dca3 +size 33584 diff --git a/applications/sandbox/assets/textures/test/test-height-inverted.png b/applications/sandbox/assets/textures/test/test-height-inverted.png new file mode 100644 index 000000000..539ab44aa --- /dev/null +++ b/applications/sandbox/assets/textures/test/test-height-inverted.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47ef614aac66f000538a36842121f1faf96197b297593dd724602e8583c91d56 +size 21817 diff --git a/applications/sandbox/assets/textures/test/test-height.png b/applications/sandbox/assets/textures/test/test-height.png new file mode 100644 index 000000000..204a1ae15 --- /dev/null +++ b/applications/sandbox/assets/textures/test/test-height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5a4d267961f1e3423ad5d3f9b75a0c81bc12f8b341853ac8a43fcbaf97ed9c6 +size 21523 diff --git a/applications/sandbox/assets/textures/test/test-normal.bmp b/applications/sandbox/assets/textures/test/test-normal.bmp new file mode 100644 index 000000000..f2c132044 Binary files /dev/null and b/applications/sandbox/assets/textures/test/test-normal.bmp differ diff --git a/applications/sandbox/assets/textures/test/test-normal.png b/applications/sandbox/assets/textures/test/test-normal.png new file mode 100644 index 000000000..99603ee25 --- /dev/null +++ b/applications/sandbox/assets/textures/test/test-normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce94bc12902b11f1624019687c304c15a67b5cc28ac913762a51bb8b49e3be41 +size 34253 diff --git a/applications/sandbox/assets/textures/test/test-normalHeight.png b/applications/sandbox/assets/textures/test/test-normalHeight.png new file mode 100644 index 000000000..56d12165e --- /dev/null +++ b/applications/sandbox/assets/textures/test/test-normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52409913bc9e7cd43131a43e76008608ba001cabfc5dde0ef8a27a6320cda4f7 +size 61309 diff --git a/applications/sandbox/engine/resources/default/MRDAo b/applications/sandbox/engine/resources/default/MRDAo index 75d92bcf5..bf3b7a6bb 100644 Binary files a/applications/sandbox/engine/resources/default/MRDAo and b/applications/sandbox/engine/resources/default/MRDAo differ diff --git a/applications/sandbox/engine/resources/default/MRDAo.png b/applications/sandbox/engine/resources/default/MRDAo.png new file mode 100644 index 000000000..98a66ee90 --- /dev/null +++ b/applications/sandbox/engine/resources/default/MRDAo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9375ded5f673549b3ab1cf7e91eef1772e69190afeb395b1a608e4cc97a758b +size 1863980 diff --git a/applications/sandbox/engine/resources/default/Thumbs.db b/applications/sandbox/engine/resources/default/Thumbs.db index 00cef7ef2..d57078a3b 100644 Binary files a/applications/sandbox/engine/resources/default/Thumbs.db and b/applications/sandbox/engine/resources/default/Thumbs.db differ diff --git a/applications/sandbox/engine/resources/default/albedo b/applications/sandbox/engine/resources/default/albedo index 72f7c36f2..533d9bd29 100644 Binary files a/applications/sandbox/engine/resources/default/albedo and b/applications/sandbox/engine/resources/default/albedo differ diff --git a/applications/sandbox/engine/resources/default/albedo.png b/applications/sandbox/engine/resources/default/albedo.png new file mode 100644 index 000000000..f24cbde5d --- /dev/null +++ b/applications/sandbox/engine/resources/default/albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4020970a2d48f07cf40d450f79215a5373159a15ddc783bd9d22a0cd0a37ec10 +size 204200 diff --git a/applications/sandbox/engine/resources/default/ao b/applications/sandbox/engine/resources/default/ao index 0a7d414a7..83a0aea6e 100644 Binary files a/applications/sandbox/engine/resources/default/ao and b/applications/sandbox/engine/resources/default/ao differ diff --git a/applications/sandbox/engine/resources/default/ao.png b/applications/sandbox/engine/resources/default/ao.png new file mode 100644 index 000000000..da34949c6 --- /dev/null +++ b/applications/sandbox/engine/resources/default/ao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24e948d150b206c750532466fad0702c77e0f40c0dec13abefeecb4425ba088f +size 827854 diff --git a/applications/sandbox/engine/resources/default/emissive b/applications/sandbox/engine/resources/default/emissive index 9d71be322..49e38ddb0 100644 Binary files a/applications/sandbox/engine/resources/default/emissive and b/applications/sandbox/engine/resources/default/emissive differ diff --git a/applications/sandbox/engine/resources/default/emissive.png b/applications/sandbox/engine/resources/default/emissive.png new file mode 100644 index 000000000..2e7062eea --- /dev/null +++ b/applications/sandbox/engine/resources/default/emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:643a27fec0a2ef4ba9238352632c0ecf10bae46041a9fdfd1ede9c54fc1bbb42 +size 76332 diff --git a/applications/sandbox/engine/resources/default/height b/applications/sandbox/engine/resources/default/height index 254ec809e..27027a401 100644 Binary files a/applications/sandbox/engine/resources/default/height and b/applications/sandbox/engine/resources/default/height differ diff --git a/applications/sandbox/engine/resources/default/height.png b/applications/sandbox/engine/resources/default/height.png new file mode 100644 index 000000000..c44674627 --- /dev/null +++ b/applications/sandbox/engine/resources/default/height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79a904ac1f18e5fcb9a43abfdc912a073b1199c6e479ea414869d8477c496d61 +size 103672 diff --git a/applications/sandbox/engine/resources/default/metal b/applications/sandbox/engine/resources/default/metal index 3067c919d..1ff2dcff0 100644 Binary files a/applications/sandbox/engine/resources/default/metal and b/applications/sandbox/engine/resources/default/metal differ diff --git a/applications/sandbox/engine/resources/default/metal.png b/applications/sandbox/engine/resources/default/metal.png new file mode 100644 index 000000000..29e3c7783 --- /dev/null +++ b/applications/sandbox/engine/resources/default/metal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e400261d1e3b4b25582163915451df67801e184332c7d3b111649632f87d742 +size 25004 diff --git a/applications/sandbox/engine/resources/default/normal b/applications/sandbox/engine/resources/default/normal index d389ca456..9937bb830 100644 Binary files a/applications/sandbox/engine/resources/default/normal and b/applications/sandbox/engine/resources/default/normal differ diff --git a/applications/sandbox/engine/resources/default/normal.png b/applications/sandbox/engine/resources/default/normal.png new file mode 100644 index 000000000..2d52b468a --- /dev/null +++ b/applications/sandbox/engine/resources/default/normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a42fb76c248096be95e6e0066d5c208fe038f2b8ad756022dd36cfa46df0577 +size 1004849 diff --git a/applications/sandbox/engine/resources/default/normalHeight b/applications/sandbox/engine/resources/default/normalHeight index c7fe5f71c..e29e03824 100644 Binary files a/applications/sandbox/engine/resources/default/normalHeight and b/applications/sandbox/engine/resources/default/normalHeight differ diff --git a/applications/sandbox/engine/resources/default/normalHeight.png b/applications/sandbox/engine/resources/default/normalHeight.png new file mode 100644 index 000000000..330153912 --- /dev/null +++ b/applications/sandbox/engine/resources/default/normalHeight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7abf043e6581587d7473a8298fda1c09cf2011c177f4c72125b92d2852b65a47 +size 667682 diff --git a/applications/sandbox/engine/resources/default/roughness b/applications/sandbox/engine/resources/default/roughness index 85b57e921..8c15fb38b 100644 Binary files a/applications/sandbox/engine/resources/default/roughness and b/applications/sandbox/engine/resources/default/roughness differ diff --git a/applications/sandbox/engine/resources/default/roughness.png b/applications/sandbox/engine/resources/default/roughness.png new file mode 100644 index 000000000..a2bebf637 --- /dev/null +++ b/applications/sandbox/engine/resources/default/roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6f89a372721d1562f3d0026089d48b184c8b394b17b4ef189568ca6f0c4cd64 +size 1252644 diff --git a/applications/sandbox/engine/resources/default/smoothness b/applications/sandbox/engine/resources/default/smoothness index b9cd7f1f3..e3fce5fb6 100644 Binary files a/applications/sandbox/engine/resources/default/smoothness and b/applications/sandbox/engine/resources/default/smoothness differ diff --git a/applications/sandbox/engine/resources/default/smoothness.png b/applications/sandbox/engine/resources/default/smoothness.png new file mode 100644 index 000000000..e30e75cad --- /dev/null +++ b/applications/sandbox/engine/resources/default/smoothness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36558c95c8566e54b9d5cb41b368a6282ff87f9beddd659ca432acbbb15ad851 +size 25005 diff --git a/applications/sandbox/engine/shaderlib/lighting.shinc b/applications/sandbox/engine/shaderlib/lighting.shinc index 0e8da4683..fe34208a7 100644 --- a/applications/sandbox/engine/shaderlib/lighting.shinc +++ b/applications/sandbox/engine/shaderlib/lighting.shinc @@ -1,6 +1,9 @@ //////////////// // Lighting // //////////////// +#if !defined(LIGHTING_INCL) + #define LIGHTING_INCL +#endif #define ENUM uint @@ -18,7 +21,7 @@ struct Light float falloff; // 4 28 vec3 position; // 12 32 float angle; // 4 44 - vec3 color; // 12 48 + vec3 color; // 12 48 float meta; // 4 60 }; @@ -32,6 +35,7 @@ struct Material float dielectric; float ambientOcclusion; vec3 F0; + vec2 texcoords; }; #include @@ -60,25 +64,24 @@ vec3 Fresnel0(vec4 albedo, float metallic) float DistributionGGX(float normalDotHalfway, float roughness) { - float r2 = roughness * roughness; - float r4 = r2 * r2; + float a = roughness * roughness; + float a2 = a * a; float NdotH2 = normalDotHalfway * normalDotHalfway; - float num = r4; - float denom = (NdotH2 * (r4 - 1.0) + 1.0); + float denom = (NdotH2 * (a2 - 1.0) + 1.0); denom = pi * denom * denom; - return num / denom; + return a2 / denom; } float GeometrySchlickGGX(float cosTheta, float roughness) { - float k = (roughness * roughness) / 2.0; + float r = roughness + 1.0; + float k = (r * r) / 8.0; - float num = cosTheta; float denom = cosTheta * (1.0 - k) + k; - return num / denom; + return cosTheta / denom; } float GeometrySmith(float normalDotView, float normalDotLight, float roughness) @@ -97,12 +100,12 @@ vec3 CookTorranceBRDF(float normalDistribution, vec3 fresnelReflection, float ge vec3 LambertianDiffuse(vec3 kS, vec3 albedo, float metallic) { vec3 kD = (vec3(1.0) - kS) * (1.0 - metallic); - return kD * (albedo / pi); + return kD * albedo / pi; } float ambientIntensity; -vec3 CalculateLight(Light light, Camera camera, Material material, vec3 worldPosition, vec3 worldNormal) +vec3 CalculateLight(Light light, Camera camera, Material material, vec3 worldPosition) { vec3 lightDirection; float intensity; @@ -130,20 +133,22 @@ vec3 CalculateLight(Light light, Camera camera, Material material, vec3 worldPos float attenuation = Attenuation(worldPosition, light.position, light.attenuation, intensity); if(attenuation <= 0) - return vec3(0); + return vec3(0); vec3 radiance = light.color * attenuation; + vec3 viewDir = normalize(camera.toView); + // Microfacet normal that will reflect the incoming light into the viewing direction. // Technically only applies if the nanogeometry is perfectly smooth, but due to the inherent // inaccuracy of working with fragments as the smallest size of measurement we can ignore // nanogeometry for now. - vec3 halfwayVector = normalize(lightDirection + camera.toView); + vec3 halfwayVector = normalize(lightDirection + viewDir); - float halfwayDotView = dot01(halfwayVector, camera.toView); - float normalDotHalfway = dot01(worldNormal, halfwayVector); - float normalDotView = dot01(worldNormal, camera.toView); - float normalDotLight = dot01(worldNormal, lightDirection); + float halfwayDotView = dot01(halfwayVector, viewDir); + float normalDotHalfway = dot01(material.normal, halfwayVector); + float normalDotView = dot01(material.normal, viewDir); + float normalDotLight = dot01(material.normal, lightDirection); // cook-torrance brdf vec3 fresnelReflection = fresnelSchlick(halfwayDotView, material.F0); @@ -153,7 +158,7 @@ vec3 CalculateLight(Light light, Camera camera, Material material, vec3 worldPos vec3 diffuse = LambertianDiffuse(fresnelReflection, material.albedo.rgb, material.metallic); - return (diffuse + specular) * radiance * normalDotLight; + return max((diffuse + specular) * radiance * normalDotLight.xxx, vec3(0)); } vec3 GetAmbientLight(float ambientOcclusion, vec3 albedo) diff --git a/applications/sandbox/engine/shaderlib/lighting_input.shinc b/applications/sandbox/engine/shaderlib/lighting_input.shinc index 6c0958cc1..6dc06ad42 100644 --- a/applications/sandbox/engine/shaderlib/lighting_input.shinc +++ b/applications/sandbox/engine/shaderlib/lighting_input.shinc @@ -2,11 +2,53 @@ // Lighting Input // ////////////////////// -layout(std140) buffer LightsBuffer +#if !defined(LIGHTING_INCL) +#define ENUM uint + +#define point_light 0 +#define directional_light 1 +#define spot_light 2 + +struct Light +{ + ENUM type; // 4 0 + float attenuation; // 4 4 + float intensity; // 4 8 + uint index; // 4 12 + vec3 direction; // 12 16 + float falloff; // 4 28 + vec3 position; // 12 32 + float angle; // 4 44 + vec3 color; // 12 48 + float meta; // 4 60 +}; + +struct Material +{ + vec4 albedo; + vec3 normal; + float metallic; + vec3 emissive; + float roughness; + float dielectric; + float ambientOcclusion; + vec3 F0; + vec2 texcoords; +}; + +vec3 Fresnel0(vec4 albedo, float metallic, float dielectric) +{ + return mix(dielectric.xxx, albedo.rgb, metallic.xxx); +} +#endif + +layout(std140, binding = SV_LIGHTS) readonly buffer LightsBuffer { Light lights[]; }; +uniform uint light_count : SV_LIGHT_COUNT; + struct MaterialInput { sampler2D albedo; @@ -23,28 +65,29 @@ Material ExtractMaterial(vec2 uv, Camera camera, vec3 worldNormal, vec3 worldTan { mat3 tbn = GetTBNMatrix(worldNormal, worldTangent); - vec2 texcoords = ParallaxMap(material_input.normalHeight, material_input.heightScale, uv, camera, tbn); - Material material; - material.albedo = AlbedoMap(material_input.albedo, texcoords); - material.normal = NormalMap(material_input.normalHeight, texcoords, tbn); - vec4 MRDAo = LightingData(material_input.MRDAo, texcoords); - material.metallic = MRDAo.r; + material.texcoords = ParallaxMap(material_input.normalHeight, material_input.heightScale, uv, camera, tbn); + material.albedo = AlbedoMap(material_input.albedo, material.texcoords); + material.normal = NormalMap(material_input.normalHeight, material.texcoords, tbn); + vec4 MRDAo = LightingData(material_input.MRDAo, material.texcoords); + material.metallic = min(MRDAo.r, 1.0 - epsilon); material.roughness = MRDAo.g; material.dielectric = MRDAo.b; material.ambientOcclusion = MRDAo.a; - material.emissive = EmissiveMap(material_input.emissive, texcoords); + material.emissive = EmissiveMap(material_input.emissive, material.texcoords); material.F0 = Fresnel0(material.albedo, material.metallic, material.dielectric); return material; } -vec3 GetAllLighting(Material material, Camera camera, vec3 worldPosition, vec3 worldNormal) +#if defined(LIGHTING_INCL) +vec3 GetAllLighting(Material material, Camera camera, vec3 worldPosition) { vec3 lighting = vec3(0.0); - for(int i = 0; i < lights.length(); i++) - lighting += CalculateLight(lights[i], camera, material, worldPosition, worldNormal); + for(int i = 0; i < light_count; i++) + lighting += CalculateLight(lights[i], camera, material, worldPosition); return lighting + GetAmbientLight(material.ambientOcclusion, material.albedo.rgb) + material.emissive; } +#endif diff --git a/applications/sandbox/engine/shaderlib/math_ext.shinc b/applications/sandbox/engine/shaderlib/math_ext.shinc index bdf6560d7..ee6193a69 100644 --- a/applications/sandbox/engine/shaderlib/math_ext.shinc +++ b/applications/sandbox/engine/shaderlib/math_ext.shinc @@ -2,7 +2,7 @@ // Math Extension // ////////////////////// -#define epsilon 0.00001 +#define epsilon 0.001 #define pi 3.141592653589793 float sum(vec2 v) diff --git a/applications/sandbox/engine/shaderlib/stdio.shinc b/applications/sandbox/engine/shaderlib/stdio.shinc index d49390121..5d53dda7c 100644 --- a/applications/sandbox/engine/shaderlib/stdio.shinc +++ b/applications/sandbox/engine/shaderlib/stdio.shinc @@ -205,7 +205,7 @@ mat3 GetTBNMatrix(vec3 worldNormal, vec3 worldTangent) vec3 GetWorldPosition() { #if defined(FRAGMENT_SHADER) - return normalize(_L_stdio.wvertex); + return _L_stdio.wvertex; #elif defined(VERTEX_SHADER) return (stdio(modelMatrix) * vec4(stdio(position), 1.0)).xyz; #endif diff --git a/applications/sandbox/engine/shaderlib/texturemaps.shinc b/applications/sandbox/engine/shaderlib/texturemaps.shinc index b6dceaa4c..7d8554582 100644 --- a/applications/sandbox/engine/shaderlib/texturemaps.shinc +++ b/applications/sandbox/engine/shaderlib/texturemaps.shinc @@ -7,18 +7,19 @@ #if !defined(GEOMETRY_SHADER) vec2 ParallaxMap(sampler2D normalHeightMap, float scale, vec2 uv, Camera camera, mat3 tbn) { - vec3 tangentViewDir = tbn * camera.toView; + vec3 tangentViewDir = tbn * normalize(camera.toView); const float minLayers = 4.0; const float maxLayers = 32.0; - float layerCount = round(mix(maxLayers, minLayers, dot01(vec3(0.0, 0.0, 1.0), camera.viewDirection))); + float verticality = dot01(vec3(0.0, 0.0, 1.0), tangentViewDir); + float layerCount = round(mix(minLayers, maxLayers, verticality)); float layerDepth = 1.0 / layerCount; float currentDepth = 0.0; float prevDepth = 0.0; - vec2 P = tangentViewDir.xy * scale; + vec2 P = tangentViewDir.xy * scale * vec2(-0.01, 0.01) * (1.0-pow(1.0-verticality, 2)); vec2 deltaUV = P / layerCount; vec2 currentUV = uv; @@ -46,9 +47,9 @@ vec2 ParallaxMap(sampler2D normalHeightMap, float scale, vec2 uv, Camera camera, vec2 ParallaxMap(float height, float scale, vec2 uv, Camera camera, mat3 tbn) { - vec3 tangentViewDir = tbn * camera.toView; + vec3 tangentViewDir = tbn * normalize(camera.toView); - float offset = (height * 2.0 - 1.0) * scale * -1; + float offset = (height * 2.0 - 1.0) * scale * 0.01; vec2 parallexOffset = (tangentViewDir.xy / tangentViewDir.z) * offset; return uv - parallexOffset; } @@ -69,7 +70,7 @@ vec4 LightingData(sampler2D MRDAoMap, vec2 uv) return texture(MRDAoMap, uv); } -vec3 EmissiveMap(sampler emissiveMap, vec2 uv) +vec3 EmissiveMap(sampler2D emissiveMap, vec2 uv) { return texture(emissiveMap, uv).rgb; } diff --git a/applications/sandbox/module/testModule.hpp b/applications/sandbox/module/testModule.hpp index 9f80078cf..6de977275 100644 --- a/applications/sandbox/module/testModule.hpp +++ b/applications/sandbox/module/testModule.hpp @@ -14,6 +14,7 @@ class TestModule : public Module addProcessChain("TestChain"); reportComponentType(); + reportComponentType(); reportSystem(); } diff --git a/applications/sandbox/sandbox.vcxproj b/applications/sandbox/sandbox.vcxproj index 4f656998e..a094ea7e1 100644 --- a/applications/sandbox/sandbox.vcxproj +++ b/applications/sandbox/sandbox.vcxproj @@ -70,8 +70,7 @@ Console true - $(SolutionDir)deps\lib\;%(AdditionalLibraryDirectories) - + $(SolutionDir)lib\;$(SolutionDir)deps\lib\;%(AdditionalLibraryDirectories) legion-application.lib;legion-audio.lib;legion-core.lib;legion-networking.lib;legion-physics.lib;legion-rendering.lib;legion-scripting.lib;OpenCL.lib;OpenAL32.lib;glfw3.lib;%(AdditionalDependencies)