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)