Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4874cfe511 | ||
|
|
63b9270710 | ||
|
|
2bac6a8d05 | ||
|
|
e51fc77c3f | ||
|
|
8c53f21690 | ||
|
|
ad1b37dc64 | ||
|
|
8e46945362 | ||
|
|
6a250d4927 |
@@ -5,11 +5,3 @@ build/
|
|||||||
recovery/
|
recovery/
|
||||||
vendor/directx
|
vendor/directx
|
||||||
imgui.ini
|
imgui.ini
|
||||||
GlitchyEditor/settings.bon
|
|
||||||
GlitchyEditor/MonoDebugger.log
|
|
||||||
|
|
||||||
# Ignore files in build-directory of ScriptCore
|
|
||||||
GlitchyEditor/Resources/Scripts/*
|
|
||||||
|
|
||||||
.cache
|
|
||||||
generated
|
|
||||||
|
|||||||
@@ -22,18 +22,6 @@
|
|||||||
[submodule "GlitchyEngine/vendor/bon"]
|
[submodule "GlitchyEngine/vendor/bon"]
|
||||||
path = GlitchyEngine/vendor/bon
|
path = GlitchyEngine/vendor/bon
|
||||||
url = https://github.com/EinScott/bon.git
|
url = https://github.com/EinScott/bon.git
|
||||||
[submodule "GlitchyEngine/vendor/box2D"]
|
[submodule "GlitchyEngineHelper/vendor/DirectXTK"]
|
||||||
path = GlitchyEngine/vendor/box2D
|
path = GlitchyEngineHelper/vendor/DirectXTK
|
||||||
url = https://github.com/aharabada/box2d-beef.git
|
url = https://github.com/microsoft/DirectXTK.git
|
||||||
[submodule "GlitchyEngine/vendor/Beef.Linq"]
|
|
||||||
path = GlitchyEngine/vendor/Beef.Linq
|
|
||||||
url = https://github.com/aharabada/Beef.Linq.git
|
|
||||||
[submodule "vendor/ImGui.NET"]
|
|
||||||
path = vendor/ImGui.NET
|
|
||||||
url = https://github.com/aharabada/ImGui.NET.git
|
|
||||||
[submodule "GlitchyEngine/vendor/NetHostBeef"]
|
|
||||||
path = GlitchyEngine/vendor/NetHostBeef
|
|
||||||
url = https://github.com/aharabada/NetHostBeef.git
|
|
||||||
[submodule "GlitchyEngine/vendor/Xml-Beef"]
|
|
||||||
path = GlitchyEngine/vendor/Xml-Beef
|
|
||||||
url = https://github.com/aharabada/Xml-Beef.git
|
|
||||||
@@ -1,36 +1,6 @@
|
|||||||
FileVersion = 1
|
FileVersion = 1
|
||||||
Locked = ["ImGui"]
|
Projects = {Sandbox = {Path = "Sandbox"}, GlitchyEngine = {Path = "GlitchyEngine"}, GlitchLog = {Path = "GlitchLog"}, DirectX = {Path = "GlitchyEngine/vendor/directx/DirectX"}, LodePng = {Path = "vendor/lodepng-beef/lodepng-beef"}, FreeType = {Path = "GlitchyEngine/vendor/freetype"}, cgltf-beef = {Path = "GlitchyEngine/vendor/gltf/cgltf-beef"}, GlitchyEditor = {Path = "GlitchyEditor"}, msdfgen-beef = {Path = "GlitchyEngine/vendor/msdfgen/msdfgen-beef"}, ImGui = {Path = "GlitchyEngine/vendor/imgui/ImGui"}, ImGuiImplDX11 = {Path = "GlitchyEngine/vendor/imgui/ImGuiImplDX11"}, ImGuiImplWin32 = {Path = "GlitchyEngine/vendor/imgui/ImGuiImplWin32"}, ImGuizmo = {Path = "GlitchyEngine/vendor/imgui/ImGuizmo"}, GlitchyEngineHelper = {Path = "GlitchyEngineHelper"}, bon = {Path = "GlitchyEngine/vendor/bon"}}
|
||||||
|
WorkspaceFolders = {GlitchyEngine = ["GlitchyEngine", "GlitchLog", "GlitchyEngineHelper"], "GlitchyEngine/Dependencies" = ["cgltf-beef", "DirectX", "FreeType", "ImGui", "ImGuiImplDX11", "ImGuiImplWin32", "ImGuizmo", "LodePng", "msdfgen-beef", "bon"]}
|
||||||
|
|
||||||
[Workspace]
|
[Workspace]
|
||||||
StartupProject = "GlitchyEditor"
|
StartupProject = "GlitchyEditor"
|
||||||
|
|
||||||
[Projects]
|
|
||||||
GlitchyEngine = {Path = "GlitchyEngine"}
|
|
||||||
GlitchLog = {Path = "GlitchLog"}
|
|
||||||
DirectX = {Path = "GlitchyEngine/vendor/directx/DirectX"}
|
|
||||||
LodePng = {Path = "vendor/lodepng-beef/lodepng-beef"}
|
|
||||||
FreeType = {Path = "GlitchyEngine/vendor/freetype"}
|
|
||||||
cgltf-beef = {Path = "GlitchyEngine/vendor/gltf/cgltf-beef"}
|
|
||||||
GlitchyEditor = {Path = "GlitchyEditor"}
|
|
||||||
msdfgen-beef = {Path = "GlitchyEngine/vendor/msdfgen/msdfgen-beef"}
|
|
||||||
ImGui = {Path = "GlitchyEngine/vendor/imgui/ImGui"}
|
|
||||||
ImGuiImplDX11 = {Path = "GlitchyEngine/vendor/imgui/ImGuiImplDX11"}
|
|
||||||
ImGuiImplWin32 = {Path = "GlitchyEngine/vendor/imgui/ImGuiImplWin32"}
|
|
||||||
ImGuizmo = {Path = "GlitchyEngine/vendor/imgui/ImGuizmo"}
|
|
||||||
GlitchyEngineHelper = {Path = "GlitchyEngineHelper"}
|
|
||||||
bon = {Path = "GlitchyEngine/vendor/bon"}
|
|
||||||
box2d-beef = {Path = "GlitchyEngine/vendor/box2D"}
|
|
||||||
"Beef.Linq" = {Path = "GlitchyEngine/vendor/Beef.Linq/src"}
|
|
||||||
ScriptCore = {Path = "ScriptCore"}
|
|
||||||
NetHostBeef = {Path = "GlitchyEngine/vendor/NetHostBeef/NetHostBeef"}
|
|
||||||
"GlitchyEngine.Test" = {Path = "GlitchyEngine.Test"}
|
|
||||||
Xml-Beef = {Path = "GlitchyEngine/vendor/Xml-Beef"}
|
|
||||||
"GlitchyEngine.Benchmark" = {Path = "GlitchyEngine.Benchmark"}
|
|
||||||
|
|
||||||
[WorkspaceFolders]
|
|
||||||
GlitchyEngine = ["GlitchyEngine", "GlitchLog", "GlitchyEngineHelper", "ScriptCore", "GlitchyEngine.Test", "GlitchyEngine.Benchmark"]
|
|
||||||
"GlitchyEngine/Dependencies" = ["cgltf-beef", "DirectX", "FreeType", "ImGui", "ImGuiImplDX11", "ImGuiImplWin32", "ImGuizmo", "LodePng", "msdfgen-beef", "bon", "box2d-beef", "Beef.Linq", "NetHostBeef", "Xml-Beef"]
|
|
||||||
Beef = ["Beefy2D", "corlib"]
|
|
||||||
|
|
||||||
[Configs.Debug.Win64]
|
|
||||||
AllocStackTraceDepth = 12
|
|
||||||
|
|||||||
@@ -1,92 +0,0 @@
|
|||||||
///
|
|
||||||
/// Loading and usage of an asset.
|
|
||||||
///
|
|
||||||
// Shows the usage of the Content Manager.
|
|
||||||
// An asset is loaded with Content.LoadAsset(AssetName)
|
|
||||||
// Loading an asset returns an AssetHandle.
|
|
||||||
// Usually you want to hold on to the AssetHandle.
|
|
||||||
// If you need the actual asset you can use Content.GetAsset<AssetType>(AssetHandle) to retrieve the actual asset.
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Only hold on to AssetHandle.
|
|
||||||
* Do NOT hold actual Assets! The Asset might get invalidated
|
|
||||||
* (e.g. reloading after the source-file changed).
|
|
||||||
*/
|
|
||||||
AssetHandle _lineEffect;
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Loading an asset returns a handle to that asset.
|
|
||||||
*/
|
|
||||||
_lineEffect = Content.LoadAsset("Shaders\\LineEffect.hlsl");
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
// Use case 1:
|
|
||||||
{
|
|
||||||
// Retrieve the actual asset. Note that this Asset is only guaranteed to persist
|
|
||||||
// for the current frame.
|
|
||||||
Effect fx = Content.GetAsset<Effect>(_lineEffect);
|
|
||||||
|
|
||||||
// Note: Assets are ref counted, however since they are not inteded to be held GetAsset
|
|
||||||
// does NOT increment the reference counter so you usually should NOT decrement it.
|
|
||||||
// The exception is when you manually hold on to an asset (see Example below)
|
|
||||||
|
|
||||||
// Use asset
|
|
||||||
fx.Variables["ViewProjection"].SetData(viewProjection * transform);
|
|
||||||
fx.Variables["Color"].SetData(color);
|
|
||||||
fx.ApplyChanges();
|
|
||||||
fx.Bind();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use case 2:
|
|
||||||
{
|
|
||||||
// Retrieve the actual asset.
|
|
||||||
Effect fx = _lineEffect.Get<Effect>();
|
|
||||||
|
|
||||||
// ...
|
|
||||||
// Same as case 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Holding on to an actual asset.
|
|
||||||
///
|
|
||||||
// Shows the usage of the Content Manager when you hold a reference to the actual Asset instead of the handle.
|
|
||||||
// This should usually not be done. Eventhough it is technically fine, it has the implication, that if the
|
|
||||||
// content manager decides to reload the asset the changes will not be reflected in the held reference
|
|
||||||
// (which they would if you used GetAsset before every usage.)
|
|
||||||
// Also the content manager can't unload the asset because the reference counter wouldn't be zero.
|
|
||||||
// Though there currently is no way for the content manager to unload an asset unless it is specifically told to do so.
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Field to hold the asset.
|
|
||||||
*/
|
|
||||||
Effect _lineEffect;
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
// Load the Asset.
|
|
||||||
AssetHandle handle = Content.LoadAsset("Shaders\\LineEffect.hlsl");
|
|
||||||
// Get the actual asset.
|
|
||||||
_lineEffect = Content.GetAsset<Effect>(handle); // Alternative: _lineEffect = handle.Get<Effect>();
|
|
||||||
// Increment the reference counter so that the asset doesn't get unloaded.
|
|
||||||
_lineEffect.AddRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Destroy()
|
|
||||||
{
|
|
||||||
// Make sure to release the asset once you don't need it anymore. Otherwise it will leak.
|
|
||||||
_lineEffect.Release();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
_lineEffect.Variables["ViewProjection"].SetData(viewProjection * transform);
|
|
||||||
_lineEffect.Variables["Color"].SetData(color);
|
|
||||||
_lineEffect.ApplyChanges();
|
|
||||||
_lineEffect.Bind();
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
///
|
|
||||||
/// This shows the usage of a smart/typed Asset Handle.
|
|
||||||
///
|
|
||||||
// In the basic usage-patterns the user has two options:
|
|
||||||
// Either he/she holds a handle and has to query for the actual asset every time
|
|
||||||
// or he/she hold the actual asset and loses reloading capabilities.
|
|
||||||
// The idea of the auto asset is to provide a way that can provide both.
|
|
||||||
|
|
||||||
AssetHandle<Effect> _lineEffect;
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Loading an asset returns a handle to that asset.
|
|
||||||
* The asset handle is implicitly converted to a smart AssetHandle.
|
|
||||||
*/
|
|
||||||
_lineEffect = Content.LoadAsset("Shaders\\LineEffect.hlsl");
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
// Use case 1 (Convenience)
|
|
||||||
{
|
|
||||||
_lineEffect.Variables["ViewProjection"].SetData(viewProjection * transform);
|
|
||||||
_lineEffect.Variables["Color"].SetData(color);
|
|
||||||
_lineEffect.ApplyChanges();
|
|
||||||
_lineEffect.Bind();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use case 2 (Technically more efficient)
|
|
||||||
{
|
|
||||||
Effect fx = _lineEffect.Get();
|
|
||||||
fx.Variables["ViewProjection"].SetData(viewProjection * transform);
|
|
||||||
fx.Variables["Color"].SetData(color);
|
|
||||||
fx.ApplyChanges();
|
|
||||||
fx.Bind();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Auto Assets use comp time to expose all the fields, Methods and properties of the actual asset.
|
|
||||||
// They will automatically check if the asset for the handle changed and update accordingly.
|
|
||||||
// This means it is more convenient to use than both basic patterns and has all benefits of both.
|
|
||||||
//
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Design Code Examples
|
|
||||||
|
|
||||||
This directory (and its subdirectories) contains non functional code snippets showing the intended usage of certain systems of the engine.
|
|
||||||
@@ -5,6 +5,34 @@ using internal GlitchLog;
|
|||||||
|
|
||||||
namespace GlitchLog
|
namespace GlitchLog
|
||||||
{
|
{
|
||||||
|
public abstract class Logger
|
||||||
|
{
|
||||||
|
protected LogLevel _logLevel;
|
||||||
|
|
||||||
|
public LogLevel Level
|
||||||
|
{
|
||||||
|
get => _logLevel;
|
||||||
|
set => _logLevel = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract String Name {get; set;}
|
||||||
|
|
||||||
|
public abstract void Trace(StringView format, params Object[] args);
|
||||||
|
public abstract void Info(StringView format, params Object[] args);
|
||||||
|
public abstract void Warning(StringView format, params Object[] args);
|
||||||
|
public abstract void Error(StringView format, params Object[] args);
|
||||||
|
public abstract void Critical(StringView format, params Object[] args);
|
||||||
|
|
||||||
|
public abstract void Assert(bool condition, String error = Compiler.CallerExpression[0], String filePath = Compiler.CallerFilePath, int line = Compiler.CallerLineNum);
|
||||||
|
|
||||||
|
#if !DEBUG
|
||||||
|
[SkipCall]
|
||||||
|
#endif
|
||||||
|
public abstract void AssertDebug(bool condition, String error = Compiler.CallerExpression[0], String filePath = Compiler.CallerFilePath, int line = Compiler.CallerLineNum);
|
||||||
|
|
||||||
|
public abstract void Log(LogLevel level, StringView format, params Object[] args);
|
||||||
|
}
|
||||||
|
|
||||||
public class DebugLogger : Logger
|
public class DebugLogger : Logger
|
||||||
{
|
{
|
||||||
// {l} = log level (first parameter)
|
// {l} = log level (first parameter)
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace GlitchLog;
|
|
||||||
|
|
||||||
public abstract class Logger
|
|
||||||
{
|
|
||||||
protected LogLevel _logLevel;
|
|
||||||
|
|
||||||
public LogLevel Level
|
|
||||||
{
|
|
||||||
get => _logLevel;
|
|
||||||
set => _logLevel = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract String Name {get; set;}
|
|
||||||
|
|
||||||
public abstract void Trace(StringView format, params Object[] args);
|
|
||||||
public abstract void Info(StringView format, params Object[] args);
|
|
||||||
public abstract void Warning(StringView format, params Object[] args);
|
|
||||||
public abstract void Error(StringView format, params Object[] args);
|
|
||||||
public abstract void Critical(StringView format, params Object[] args);
|
|
||||||
|
|
||||||
public abstract void Assert(bool condition, String error = Compiler.CallerExpression[0], String filePath = Compiler.CallerFilePath, int line = Compiler.CallerLineNum);
|
|
||||||
|
|
||||||
#if !DEBUG
|
|
||||||
[SkipCall]
|
|
||||||
#endif
|
|
||||||
public abstract void AssertDebug(bool condition, String error = Compiler.CallerExpression[0], String filePath = Compiler.CallerFilePath, int line = Compiler.CallerLineNum);
|
|
||||||
|
|
||||||
public abstract void Log(LogLevel level, StringView format, params Object[] args);
|
|
||||||
}
|
|
||||||
@@ -1,37 +1,7 @@
|
|||||||
FileVersion = 1
|
FileVersion = 1
|
||||||
|
Dependencies = {corlib = "*", GlitchLog = "*", GlitchyEngine = "*"}
|
||||||
|
|
||||||
[Project]
|
[Project]
|
||||||
Name = "GlitchyEditor"
|
Name = "GlitchyEditor"
|
||||||
TargetType = "BeefGUIApplication"
|
TargetType = "BeefGUIApplication"
|
||||||
StartupObject = "GlitchyEngine.Program"
|
StartupObject = "GlitchyEngine.Program"
|
||||||
ProcessorMacros = ["GE_EDITOR_IMGUI_DEMO", "GE_GRAPHICS_DX11"]
|
|
||||||
|
|
||||||
[Dependencies]
|
|
||||||
corlib = "*"
|
|
||||||
GlitchLog = "*"
|
|
||||||
GlitchyEngine = "*"
|
|
||||||
Xml-Beef = "*"
|
|
||||||
ImGuiImplDX11 = "*"
|
|
||||||
ImGuiImplWin32 = "*"
|
|
||||||
ImGuizmo = "*"
|
|
||||||
"Beef.Linq" = "*"
|
|
||||||
|
|
||||||
[Platform.Windows]
|
|
||||||
IconFile = "$(ProjectDir)/Resources/Textures/GlitchyEngineIcon.ico"
|
|
||||||
|
|
||||||
[Configs.Debug.Win64]
|
|
||||||
PostBuildCmds = ["CopyFilesIfNewer(\"$(WorkspaceDir)/bin/vswhere.exe\", \"$(TargetDir)\")"]
|
|
||||||
DebugCommandArguments = "\"D:\\Development\\Git\\SingleStateToOrbit\""
|
|
||||||
PreprocessorMacros = ["DEBUG", "IMGUI"]
|
|
||||||
|
|
||||||
[Configs.Release.Win64]
|
|
||||||
TargetDirectory = "$(BuildDir)/dist"
|
|
||||||
PostBuildCmds = ["CopyFilesIfNewer(\"$(WorkspaceDir)/bin/vswhere.exe\", \"$(TargetDir)\")"]
|
|
||||||
DebugCommandArguments = "\"D:\\Development\\Git\\SingleStateToOrbit\""
|
|
||||||
PreprocessorMacros = ["RELEASE", "IMGUI"]
|
|
||||||
|
|
||||||
[Configs.Paranoid.Win64]
|
|
||||||
PostBuildCmds = ["CopyFilesIfNewer(\"$(WorkspaceDir)/bin/vswhere.exe\", \"$(TargetDir)\")"]
|
|
||||||
|
|
||||||
[Configs.Test.Win64]
|
|
||||||
PostBuildCmds = ["CopyFilesIfNewer(\"$(WorkspaceDir)/bin/vswhere.exe\", \"$(TargetDir)\")"]
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
project_user.bon
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "ModelAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.ModelAssetLoaderConfig){}/* No reflection data for GlitchyEditor.Assets.ModelAssetLoaderConfig. Add [BonTarget] or force it */,
|
|
||||||
AssetHandle = 141014598923215615
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "ModelAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.ModelAssetLoaderConfig){}/* No reflection data for GlitchyEditor.Assets.ModelAssetLoaderConfig. Add [BonTarget] or force it */,
|
|
||||||
AssetHandle = 11221639476224465119
|
|
||||||
}
|
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
{
|
|
||||||
Name = "Scene name here pls!!!",
|
|
||||||
Entities = [
|
|
||||||
{
|
|
||||||
Id = 8726995825602656358,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Camera"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 2,
|
|
||||||
Z = -5
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0.21643962,
|
|
||||||
Z = 0,
|
|
||||||
W = 0.976296008
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0.436332315,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
CameraComponent = {
|
|
||||||
Primary = true,
|
|
||||||
ProjectionType = .InfinitePerspective,
|
|
||||||
PerspectiveFovY = 1.30899692,
|
|
||||||
PerspectiveNearPlane = 0.100000001,
|
|
||||||
PerspectiveFarPlane = 10000,
|
|
||||||
OrthographicHeight = 10,
|
|
||||||
OrthographicNearPlane = 0,
|
|
||||||
OrthographicFarPlane = 10,
|
|
||||||
AspectRatio = 1.83772814,
|
|
||||||
FixedAspectRatio = false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 5254899955475338567,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Light"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = -3,
|
|
||||||
Y = 4,
|
|
||||||
Z = -1.5
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0.239775807,
|
|
||||||
Y = 0.61432755,
|
|
||||||
Z = 0.0315670744,
|
|
||||||
W = 0.751074195
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0.3490659,
|
|
||||||
Y = 1.3089968,
|
|
||||||
Z = 0.34906587
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LightComponent = {
|
|
||||||
LightType = .Directional,
|
|
||||||
Illuminance = 10,
|
|
||||||
Color = {
|
|
||||||
R = 1,
|
|
||||||
G = 0.949999988,
|
|
||||||
B = 0.800000012
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 10018854473822844403,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Entity"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MeshComponent = {
|
|
||||||
Mesh = 141014598923215615
|
|
||||||
},
|
|
||||||
MeshRendererComponent = {
|
|
||||||
Material = 15093501654975430075
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,224 +0,0 @@
|
|||||||
{
|
|
||||||
Name = "Scene name here pls!!!",
|
|
||||||
Entities = [
|
|
||||||
{
|
|
||||||
Id = 5169765174113462770,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Sphere"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0.5,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MeshComponent = {
|
|
||||||
Mesh = "Assets/Models/sphere.glb"
|
|
||||||
},
|
|
||||||
MeshRendererComponent = {
|
|
||||||
Material = "Assets/Textures/TestMaterial.mat"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 17158420331978163131,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Light"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = -1,
|
|
||||||
Y = 4,
|
|
||||||
Z = -4
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0.614328027,
|
|
||||||
Y = 0.23977606,
|
|
||||||
Z = 0.0315669999,
|
|
||||||
W = 0.751073778
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 0.999998808,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1.00000095
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 1.30899811,
|
|
||||||
Y = 0.349065989,
|
|
||||||
Z = 0.349065989
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LightComponent = {
|
|
||||||
LightType = .Directional,
|
|
||||||
Illuminance = 10,
|
|
||||||
Color = {
|
|
||||||
R = 1,
|
|
||||||
G = 0.991771996,
|
|
||||||
B = 0.74086231
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 5556050645816939548,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Plane"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 10,
|
|
||||||
Y = 1,
|
|
||||||
Z = 10
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MeshComponent = {
|
|
||||||
Mesh = "Assets/Models/plane.glb"
|
|
||||||
},
|
|
||||||
MeshRendererComponent = {
|
|
||||||
Material = "Assets/Textures/TestMaterial.mat"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 3947673900993587516,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Camera"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 2,
|
|
||||||
Z = -5
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0.216440007,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 0.976296008
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0.436332017,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
CameraComponent = {
|
|
||||||
Primary = true,
|
|
||||||
ProjectionType = .InfinitePerspective,
|
|
||||||
PerspectiveFovY = 1.30899692,
|
|
||||||
PerspectiveNearPlane = 0.100000001,
|
|
||||||
PerspectiveFarPlane = 10000,
|
|
||||||
OrthographicHeight = 10,
|
|
||||||
OrthographicNearPlane = 0,
|
|
||||||
OrthographicFarPlane = 10,
|
|
||||||
AspectRatio = 1.87453413,
|
|
||||||
FixedAspectRatio = false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 420718992779301759,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Entity"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 3,
|
|
||||||
Y = 0.501076996,
|
|
||||||
Z = -0.669378757
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0.18301262,
|
|
||||||
Y = -0.683013558,
|
|
||||||
Z = 0.683012187,
|
|
||||||
W = 0.183013007
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 1.57079458,
|
|
||||||
Y = -2.61799288,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MeshComponent = {
|
|
||||||
Mesh = ""
|
|
||||||
},
|
|
||||||
MeshRendererComponent = {
|
|
||||||
Material = ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 8080288871271083510,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Rocket"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 2.37353563,
|
|
||||||
Y = 0.629615188,
|
|
||||||
Z = -1.34831977
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0.270598024,
|
|
||||||
Y = -0.65328151,
|
|
||||||
Z = 0.65328151,
|
|
||||||
W = 0.270598054
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 0.999999821,
|
|
||||||
Y = 0.999999762,
|
|
||||||
Z = 0.999999702
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 1.57079649,
|
|
||||||
Y = -2.35619426,
|
|
||||||
Z = 8.94069601e-08
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MeshComponent = {
|
|
||||||
Mesh = "Assets/Models/plane.glb"
|
|
||||||
},
|
|
||||||
MeshRendererComponent = {
|
|
||||||
Material = "Assets/Textures/RocketMaterial.mat"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,212 +0,0 @@
|
|||||||
{
|
|
||||||
Name = "Scene name here pls!!!",
|
|
||||||
Entities = [
|
|
||||||
{
|
|
||||||
Id = 6000868443984780499,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Child"
|
|
||||||
},
|
|
||||||
SpriterRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 1,
|
|
||||||
G = 0.388184,
|
|
||||||
B = 0.090109,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
ParentId = 820806682740348099,
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0.75,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 820806682740348099,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Quad"
|
|
||||||
},
|
|
||||||
SpriterRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 0,
|
|
||||||
G = 0.551178,
|
|
||||||
B = 0.328787,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 2,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Dynamic,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
BoxCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Size = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5
|
|
||||||
},
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 15398726361722237419,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Floor"
|
|
||||||
},
|
|
||||||
SpriterRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 1,
|
|
||||||
G = 0.941886,
|
|
||||||
B = 0.401485,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = -0.5,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 10,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Static,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
BoxCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Size = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5
|
|
||||||
},
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 1491484622542812645,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Camera"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 1,
|
|
||||||
Z = -5
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
CameraComponent = {
|
|
||||||
Primary = true,
|
|
||||||
ProjectionType = .InfinitePerspective,
|
|
||||||
PerspectiveFovY = 1.308997,
|
|
||||||
PerspectiveNearPlane = 0.1,
|
|
||||||
PerspectiveFarPlane = 10000,
|
|
||||||
OrthographicHeight = 10,
|
|
||||||
OrthographicNearPlane = 0,
|
|
||||||
OrthographicFarPlane = 10,
|
|
||||||
AspectRatio = 2.116827,
|
|
||||||
FixedAspectRatio = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,505 +0,0 @@
|
|||||||
{
|
|
||||||
Name = "Scene name here pls!!!",
|
|
||||||
Entities = [
|
|
||||||
{
|
|
||||||
Id = 820806682740348099,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Quad"
|
|
||||||
},
|
|
||||||
SpriteRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 0,
|
|
||||||
G = 0.55117774,
|
|
||||||
B = 0.32878688,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
Sprite = "Assets/Textures/TestMat/rustediron2_albedo.png",
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = -0.72789681,
|
|
||||||
Y = 2,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Dynamic,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
BoxCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Size = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5
|
|
||||||
},
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 15398726361722237419,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Floor"
|
|
||||||
},
|
|
||||||
SpriteRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 1,
|
|
||||||
G = 0.941887021,
|
|
||||||
B = 0.401484489,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
Sprite = "",
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = -0.5,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 10,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Static,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
BoxCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Size = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5
|
|
||||||
},
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 1491484622542812645,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Camera"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 1,
|
|
||||||
Z = -5
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
CameraComponent = {
|
|
||||||
Primary = true,
|
|
||||||
ProjectionType = .InfinitePerspective,
|
|
||||||
PerspectiveFovY = 1.30899692,
|
|
||||||
PerspectiveNearPlane = 0.100000001,
|
|
||||||
PerspectiveFarPlane = 10000,
|
|
||||||
OrthographicHeight = 10,
|
|
||||||
OrthographicNearPlane = 0,
|
|
||||||
OrthographicFarPlane = 10,
|
|
||||||
AspectRatio = 2.05582929,
|
|
||||||
FixedAspectRatio = false
|
|
||||||
},
|
|
||||||
ScriptComponent = {
|
|
||||||
ScriptClass = "Sandbox.Camera",
|
|
||||||
Fields = [
|
|
||||||
DistanceFromPlayer = (Float)-7,
|
|
||||||
DontFollowRadius = (Float)3
|
|
||||||
] }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 15710354273720487680,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Player"
|
|
||||||
},
|
|
||||||
CircleRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 1,
|
|
||||||
G = 0,
|
|
||||||
B = 0,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
InnerRadius = 0.300000012,
|
|
||||||
Sprite = "",
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = -0.121203206,
|
|
||||||
Y = 0.660161078,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Dynamic,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
CircleCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Radius = 0.5,
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
},
|
|
||||||
ScriptComponent = {
|
|
||||||
ScriptClass = "Sandbox.MyTestEntity",
|
|
||||||
Fields = [
|
|
||||||
_rigidBody = (Component)15710354273720487680,
|
|
||||||
TheEntity = (Entity)0,
|
|
||||||
JumpForce = (Float)200,
|
|
||||||
MoveForce = (Float)148,
|
|
||||||
MyNumber = (Int)22,
|
|
||||||
Camera = (Entity)1491484622542812645
|
|
||||||
] }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 935640822766280888,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Light"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 3.88327599,
|
|
||||||
Y = 0,
|
|
||||||
Z = -0.808795214
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0.497987002,
|
|
||||||
Y = -0.103420995,
|
|
||||||
Z = 0.155380026,
|
|
||||||
W = 0.846859217
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 0.999997795,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 1.09089541,
|
|
||||||
Y = -0.340793997,
|
|
||||||
Z = 0.160857871
|
|
||||||
}
|
|
||||||
},
|
|
||||||
LightComponent = {
|
|
||||||
LightType = .Directional,
|
|
||||||
Illuminance = 12.8999996,
|
|
||||||
Color = {
|
|
||||||
R = 0.985467017,
|
|
||||||
G = 1,
|
|
||||||
B = 0.569977939
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 721949523193525565,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Sphere"
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 2.56930423
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0,
|
|
||||||
W = 1
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MeshComponent = {
|
|
||||||
Mesh = "Assets/Models/sphere.glb"
|
|
||||||
},
|
|
||||||
MeshRendererComponent = {
|
|
||||||
Material = "Assets/Textures/TestMaterial.mat"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 2241063100006479259,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Floor 2"
|
|
||||||
},
|
|
||||||
SpriteRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 0.425658971,
|
|
||||||
G = 0.855207443,
|
|
||||||
B = 0.0558161177,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
Sprite = "",
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 6.74610233,
|
|
||||||
Y = -2.03225946,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = -0.331792623,
|
|
||||||
W = 0.94335258
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 5.29557419,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = -0.676406503
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Static,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
BoxCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Size = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5
|
|
||||||
},
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 5126705881069187728,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Floor 3"
|
|
||||||
},
|
|
||||||
SpriteRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 0.666117013,
|
|
||||||
G = 0.0600316115,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
Sprite = "",
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = 15.2321281,
|
|
||||||
Y = -1.98709273,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0.134986058,
|
|
||||||
W = 0.990847468
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 13.9764528,
|
|
||||||
Y = 1,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0.270798802
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Static,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
BoxCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Size = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5
|
|
||||||
},
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0.800000012,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Id = 6861260438693901700,
|
|
||||||
NameComponent = {
|
|
||||||
Name = "Floor 4"
|
|
||||||
},
|
|
||||||
SpriteRendererComponent = {
|
|
||||||
Color = {
|
|
||||||
R = 0.176544309,
|
|
||||||
G = 0.666713238,
|
|
||||||
B = 0.687030852,
|
|
||||||
A = 1
|
|
||||||
},
|
|
||||||
Sprite = "",
|
|
||||||
UvTransform = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 1,
|
|
||||||
W = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
TransformComponent = {
|
|
||||||
Position = {
|
|
||||||
X = -6.27842855,
|
|
||||||
Y = 2.62550163,
|
|
||||||
Z = 0
|
|
||||||
},
|
|
||||||
Rotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0.187087879,
|
|
||||||
W = 0.982343197
|
|
||||||
},
|
|
||||||
Scale = {
|
|
||||||
X = 0.999999464,
|
|
||||||
Y = 6.49634314,
|
|
||||||
Z = 1
|
|
||||||
},
|
|
||||||
EditorEulerRotation = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0.376393616
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Rigidbody2D = {
|
|
||||||
BodyType = .Static,
|
|
||||||
FixedRotation = false
|
|
||||||
},
|
|
||||||
BoxCollider2D = {
|
|
||||||
Offset = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0
|
|
||||||
},
|
|
||||||
Size = {
|
|
||||||
X = 0.5,
|
|
||||||
Y = 0.5
|
|
||||||
},
|
|
||||||
Density = 1,
|
|
||||||
Friction = 0.5,
|
|
||||||
Restitution = 0.899999857,
|
|
||||||
RestitutionThreshold = 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using GlitchyEngine;
|
|
||||||
using GlitchyEngine.Math;
|
|
||||||
|
|
||||||
using static GlitchyEngine.Math.Math;
|
|
||||||
|
|
||||||
namespace Sandbox;
|
|
||||||
public class Camera : Entity
|
|
||||||
{
|
|
||||||
public float DistanceFromPlayer = 5.0f;
|
|
||||||
|
|
||||||
public float DontFollowRadius = 3.0f;
|
|
||||||
|
|
||||||
void OnUpdate(float deltaTime)
|
|
||||||
{
|
|
||||||
Entity player = FindEntityWithName("Player");
|
|
||||||
|
|
||||||
if (player != null)
|
|
||||||
{
|
|
||||||
float2 playerPosition = player.Transform.Translation.XY;
|
|
||||||
|
|
||||||
float2 cameraPosition = Transform.Translation.XY;
|
|
||||||
|
|
||||||
float2 distanceVector = playerPosition - cameraPosition;
|
|
||||||
|
|
||||||
float distance = length(distanceVector);
|
|
||||||
|
|
||||||
float2 neededMovement = float2.Zero;
|
|
||||||
|
|
||||||
if (distance > DontFollowRadius)
|
|
||||||
{
|
|
||||||
neededMovement = distanceVector - (distanceVector / distance) * DontFollowRadius;
|
|
||||||
}
|
|
||||||
|
|
||||||
Transform.Translation = new float3(cameraPosition + neededMovement, DistanceFromPlayer);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Log.Error("Player not found!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,155 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Runtime.Remoting.Metadata.W3cXsd2001;
|
|
||||||
using GlitchyEngine;
|
|
||||||
using GlitchyEngine.Editor;
|
|
||||||
using GlitchyEngine.Math;
|
|
||||||
|
|
||||||
using static GlitchyEngine.Math.Math;
|
|
||||||
|
|
||||||
namespace Sandbox
|
|
||||||
{
|
|
||||||
|
|
||||||
public enum MyEnum
|
|
||||||
{
|
|
||||||
Yes = 1,
|
|
||||||
No,
|
|
||||||
Maybe = 1337
|
|
||||||
}
|
|
||||||
|
|
||||||
public struct MyStruct
|
|
||||||
{
|
|
||||||
public float TheFloat;
|
|
||||||
public float2 TheVector;
|
|
||||||
public MyEnum TheEnum;
|
|
||||||
}
|
|
||||||
|
|
||||||
class MyTestEntity : Entity
|
|
||||||
{
|
|
||||||
[ShowInEditor]
|
|
||||||
RigidBody2D _rigidBody;
|
|
||||||
|
|
||||||
//public bool Bo;
|
|
||||||
|
|
||||||
//public byte By;
|
|
||||||
//public ushort Us;
|
|
||||||
//public uint Ui;
|
|
||||||
//public ulong Ul;
|
|
||||||
|
|
||||||
//public sbyte Sb;
|
|
||||||
//public short Sh;
|
|
||||||
//public int In;
|
|
||||||
//public long Lo;
|
|
||||||
|
|
||||||
//public float Fl;
|
|
||||||
//public double Do;
|
|
||||||
//public float2 V2;
|
|
||||||
//public float3 V3;
|
|
||||||
//public float4 V4;
|
|
||||||
|
|
||||||
public Entity TheEntity;
|
|
||||||
|
|
||||||
public float JumpForce = 2000;
|
|
||||||
[ShowInEditor] float MoveForce = 1000;
|
|
||||||
[ShowInEditor] private int MyNumber = 1337;
|
|
||||||
//[ShowInEditor] public double MyDouble = 1000.0f;
|
|
||||||
|
|
||||||
public MyStruct AStruct;
|
|
||||||
|
|
||||||
public MyEnum AEnum = MyEnum.Maybe;
|
|
||||||
|
|
||||||
public Camera Camera;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Called after the script component was created. (The entity might not be fully created yet)
|
|
||||||
/// </summary>
|
|
||||||
void OnCreate()
|
|
||||||
{
|
|
||||||
Log.Info($"Create! {UUID}");
|
|
||||||
|
|
||||||
Log.Info($"Jump Force: {JumpForce}");
|
|
||||||
|
|
||||||
//_rigidBody ??= GetComponent<RigidBody2D>() ?? AddComponent<RigidBody2D>();
|
|
||||||
|
|
||||||
if (_rigidBody == null)
|
|
||||||
{
|
|
||||||
Log.Error("_rigidBody was not set in editor.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Camera == null)
|
|
||||||
{
|
|
||||||
Log.Warning("Camera wasn't set in editor. Searching...");
|
|
||||||
Camera = FindEntityWithName("Camera").As<Camera>();
|
|
||||||
|
|
||||||
if (Camera == null)
|
|
||||||
{
|
|
||||||
Log.Error("Camera not found.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Log.Warning("Achtung.");
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
SubVoid();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Console.WriteLine(e);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SubVoid()
|
|
||||||
{
|
|
||||||
throw new Exception("Ouha!", new IndexOutOfRangeException("Bist du jecke2?!", new AccessViolationException("Haleluja")));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Called every frame.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="deltaTime"></param>
|
|
||||||
void OnUpdate(float deltaTime)
|
|
||||||
{
|
|
||||||
float2 force = float2.Zero;
|
|
||||||
|
|
||||||
if (Input.IsKeyPressed(Key.A))
|
|
||||||
{
|
|
||||||
force.X -= MoveForce * deltaTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.IsKeyPressed(Key.D))
|
|
||||||
{
|
|
||||||
force.X += MoveForce * deltaTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.IsKeyPressed(Key.Q))
|
|
||||||
Camera.DistanceFromPlayer -= deltaTime;
|
|
||||||
|
|
||||||
if (Input.IsKeyPressed(Key.E))
|
|
||||||
Camera.DistanceFromPlayer += deltaTime;
|
|
||||||
|
|
||||||
if (Input.IsKeyPressing(Key.Space))
|
|
||||||
{
|
|
||||||
force.Y += JumpForce;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Input.IsKeyPressing(Key.N))
|
|
||||||
SubVoid();
|
|
||||||
|
|
||||||
_rigidBody.ApplyForceToCenter(force);
|
|
||||||
|
|
||||||
if (Input.IsMouseButtonReleasing(MouseButton.MiddleButton))
|
|
||||||
{
|
|
||||||
Log.Info($"Ouha! {MyNumber}");
|
|
||||||
Physics2D.Gravity *= new float2(1, -1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Called before the component is being destroyed.
|
|
||||||
/// </summary>
|
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
Log.Trace("Destroy");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
using System.Reflection;
|
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
// die einer Assembly zugeordnet sind.
|
|
||||||
[assembly: AssemblyTitle("SandboxProject")]
|
|
||||||
[assembly: AssemblyDescription("")]
|
|
||||||
[assembly: AssemblyConfiguration("")]
|
|
||||||
[assembly: AssemblyCompany("")]
|
|
||||||
[assembly: AssemblyProduct("SandboxProject")]
|
|
||||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
|
||||||
[assembly: AssemblyTrademark("")]
|
|
||||||
[assembly: AssemblyCulture("")]
|
|
||||||
|
|
||||||
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
|
|
||||||
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
|
|
||||||
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
|
|
||||||
[assembly: ComVisible(false)]
|
|
||||||
|
|
||||||
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
|
||||||
[assembly: Guid("7a70819c-5317-402a-8553-95c5a001e370")]
|
|
||||||
|
|
||||||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
//
|
|
||||||
// Hauptversion
|
|
||||||
// Nebenversion
|
|
||||||
// Buildnummer
|
|
||||||
// Revision
|
|
||||||
//
|
|
||||||
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
// indem Sie "*" wie unten gezeigt eingeben:
|
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{7A70819C-5317-402A-8553-95C5A001E370}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<RootNamespace>SandboxProject</RootNamespace>
|
|
||||||
<AssemblyName>SandboxProject</AssemblyName>
|
|
||||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<Deterministic>true</Deterministic>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>portable</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>bin\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<LangVersion>default</LangVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\</OutputPath>
|
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<LangVersion>default</LangVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Camera.cs" />
|
|
||||||
<Compile Include="MyTestEntity.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\..\..\ScriptCore\ScriptCore.csproj">
|
|
||||||
<Project>{6222c226-fc78-498c-80ba-5cf10ac9123c}</Project>
|
|
||||||
<Name>ScriptCore</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
|
||||||
</Project>
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.4.33205.214
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SandboxProject", "SandboxProject.csproj", "{7A70819C-5317-402A-8553-95C5A001E370}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ScriptCore", "..\..\..\..\ScriptCore\ScriptCore.csproj", "{6222C226-FC78-498C-80BA-5CF10AC9123C}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScriptCoreGenerator", "..\..\..\..\ScriptCoreGenerator\ScriptCoreGenerator.csproj", "{5D662996-1E1E-4170-A08A-B26CDB63A0DE}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{7A70819C-5317-402A-8553-95C5A001E370}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A70819C-5317-402A-8553-95C5A001E370}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7A70819C-5317-402A-8553-95C5A001E370}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7A70819C-5317-402A-8553-95C5A001E370}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{6222C226-FC78-498C-80BA-5CF10AC9123C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{6222C226-FC78-498C-80BA-5CF10AC9123C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{6222C226-FC78-498C-80BA-5CF10AC9123C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{6222C226-FC78-498C-80BA-5CF10AC9123C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{5D662996-1E1E-4170-A08A-B26CDB63A0DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5D662996-1E1E-4170-A08A-B26CDB63A0DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5D662996-1E1E-4170-A08A-B26CDB63A0DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5D662996-1E1E-4170-A08A-B26CDB63A0DE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {B5D43D8D-D80B-41AA-BE40-1DC507D87148}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
|
Before Width: | Height: | Size: 119 B |
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 13149961070100324290
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
Effect = "Resources/Shaders/myEffect.hlsl",
|
|
||||||
Textures = [
|
|
||||||
"AlbedoTexture": 8153940681327484189,
|
|
||||||
"NormalTexture": 15822842502398518390,
|
|
||||||
"MetallicTexture": 13527693616095745667,
|
|
||||||
"RoughnessTexture": 4141437666158293647,
|
|
||||||
"EmissiveTexture": 0
|
|
||||||
],
|
|
||||||
Variables = [
|
|
||||||
"AlbedoColor": .ColorRGBA{
|
|
||||||
Value = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"NormalScaling": .Float2{
|
|
||||||
Value = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"MetallicFactor": .Float{
|
|
||||||
Value = 1
|
|
||||||
},
|
|
||||||
"RoughnessFactor": .Float{
|
|
||||||
Value = 0
|
|
||||||
},
|
|
||||||
"EmissiveColor": .Float3{
|
|
||||||
Value = {
|
|
||||||
X = 0,
|
|
||||||
Y = 0,
|
|
||||||
Z = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "MaterialAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.ModelAssetLoaderConfig){}/* No reflection data for GlitchyEditor.Assets.ModelAssetLoaderConfig. Add [BonTarget] or force it */,
|
|
||||||
AssetHandle = 15093501654975430075
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
Effect = "Resources/Shaders/myEffect.hlsl",
|
|
||||||
Textures = [
|
|
||||||
"AlbedoTexture": "Assets/Textures/rocket.png",
|
|
||||||
"NormalTexture": "Assets/Textures/TestMat/rustediron2_normal.png",
|
|
||||||
"MetallicTexture": "Assets/Textures/TestMat/rustediron2_metallic.png",
|
|
||||||
"RoughnessTexture": "Assets/Textures/TestMat/rustediron2_roughness.png"
|
|
||||||
],
|
|
||||||
Variables = [
|
|
||||||
"AlbedoColor": .ColorRGBA{
|
|
||||||
Value = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"NormalScaling": .Float2{
|
|
||||||
Value = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"MetallicFactor": .Float{
|
|
||||||
Value = 0
|
|
||||||
},
|
|
||||||
"RoughnessFactor": .Float{
|
|
||||||
Value = 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "MaterialAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.ModelAssetLoaderConfig){}/* No reflection data for GlitchyEditor.Assets.ModelAssetLoaderConfig. Add [BonTarget] or force it */,
|
|
||||||
AssetHandle = 8829406607210635133
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 119 B |
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 5558090951492679375
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 8153940681327484189
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 3.3 MiB |
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 13527693616095745667
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 7.4 MiB |
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 15822842502398518390
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 3.0 MiB |
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 4141437666158293647
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
Effect = "Resources/Shaders/myEffect.hlsl",
|
|
||||||
Textures = [
|
|
||||||
"AlbedoTexture": "Assets/Textures/TestMat/rustediron2_albedo.png",
|
|
||||||
"NormalTexture": "Assets/Textures/TestMat/rustediron2_normal.png",
|
|
||||||
"MetallicTexture": "Assets/Textures/TestMat/rustediron2_metallic.png",
|
|
||||||
"RoughnessTexture": "Assets/Textures/TestMat/rustediron2_roughness.png",
|
|
||||||
"EmissiveTexture": "Assets/Textures/rocket.png"
|
|
||||||
],
|
|
||||||
Variables = [
|
|
||||||
"AlbedoColor": .ColorRGBA{
|
|
||||||
Value = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"NormalScaling": .Float2{
|
|
||||||
Value = {
|
|
||||||
X = 1,
|
|
||||||
Y = 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"MetallicFactor": .Float{
|
|
||||||
Value = 1
|
|
||||||
},
|
|
||||||
"RoughnessFactor": .Float{
|
|
||||||
Value = 1
|
|
||||||
},
|
|
||||||
"EmissiveColor": .ColorRGB{
|
|
||||||
Value = {
|
|
||||||
R = 1,
|
|
||||||
G = 0,
|
|
||||||
B = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "MaterialAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.ModelAssetLoaderConfig){}/* No reflection data for GlitchyEditor.Assets.ModelAssetLoaderConfig. Add [BonTarget] or force it */,
|
|
||||||
AssetHandle = 9886473966965265328
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 119 B |
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 14357509390762845070
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 5635535744559587375
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 10807131213209469263
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = "EditorTextureAssetLoader",
|
|
||||||
Config = (GlitchyEditor.Assets.EditorTextureAssetLoaderConfig){
|
|
||||||
_samplerStateDescription = {
|
|
||||||
MinFilter = .Linear,
|
|
||||||
MagFilter = .Linear,
|
|
||||||
MipFilter = .Linear,
|
|
||||||
ComparisonFunction = .Never,
|
|
||||||
AddressModeU = .Clamp,
|
|
||||||
AddressModeV = .Clamp,
|
|
||||||
AddressModeW = .Clamp,
|
|
||||||
MipMinLOD = -3.40282347e+38,
|
|
||||||
MipMaxLOD = 3.40282347e+38,
|
|
||||||
MaxAnisotropy = 1,
|
|
||||||
BorderColor = {
|
|
||||||
R = 1,
|
|
||||||
G = 1,
|
|
||||||
B = 1,
|
|
||||||
A = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
AssetHandle = 5889819840498959425
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{_projectName="SandboxProject"}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{_recentScenes=["Assets\\Scenes\\physics2D.scene"]}
|
|
||||||
@@ -1,5 +1,3 @@
|
|||||||
#define EDITOR
|
|
||||||
|
|
||||||
Texture2D Texture : register(t0);
|
Texture2D Texture : register(t0);
|
||||||
SamplerState Sampler : register(s0);
|
SamplerState Sampler : register(s0);
|
||||||
|
|
||||||
@@ -16,9 +14,6 @@ struct VS_Input
|
|||||||
float4 Color : COLOR;
|
float4 Color : COLOR;
|
||||||
float4 UVTransform : TEXCOORD1;
|
float4 UVTransform : TEXCOORD1;
|
||||||
float InnerRadius : TEXCOORD2;
|
float InnerRadius : TEXCOORD2;
|
||||||
#ifdef EDITOR
|
|
||||||
uint EntityId : ENTITYID;
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct PS_Input
|
struct PS_Input
|
||||||
@@ -27,9 +22,6 @@ struct PS_Input
|
|||||||
float2 RawPos : TEXCOORD0;
|
float2 RawPos : TEXCOORD0;
|
||||||
float2 Texcoord : TEXCOORD1;
|
float2 Texcoord : TEXCOORD1;
|
||||||
float4 Color : COLOR;
|
float4 Color : COLOR;
|
||||||
#ifdef EDITOR
|
|
||||||
nointerpolation uint EntityId : ENTITYID;
|
|
||||||
#endif
|
|
||||||
float InnerRadius : TEXCOORD2;
|
float InnerRadius : TEXCOORD2;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -43,25 +35,11 @@ PS_Input VS(VS_Input input)
|
|||||||
output.Color = input.Color;
|
output.Color = input.Color;
|
||||||
output.InnerRadius = input.InnerRadius;
|
output.InnerRadius = input.InnerRadius;
|
||||||
|
|
||||||
#ifdef EDITOR
|
|
||||||
output.EntityId = input.EntityId;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PS_Output
|
float4 PS(PS_Input input) : SV_Target0
|
||||||
{
|
{
|
||||||
float4 Color : SV_Target0;
|
|
||||||
#ifdef EDITOR
|
|
||||||
uint EntityId : SV_TARGET1;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_Output PS(PS_Input input)
|
|
||||||
{
|
|
||||||
PS_Output output;
|
|
||||||
|
|
||||||
float2 uv = input.RawPos * 2;
|
float2 uv = input.RawPos * 2;
|
||||||
|
|
||||||
float distance = 1.0f - length(uv);
|
float distance = 1.0f - length(uv);
|
||||||
@@ -75,14 +53,10 @@ PS_Output PS(PS_Input input)
|
|||||||
// Discard invisible pixels
|
// Discard invisible pixels
|
||||||
clip(amount - 0.5f);
|
clip(amount - 0.5f);
|
||||||
|
|
||||||
output.Color = Texture.Sample(Sampler, input.Texcoord) * input.Color;
|
float4 color = Texture.Sample(Sampler, input.Texcoord) * input.Color;
|
||||||
output.Color.a *= amount;
|
color.a *= amount;
|
||||||
|
|
||||||
#ifdef EDITOR
|
return color;
|
||||||
output.EntityId = input.EntityId;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma Effect[VS=VS; PS=PS]
|
#effect[VS=VS, PS=PS]
|
||||||
@@ -28,4 +28,4 @@ float4 PS(PS_Input input) : SV_Target0
|
|||||||
return Color;
|
return Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma Effect[VS=VS; PS=PS]
|
#effect[VS=VS, PS=PS]
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
Texture2D<float3> Texture : register(t0);
|
||||||
|
SamplerState Sampler : register(s0);
|
||||||
|
|
||||||
|
cbuffer Constants
|
||||||
|
{
|
||||||
|
float4x4 ViewProjection;
|
||||||
|
float2 UnitRange;
|
||||||
|
float screenPixelRange = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct VS_Input
|
||||||
|
{
|
||||||
|
float2 Position : POSITION;
|
||||||
|
float2 Texcoord : TEXCOORD0;
|
||||||
|
float4x4 Tranform : TRANSFORM;
|
||||||
|
float4 Color : COLOR;
|
||||||
|
float4 UVTransform : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PS_Input
|
||||||
|
{
|
||||||
|
float4 Position : SV_Position;
|
||||||
|
float2 TexCoord : TEXCOORD0;
|
||||||
|
float4 Color : COLOR;
|
||||||
|
};
|
||||||
|
|
||||||
|
PS_Input VS(VS_Input input)
|
||||||
|
{
|
||||||
|
PS_Input output;
|
||||||
|
|
||||||
|
output.Position = mul(ViewProjection, mul(input.Tranform, float4(input.Position, 0.0f, 1.0f)));
|
||||||
|
output.TexCoord = input.UVTransform.xy + input.UVTransform.zw * input.Texcoord;
|
||||||
|
output.Color = input.Color;
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
in vec2 texCoord;
|
||||||
|
out vec4 color;
|
||||||
|
uniform sampler2D msdf;
|
||||||
|
uniform vec4 bgColor;
|
||||||
|
uniform vec4 fgColor;
|
||||||
|
|
||||||
|
float median(float r, float g, float b) {
|
||||||
|
return max(min(r, g), min(max(r, g), b));
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec3 msd = texture(msdf, texCoord).rgb;
|
||||||
|
float sd = median(msd.r, msd.g, msd.b);
|
||||||
|
float screenPxDistance = screenPxRange()*(sd - 0.5);
|
||||||
|
float opacity = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
||||||
|
color = mix(bgColor, fgColor, opacity);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
float median(float r, float g, float b)
|
||||||
|
{
|
||||||
|
return max(min(r, g), min(max(r, g), b));
|
||||||
|
}
|
||||||
|
|
||||||
|
float ScreenPxRange(float2 texcoord)
|
||||||
|
{
|
||||||
|
float2 screenTexSize = 1.0f / fwidth(texcoord);
|
||||||
|
return max(0.5f * dot(UnitRange, screenTexSize), 1.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 PS(PS_Input input) : SV_Target0
|
||||||
|
{
|
||||||
|
float3 msd = Texture.Sample(Sampler, input.TexCoord);
|
||||||
|
float sd = median(msd.r, msd.g, msd.b);
|
||||||
|
float screenPxDistance = ScreenPxRange(input.TexCoord) * (sd - 0.5);
|
||||||
|
float opacity = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
||||||
|
|
||||||
|
return float4(input.Color.rgb, opacity * input.Color.a);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
// 2D
|
||||||
|
float4 PS(PS_Input input) : SV_Target0
|
||||||
|
{
|
||||||
|
float3 msd = Texture.Sample(Sampler, input.TexCoord).rgb;
|
||||||
|
float sd = median(msd.r, msd.g, msd.b);
|
||||||
|
float screenPxDistance = screenPixelRange*(sd - 0.5);
|
||||||
|
float opacity = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
||||||
|
|
||||||
|
return float4(input.Color.rgb, opacity * input.Color.a);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#effect[VS=VS, PS=PS]
|
||||||
@@ -1,17 +1,10 @@
|
|||||||
Texture2D Texture : register(t0);
|
Texture2D Texture : register(t0);
|
||||||
SamplerState Sampler : register(s0);
|
SamplerState Sampler : register(s0);
|
||||||
|
|
||||||
cbuffer Constants
|
cbuffer Constants : register(b0)
|
||||||
{
|
{
|
||||||
float4x4 ViewProjection;
|
float4x4 ViewProjection;
|
||||||
|
};
|
||||||
float ColorOffset = 0.5f;
|
|
||||||
float AlphaOffset = 0.0f;
|
|
||||||
float ColorScale = 0.5f;
|
|
||||||
float AlphaScale = 1.0f;
|
|
||||||
|
|
||||||
float2 TextureSizeInPixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct VS_Input
|
struct VS_Input
|
||||||
{
|
{
|
||||||
@@ -25,8 +18,8 @@ struct VS_Input
|
|||||||
struct PS_Input
|
struct PS_Input
|
||||||
{
|
{
|
||||||
float4 Position : SV_Position;
|
float4 Position : SV_Position;
|
||||||
float2 Texcoord : TEXCOORD0;
|
float2 Texcoord : TEXCOORD;
|
||||||
float4 Color : COLOR;
|
float4 Color : COLOR;
|
||||||
};
|
};
|
||||||
|
|
||||||
PS_Input VS(VS_Input input)
|
PS_Input VS(VS_Input input)
|
||||||
@@ -42,11 +35,7 @@ PS_Input VS(VS_Input input)
|
|||||||
|
|
||||||
float4 PS(PS_Input input) : SV_Target0
|
float4 PS(PS_Input input) : SV_Target0
|
||||||
{
|
{
|
||||||
float4 color = Texture.Sample(Sampler, input.Texcoord);
|
return Texture.Sample(Sampler, input.Texcoord) * input.Color;
|
||||||
|
|
||||||
float4 final = float4(ColorOffset.xxx, AlphaOffset) + color * float4(ColorScale.xxx, AlphaScale);
|
|
||||||
|
|
||||||
return final;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma Effect[VS=VS; PS=PS]
|
#effect[VS=VS, PS=PS]
|
||||||
|
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 258 B |
@@ -1 +0,0 @@
|
|||||||
4.5/
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Install mono and copy the folder `lib/mono/4.5` here!
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 9434890118063137951
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
Effect = 7757902626263730438,
|
|
||||||
Textures = [],
|
|
||||||
Constants = []
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "MaterialImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 14657247797693923776
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
Effect = 2172704887168568810,
|
|
||||||
Textures = [],
|
|
||||||
Constants = []
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "MaterialImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 15110879072477854834
|
|
||||||
}
|
|
||||||
@@ -1,401 +0,0 @@
|
|||||||
# Ignore user Settings
|
|
||||||
project_user.bon
|
|
||||||
|
|
||||||
## Ignore Visual Studio temporary files, build results, and
|
|
||||||
## files generated by popular Visual Studio add-ons.
|
|
||||||
##
|
|
||||||
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
|
|
||||||
|
|
||||||
# User-specific files
|
|
||||||
*.rsuser
|
|
||||||
*.suo
|
|
||||||
*.user
|
|
||||||
*.userosscache
|
|
||||||
*.sln.docstates
|
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
|
||||||
*.userprefs
|
|
||||||
|
|
||||||
# Mono auto generated files
|
|
||||||
mono_crash.*
|
|
||||||
|
|
||||||
# Build results
|
|
||||||
[Dd]ebug/
|
|
||||||
[Dd]ebugPublic/
|
|
||||||
[Rr]elease/
|
|
||||||
[Rr]eleases/
|
|
||||||
x64/
|
|
||||||
x86/
|
|
||||||
[Ww][Ii][Nn]32/
|
|
||||||
[Aa][Rr][Mm]/
|
|
||||||
[Aa][Rr][Mm]64/
|
|
||||||
bld/
|
|
||||||
[Bb]in/
|
|
||||||
[Oo]bj/
|
|
||||||
[Ll]og/
|
|
||||||
[Ll]ogs/
|
|
||||||
|
|
||||||
# Visual Studio 2015/2017 cache/options directory
|
|
||||||
.vs/
|
|
||||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
|
||||||
#wwwroot/
|
|
||||||
|
|
||||||
# Visual Studio 2017 auto generated files
|
|
||||||
Generated\ Files/
|
|
||||||
|
|
||||||
# MSTest test Results
|
|
||||||
[Tt]est[Rr]esult*/
|
|
||||||
[Bb]uild[Ll]og.*
|
|
||||||
|
|
||||||
# NUnit
|
|
||||||
*.VisualState.xml
|
|
||||||
TestResult.xml
|
|
||||||
nunit-*.xml
|
|
||||||
|
|
||||||
# Build Results of an ATL Project
|
|
||||||
[Dd]ebugPS/
|
|
||||||
[Rr]eleasePS/
|
|
||||||
dlldata.c
|
|
||||||
|
|
||||||
# Benchmark Results
|
|
||||||
BenchmarkDotNet.Artifacts/
|
|
||||||
|
|
||||||
# .NET Core
|
|
||||||
project.lock.json
|
|
||||||
project.fragment.lock.json
|
|
||||||
artifacts/
|
|
||||||
|
|
||||||
# ASP.NET Scaffolding
|
|
||||||
ScaffoldingReadMe.txt
|
|
||||||
|
|
||||||
# StyleCop
|
|
||||||
StyleCopReport.xml
|
|
||||||
|
|
||||||
# Files built by Visual Studio
|
|
||||||
*_i.c
|
|
||||||
*_p.c
|
|
||||||
*_h.h
|
|
||||||
*.ilk
|
|
||||||
*.meta
|
|
||||||
*.obj
|
|
||||||
*.iobj
|
|
||||||
*.pch
|
|
||||||
*.pdb
|
|
||||||
*.ipdb
|
|
||||||
*.pgc
|
|
||||||
*.pgd
|
|
||||||
*.rsp
|
|
||||||
*.sbr
|
|
||||||
*.tlb
|
|
||||||
*.tli
|
|
||||||
*.tlh
|
|
||||||
*.tmp
|
|
||||||
*.tmp_proj
|
|
||||||
*_wpftmp.csproj
|
|
||||||
*.log
|
|
||||||
*.tlog
|
|
||||||
*.vspscc
|
|
||||||
*.vssscc
|
|
||||||
.builds
|
|
||||||
*.pidb
|
|
||||||
*.svclog
|
|
||||||
*.scc
|
|
||||||
|
|
||||||
# Chutzpah Test files
|
|
||||||
_Chutzpah*
|
|
||||||
|
|
||||||
# Visual C++ cache files
|
|
||||||
ipch/
|
|
||||||
*.aps
|
|
||||||
*.ncb
|
|
||||||
*.opendb
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
||||||
*.cachefile
|
|
||||||
*.VC.db
|
|
||||||
*.VC.VC.opendb
|
|
||||||
|
|
||||||
# Visual Studio profiler
|
|
||||||
*.psess
|
|
||||||
*.vsp
|
|
||||||
*.vspx
|
|
||||||
*.sap
|
|
||||||
|
|
||||||
# Visual Studio Trace Files
|
|
||||||
*.e2e
|
|
||||||
|
|
||||||
# TFS 2012 Local Workspace
|
|
||||||
$tf/
|
|
||||||
|
|
||||||
# Guidance Automation Toolkit
|
|
||||||
*.gpState
|
|
||||||
|
|
||||||
# ReSharper is a .NET coding add-in
|
|
||||||
_ReSharper*/
|
|
||||||
*.[Rr]e[Ss]harper
|
|
||||||
*.DotSettings.user
|
|
||||||
|
|
||||||
# TeamCity is a build add-in
|
|
||||||
_TeamCity*
|
|
||||||
|
|
||||||
# DotCover is a Code Coverage Tool
|
|
||||||
*.dotCover
|
|
||||||
|
|
||||||
# AxoCover is a Code Coverage Tool
|
|
||||||
.axoCover/*
|
|
||||||
!.axoCover/settings.json
|
|
||||||
|
|
||||||
# Coverlet is a free, cross platform Code Coverage Tool
|
|
||||||
coverage*.json
|
|
||||||
coverage*.xml
|
|
||||||
coverage*.info
|
|
||||||
|
|
||||||
# Visual Studio code coverage results
|
|
||||||
*.coverage
|
|
||||||
*.coveragexml
|
|
||||||
|
|
||||||
# NCrunch
|
|
||||||
_NCrunch_*
|
|
||||||
.*crunch*.local.xml
|
|
||||||
nCrunchTemp_*
|
|
||||||
|
|
||||||
# MightyMoose
|
|
||||||
*.mm.*
|
|
||||||
AutoTest.Net/
|
|
||||||
|
|
||||||
# Web workbench (sass)
|
|
||||||
.sass-cache/
|
|
||||||
|
|
||||||
# Installshield output folder
|
|
||||||
[Ee]xpress/
|
|
||||||
|
|
||||||
# DocProject is a documentation generator add-in
|
|
||||||
DocProject/buildhelp/
|
|
||||||
DocProject/Help/*.HxT
|
|
||||||
DocProject/Help/*.HxC
|
|
||||||
DocProject/Help/*.hhc
|
|
||||||
DocProject/Help/*.hhk
|
|
||||||
DocProject/Help/*.hhp
|
|
||||||
DocProject/Help/Html2
|
|
||||||
DocProject/Help/html
|
|
||||||
|
|
||||||
# Click-Once directory
|
|
||||||
publish/
|
|
||||||
|
|
||||||
# Publish Web Output
|
|
||||||
*.[Pp]ublish.xml
|
|
||||||
*.azurePubxml
|
|
||||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
|
||||||
# but database connection strings (with potential passwords) will be unencrypted
|
|
||||||
*.pubxml
|
|
||||||
*.publishproj
|
|
||||||
|
|
||||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
|
||||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
|
||||||
# in these scripts will be unencrypted
|
|
||||||
PublishScripts/
|
|
||||||
|
|
||||||
# NuGet Packages
|
|
||||||
*.nupkg
|
|
||||||
# NuGet Symbol Packages
|
|
||||||
*.snupkg
|
|
||||||
# The packages folder can be ignored because of Package Restore
|
|
||||||
**/[Pp]ackages/*
|
|
||||||
# except build/, which is used as an MSBuild target.
|
|
||||||
!**/[Pp]ackages/build/
|
|
||||||
# Uncomment if necessary however generally it will be regenerated when needed
|
|
||||||
#!**/[Pp]ackages/repositories.config
|
|
||||||
# NuGet v3's project.json files produces more ignorable files
|
|
||||||
*.nuget.props
|
|
||||||
*.nuget.targets
|
|
||||||
|
|
||||||
# Microsoft Azure Build Output
|
|
||||||
csx/
|
|
||||||
*.build.csdef
|
|
||||||
|
|
||||||
# Microsoft Azure Emulator
|
|
||||||
ecf/
|
|
||||||
rcf/
|
|
||||||
|
|
||||||
# Windows Store app package directories and files
|
|
||||||
AppPackages/
|
|
||||||
BundleArtifacts/
|
|
||||||
Package.StoreAssociation.xml
|
|
||||||
_pkginfo.txt
|
|
||||||
*.appx
|
|
||||||
*.appxbundle
|
|
||||||
*.appxupload
|
|
||||||
|
|
||||||
# Visual Studio cache files
|
|
||||||
# files ending in .cache can be ignored
|
|
||||||
*.[Cc]ache
|
|
||||||
# but keep track of directories ending in .cache
|
|
||||||
!?*.[Cc]ache/
|
|
||||||
|
|
||||||
# Others
|
|
||||||
ClientBin/
|
|
||||||
~$*
|
|
||||||
*~
|
|
||||||
*.dbmdl
|
|
||||||
*.dbproj.schemaview
|
|
||||||
*.jfm
|
|
||||||
*.pfx
|
|
||||||
*.publishsettings
|
|
||||||
orleans.codegen.cs
|
|
||||||
|
|
||||||
# Including strong name files can present a security risk
|
|
||||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
|
||||||
#*.snk
|
|
||||||
|
|
||||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
|
||||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
|
||||||
#bower_components/
|
|
||||||
|
|
||||||
# RIA/Silverlight projects
|
|
||||||
Generated_Code/
|
|
||||||
|
|
||||||
# Backup & report files from converting an old project file
|
|
||||||
# to a newer Visual Studio version. Backup files are not needed,
|
|
||||||
# because we have git ;-)
|
|
||||||
_UpgradeReport_Files/
|
|
||||||
Backup*/
|
|
||||||
UpgradeLog*.XML
|
|
||||||
UpgradeLog*.htm
|
|
||||||
ServiceFabricBackup/
|
|
||||||
*.rptproj.bak
|
|
||||||
|
|
||||||
# SQL Server files
|
|
||||||
*.mdf
|
|
||||||
*.ldf
|
|
||||||
*.ndf
|
|
||||||
|
|
||||||
# Business Intelligence projects
|
|
||||||
*.rdl.data
|
|
||||||
*.bim.layout
|
|
||||||
*.bim_*.settings
|
|
||||||
*.rptproj.rsuser
|
|
||||||
*- [Bb]ackup.rdl
|
|
||||||
*- [Bb]ackup ([0-9]).rdl
|
|
||||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
|
||||||
|
|
||||||
# Microsoft Fakes
|
|
||||||
FakesAssemblies/
|
|
||||||
|
|
||||||
# GhostDoc plugin setting file
|
|
||||||
*.GhostDoc.xml
|
|
||||||
|
|
||||||
# Node.js Tools for Visual Studio
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
node_modules/
|
|
||||||
|
|
||||||
# Visual Studio 6 build log
|
|
||||||
*.plg
|
|
||||||
|
|
||||||
# Visual Studio 6 workspace options file
|
|
||||||
*.opt
|
|
||||||
|
|
||||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
|
||||||
*.vbw
|
|
||||||
|
|
||||||
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
|
|
||||||
*.vbp
|
|
||||||
|
|
||||||
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
|
|
||||||
*.dsw
|
|
||||||
*.dsp
|
|
||||||
|
|
||||||
# Visual Studio 6 technical files
|
|
||||||
*.ncb
|
|
||||||
*.aps
|
|
||||||
|
|
||||||
# Visual Studio LightSwitch build output
|
|
||||||
**/*.HTMLClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/ModelManifest.xml
|
|
||||||
**/*.Server/GeneratedArtifacts
|
|
||||||
**/*.Server/ModelManifest.xml
|
|
||||||
_Pvt_Extensions
|
|
||||||
|
|
||||||
# Paket dependency manager
|
|
||||||
.paket/paket.exe
|
|
||||||
paket-files/
|
|
||||||
|
|
||||||
# FAKE - F# Make
|
|
||||||
.fake/
|
|
||||||
|
|
||||||
# CodeRush personal settings
|
|
||||||
.cr/personal
|
|
||||||
|
|
||||||
# Python Tools for Visual Studio (PTVS)
|
|
||||||
__pycache__/
|
|
||||||
*.pyc
|
|
||||||
|
|
||||||
# Cake - Uncomment if you are using it
|
|
||||||
# tools/**
|
|
||||||
# !tools/packages.config
|
|
||||||
|
|
||||||
# Tabs Studio
|
|
||||||
*.tss
|
|
||||||
|
|
||||||
# Telerik's JustMock configuration file
|
|
||||||
*.jmconfig
|
|
||||||
|
|
||||||
# BizTalk build output
|
|
||||||
*.btp.cs
|
|
||||||
*.btm.cs
|
|
||||||
*.odx.cs
|
|
||||||
*.xsd.cs
|
|
||||||
|
|
||||||
# OpenCover UI analysis results
|
|
||||||
OpenCover/
|
|
||||||
|
|
||||||
# Azure Stream Analytics local run output
|
|
||||||
ASALocalRun/
|
|
||||||
|
|
||||||
# MSBuild Binary and Structured Log
|
|
||||||
*.binlog
|
|
||||||
|
|
||||||
# NVidia Nsight GPU debugger configuration file
|
|
||||||
*.nvuser
|
|
||||||
|
|
||||||
# MFractors (Xamarin productivity tool) working folder
|
|
||||||
.mfractor/
|
|
||||||
|
|
||||||
# Local History for Visual Studio
|
|
||||||
.localhistory/
|
|
||||||
|
|
||||||
# Visual Studio History (VSHistory) files
|
|
||||||
.vshistory/
|
|
||||||
|
|
||||||
# BeatPulse healthcheck temp database
|
|
||||||
healthchecksdb
|
|
||||||
|
|
||||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
|
||||||
MigrationBackup/
|
|
||||||
|
|
||||||
# Ionide (cross platform F# VS Code tools) working folder
|
|
||||||
.ionide/
|
|
||||||
|
|
||||||
# Fody - auto-generated XML schema
|
|
||||||
FodyWeavers.xsd
|
|
||||||
|
|
||||||
# VS Code files for those working on multiple tools
|
|
||||||
.vscode/*
|
|
||||||
!.vscode/settings.json
|
|
||||||
!.vscode/tasks.json
|
|
||||||
!.vscode/launch.json
|
|
||||||
!.vscode/extensions.json
|
|
||||||
*.code-workspace
|
|
||||||
|
|
||||||
# Local History for Visual Studio Code
|
|
||||||
.history/
|
|
||||||
|
|
||||||
# Windows Installer files from build outputs
|
|
||||||
*.cab
|
|
||||||
*.msi
|
|
||||||
*.msix
|
|
||||||
*.msm
|
|
||||||
*.msp
|
|
||||||
|
|
||||||
# JetBrains Rider
|
|
||||||
*.sln.iml
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 12886429392536704724
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
<PropertyGroup>
|
|
||||||
<!-- General configuration -->
|
|
||||||
<AssemblyTitle>[ProjectName]</AssemblyTitle>
|
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
<!-- Define the output path -->
|
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
|
||||||
<OutputPath>./.cache/bin/</OutputPath>
|
|
||||||
<!-- Generates a runtimeconfig-file and copies nuget references to the output -->
|
|
||||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="ScriptCore" OutputItemType="Analyzer" ReferenceOutputAssembly="true">
|
|
||||||
<HintPath>/ScriptCore.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 17767079304205108419
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<Solution>
|
|
||||||
<Project Path="[ProjectName].csproj" />
|
|
||||||
</Solution>
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 15274144675004602184
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
//=================================================================================================
|
|
||||||
//
|
|
||||||
// Baking Lab
|
|
||||||
// by MJP and David Neubelt
|
|
||||||
// http://mynameismjp.wordpress.com/
|
|
||||||
//
|
|
||||||
// All code licensed under the MIT license
|
|
||||||
//
|
|
||||||
//=================================================================================================
|
|
||||||
|
|
||||||
// The code in this file was originally written by Stephen Hill (@self_shadow), who deserves all
|
|
||||||
// credit for coming up with this fit and implementing it. Buy him a beer next time you see him. :)
|
|
||||||
|
|
||||||
// Source: https://github.com/TheRealMJP/BakingLab/blob/master/BakingLab/ACES.hlsl
|
|
||||||
|
|
||||||
// sRGB => XYZ => D65_2_D60 => AP1 => RRT_SAT
|
|
||||||
static const float3x3 ACESInputMat =
|
|
||||||
{
|
|
||||||
{0.59719, 0.35458, 0.04823},
|
|
||||||
{0.07600, 0.90834, 0.01566},
|
|
||||||
{0.02840, 0.13383, 0.83777}
|
|
||||||
};
|
|
||||||
|
|
||||||
// ODT_SAT => XYZ => D60_2_D65 => sRGB
|
|
||||||
static const float3x3 ACESOutputMat =
|
|
||||||
{
|
|
||||||
{ 1.60475, -0.53108, -0.07367},
|
|
||||||
{-0.10208, 1.10813, -0.00605},
|
|
||||||
{-0.00327, -0.07276, 1.07602}
|
|
||||||
};
|
|
||||||
|
|
||||||
float3 RRTAndODTFit(float3 v)
|
|
||||||
{
|
|
||||||
float3 a = v * (v + 0.0245786f) - 0.000090537f;
|
|
||||||
float3 b = v * (0.983729f * v + 0.4329510f) + 0.238081f;
|
|
||||||
return a / b;
|
|
||||||
}
|
|
||||||
|
|
||||||
float3 ACESFitted(float3 color)
|
|
||||||
{
|
|
||||||
color = mul(ACESInputMat, color);
|
|
||||||
|
|
||||||
// Apply RRT and ODT
|
|
||||||
color = RRTAndODTFit(color);
|
|
||||||
|
|
||||||
color = mul(ACESOutputMat, color);
|
|
||||||
|
|
||||||
// Clamp to [0, 1]
|
|
||||||
color = saturate(color);
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 928998782684229984
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
cbuffer Constants : register(b0)
|
|
||||||
{
|
|
||||||
uint ClearValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 VS(float2 input : POSITION) : SV_Position
|
|
||||||
{
|
|
||||||
return float4(input, 0.0f, 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint PS(float4 input : SV_Position) : SV_Target0
|
|
||||||
{
|
|
||||||
return ClearValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS = VS; PS = PS]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 3971197750817239312
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
// TODO: General pipeline for post processing effects
|
|
||||||
|
|
||||||
Texture2D Texture : register(t0);
|
|
||||||
SamplerState TextureSampler : register(s0);
|
|
||||||
|
|
||||||
struct VS_IN
|
|
||||||
{
|
|
||||||
float2 Position : POSITION;
|
|
||||||
float2 TexCoord : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PS_IN
|
|
||||||
{
|
|
||||||
float4 Position : SV_POSITION;
|
|
||||||
float2 TexCoord : TEXCOORD;
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_IN VS(VS_IN input)
|
|
||||||
{
|
|
||||||
PS_IN output;
|
|
||||||
|
|
||||||
output.Position = float4(input.Position, 0, 1);
|
|
||||||
output.TexCoord = input.TexCoord;
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 PS(PS_IN input) : SV_TARGET
|
|
||||||
{
|
|
||||||
float4 color = Texture.Sample(TextureSampler, input.TexCoord);
|
|
||||||
|
|
||||||
return float4(pow(color.rgb, 1.0f / 2.2f), color.a);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS = VS; PS = PS]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 315199643377983302
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
#pragma EngineBuffer[ Name = "SceneConstants"; Binding = "Scene" ]
|
|
||||||
cbuffer SceneConstants : register(b0)
|
|
||||||
{
|
|
||||||
float4x4 ViewProjection;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma EngineBuffer[ Name = "ObjectConstants"; Binding = "Object" ]
|
|
||||||
cbuffer ObjectConstants : register(b1)
|
|
||||||
{
|
|
||||||
float4x4 Transform;
|
|
||||||
/**
|
|
||||||
* \brief Inverted and transposed transform matrix.
|
|
||||||
* \remarks This matrix is used in order to correctly transform normal vectors.
|
|
||||||
*/
|
|
||||||
float4x3 Transform_InvT;
|
|
||||||
#ifdef OutputEntityId
|
|
||||||
uint EntityId;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Pixel Shader output for lit surfaces.
|
|
||||||
*/
|
|
||||||
struct PS_OUT_Lit
|
|
||||||
{
|
|
||||||
/** RGB: Albedo A: Transparency */
|
|
||||||
float4 Albedo : SV_TARGET0;
|
|
||||||
/** RG: TextureNormal.XY | BA: GeoNrm.XY */
|
|
||||||
float4 Normal : SV_TARGET1;
|
|
||||||
/** R: GeoNrm.Z | GBA: GeoTan.XYZ */
|
|
||||||
float4 Tangent : SV_TARGET2;
|
|
||||||
/** RGB: world position XYZ | A: 1.0 */
|
|
||||||
float4 Position : SV_TARGET3;
|
|
||||||
/** RGB: emissive light and color | A: unused */
|
|
||||||
float4 Emissive : SV_TARGET4;
|
|
||||||
/** R: Metallicity | G: Roughness | B: Ambient | A: Unused */
|
|
||||||
float4 Material : SV_TARGET5;
|
|
||||||
#ifdef OutputEntityId
|
|
||||||
/** Needed for editor picking. Simply pass through the EntityId. */
|
|
||||||
uint EntityId : SV_TARGET6;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Pixel Shader output for unlit surfaces.
|
|
||||||
*/
|
|
||||||
struct PS_OUT_Unlit
|
|
||||||
{
|
|
||||||
/** RGB: Color A: Transparency */
|
|
||||||
float4 Color : SV_TARGET0;
|
|
||||||
/** RGB: emissive light and color | A: unused */
|
|
||||||
float4 Emissive : SV_TARGET1;
|
|
||||||
/** RGB: world position XYZ | A: 1.0 */
|
|
||||||
float4 Position : SV_TARGET2;
|
|
||||||
|
|
||||||
#ifdef OutputEntityId
|
|
||||||
uint EntityId : SV_TARGET5;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 8508337008960456447
|
|
||||||
}
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
#pragma EngineBuffer[ Name = "SceneConstants"; Binding = "Scene" ]
|
|
||||||
/**
|
|
||||||
* Contains constants that apply to the current scene.
|
|
||||||
*/
|
|
||||||
cbuffer SceneConstants : register(b0)
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* View projection matrix of the active camera.
|
|
||||||
*/
|
|
||||||
float4x4 ViewProjection;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Contains the data provided by the engine for a 2D vertex shader.
|
|
||||||
*/
|
|
||||||
struct VS_Input
|
|
||||||
{
|
|
||||||
// Geometry
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Vertex position
|
|
||||||
*/
|
|
||||||
float2 Position : POSITION;
|
|
||||||
/**
|
|
||||||
* Vertex texture coordinate
|
|
||||||
*/
|
|
||||||
float2 Texcoord : TEXCOORD0;
|
|
||||||
|
|
||||||
// Instance data
|
|
||||||
/**
|
|
||||||
* model to world transform matrix of the current quad.
|
|
||||||
*/
|
|
||||||
float4x4 Transform : TRANSFORM;
|
|
||||||
/**
|
|
||||||
* Color of the current quad.
|
|
||||||
*/
|
|
||||||
float4 Color : COLOR;
|
|
||||||
/**
|
|
||||||
* model to world transform matrix of the current quad.
|
|
||||||
*/
|
|
||||||
float4 UVTransform : TEXCOORD1;
|
|
||||||
#ifdef EDITOR
|
|
||||||
/**
|
|
||||||
* The ECS ID of the entity associated with the current quad.
|
|
||||||
*/
|
|
||||||
uint EntityId : ENTITYID;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Contains the output data of the vertex shader that will be passed into the pixel shader.
|
|
||||||
*/
|
|
||||||
typedef struct PS_Input
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The screen space position of the current vertex.
|
|
||||||
*/
|
|
||||||
float4 Position : SV_Position;
|
|
||||||
/**
|
|
||||||
* The transformed texture coordinates of the current vertex.
|
|
||||||
*/
|
|
||||||
float2 Texcoord : TEXCOORD;
|
|
||||||
/**
|
|
||||||
* The color of the current vertex.
|
|
||||||
*/
|
|
||||||
float4 Color : COLOR;
|
|
||||||
#ifdef EDITOR
|
|
||||||
/**
|
|
||||||
* The ECS ID of the entity associated with the current quad.
|
|
||||||
* This should always just be passed through.
|
|
||||||
*/
|
|
||||||
nointerpolation uint EntityId : ENTITYID;
|
|
||||||
#endif
|
|
||||||
} VS_Output;
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 15977579743485633133
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
#define PI 3.14159265358979323846f
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculates the diffuse lighting of a lambertian surface
|
|
||||||
* @param diffuseColor (rho/ pi) * C_diffuse
|
|
||||||
* @param illuminanceColor The product of the "brightness" and the light color.
|
|
||||||
* @param n_dot_l The dot product of the surface normal and the light direction.
|
|
||||||
*/
|
|
||||||
float3 CalculateDiffuseReflection(float3 diffuseColor, float3 illuminanceColor, float3 n_dot_l)
|
|
||||||
{
|
|
||||||
float3 directColor = illuminanceColor * saturate(n_dot_l);
|
|
||||||
|
|
||||||
return (directColor * diffuseColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculates the blinn-phong-specular reflection
|
|
||||||
* @param n The normalized surface normal
|
|
||||||
* @param h The normalized half way vector (nrm(l + v))
|
|
||||||
* @param alpha The reflections alpha-value
|
|
||||||
* @param illuminanceColor The product of the "brightness" and the light color.
|
|
||||||
* @param n_dot_l The dot product of the surface normal and the light direction.
|
|
||||||
*/
|
|
||||||
float3 CalculateSpecularReflection(float3 n, float3 h, float alpha, float3 illuminanceColor, float n_dot_l)
|
|
||||||
{
|
|
||||||
float highlight = pow(saturate(dot(n, h)), alpha) * float(n_dot_l > 0.0);
|
|
||||||
return (illuminanceColor * highlight); // Todo: * SpecularColor
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 5789702360838490150
|
|
||||||
}
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
/*
|
|
||||||
* This File contains Function for PBR.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PBR_HLSL__
|
|
||||||
#define __PBR_HLSL__
|
|
||||||
|
|
||||||
#include "ShaderHelpers.hlsl"
|
|
||||||
|
|
||||||
// #define PBR_IBL
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Normal Distribution Function. (Trowbridge-Reits GGX)
|
|
||||||
* Calculates the relative surface area of microfacets exactly aligned to the halfway vector.
|
|
||||||
* @param normal The surface normal.
|
|
||||||
* @param halfway The halfway vector between the surface normal and the view direction.
|
|
||||||
* @param roughness Roughness value.
|
|
||||||
* @returns The relative surface area of microfacets exactly aligned to the halfway vector.
|
|
||||||
*/
|
|
||||||
float NormalDistributionGGX(float3 normal, float3 halfway, float roughness)
|
|
||||||
{
|
|
||||||
// Square roughness because it looks better
|
|
||||||
float a = roughness * roughness;
|
|
||||||
float aa = a * a;
|
|
||||||
|
|
||||||
float n_dot_h = max(dot(normal, halfway), 0.0f);
|
|
||||||
|
|
||||||
float denom = (n_dot_h * n_dot_h) * (aa - 1.0f) + 1.0f;
|
|
||||||
denom = PI * denom * denom;
|
|
||||||
|
|
||||||
return aa / denom;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Geometry Function calculating the overshadowing of microfacets based on roughness. (Schlick-Beckmann GGX).
|
|
||||||
* @param dot-product of normal vector and vector from surface to camera.
|
|
||||||
* @param k Roughness value.
|
|
||||||
*/
|
|
||||||
float GeometrySchlickGGX(float n_dot_v, float k)
|
|
||||||
{
|
|
||||||
return n_dot_v / (n_dot_v * (1 - k) + k);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Geometry Function calculating the overshadowing of microfacets based on roughness. (Smith)
|
|
||||||
* @param normal The surface normal.
|
|
||||||
* @param viewDir Vector from surface to viewer.
|
|
||||||
* @param lightDir Vector from surface to light source.
|
|
||||||
* @param roughness Roughness value.
|
|
||||||
*/
|
|
||||||
float GeometrySmith(float3 normal, float3 viewDir, float3 lightDir, float roughness)
|
|
||||||
{
|
|
||||||
#ifdef PBR_IBL
|
|
||||||
// IBL
|
|
||||||
float k = roughness * roughness / 2;
|
|
||||||
#else
|
|
||||||
// Direct lighting
|
|
||||||
float k = (roughness + 1.0f);
|
|
||||||
k = (k * k) / 8;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const float n_dot_v = max(dot(normal, viewDir), 0.0f);
|
|
||||||
float n_dot_l = max(dot(normal, lightDir), 0.0f);
|
|
||||||
|
|
||||||
return GeometrySchlickGGX(n_dot_v, k) * GeometrySchlickGGX(n_dot_l, k);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculates the fresnel value.
|
|
||||||
* @param n_dot_v Dot product of the normal and view direction
|
|
||||||
* @param F0 base reflectivity.
|
|
||||||
*/
|
|
||||||
float3 FresnelSchlick(float n_dot_v, float3 F0)
|
|
||||||
{
|
|
||||||
return F0 + (1.0 - F0) * pow(clamp(1.0 - n_dot_v, 0.0, 1.0), 5.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // __PBR_HLSL__
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 13875759478508290092
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
#include "GlitchyEngine.hlsl"
|
|
||||||
|
|
||||||
struct VS_IN
|
|
||||||
{
|
|
||||||
float3 Position : POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PS_IN
|
|
||||||
{
|
|
||||||
float4 Position : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_IN VS(VS_IN input)
|
|
||||||
{
|
|
||||||
PS_IN output;
|
|
||||||
|
|
||||||
float4 worldPosition = mul(Transform, float4(input.Position, 1));
|
|
||||||
output.Position = mul(ViewProjection, worldPosition);
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 PS(PS_IN input) : SV_TARGET
|
|
||||||
{
|
|
||||||
return float4(1, 0, 1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS = VS; PS = PS]
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 652951988555027469
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
#include "GlitchyEngine.hlsl"
|
|
||||||
|
|
||||||
struct VS_IN
|
|
||||||
{
|
|
||||||
float3 Position : POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PS_IN
|
|
||||||
{
|
|
||||||
float4 Position : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_IN VS(VS_IN input)
|
|
||||||
{
|
|
||||||
PS_IN output;
|
|
||||||
|
|
||||||
float4 worldPosition = mul(Transform, float4(input.Position, 1));
|
|
||||||
output.Position = mul(ViewProjection, worldPosition);
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 PS(PS_IN input) : SV_TARGET
|
|
||||||
{
|
|
||||||
return float4(0, 1, 1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS = VS; PS = PS]
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 3052446500956620342
|
|
||||||
}
|
|
||||||
@@ -1,178 +0,0 @@
|
|||||||
#include "ShaderHelpers.hlsl"
|
|
||||||
|
|
||||||
Texture2DArray Texture : register(t0);
|
|
||||||
SamplerState Sampler : register(s0);
|
|
||||||
|
|
||||||
Texture2DArray<int4> IntTexture : register(t1);
|
|
||||||
SamplerState IntSampler : register(s1);
|
|
||||||
|
|
||||||
Texture2DArray<uint4> UIntTexture : register(t2);
|
|
||||||
SamplerState UIntSampler : register(s2);
|
|
||||||
|
|
||||||
#define SWIZZLE_ZERO 0
|
|
||||||
#define SWIZZLE_ONE 1
|
|
||||||
#define SWIZZLE_R 2
|
|
||||||
#define SWIZZLE_G 3
|
|
||||||
#define SWIZZLE_B 4
|
|
||||||
#define SWIZZLE_A 5
|
|
||||||
#define SWIZZLE_ONE_MINUS_R 6
|
|
||||||
#define SWIZZLE_ONE_MINUS_G 7
|
|
||||||
#define SWIZZLE_ONE_MINUS_B 8
|
|
||||||
#define SWIZZLE_ONE_MINUS_A 9
|
|
||||||
|
|
||||||
cbuffer Constants
|
|
||||||
{
|
|
||||||
float ColorOffset = 0.5;
|
|
||||||
float AlphaOffset = 0.0;
|
|
||||||
float ColorScale = 0.5;
|
|
||||||
float AlphaScale = 1.0;
|
|
||||||
|
|
||||||
float MipLevel = 0.0;
|
|
||||||
float ArraySlice = 0.0;
|
|
||||||
|
|
||||||
// 0: Float | 1: Int | 2: Uint
|
|
||||||
int Mode = 0;
|
|
||||||
|
|
||||||
int4 Swizzle = int4(SWIZZLE_R, SWIZZLE_G, SWIZZLE_B, SWIZZLE_A);
|
|
||||||
|
|
||||||
float2 Texels;
|
|
||||||
|
|
||||||
float4x4 WorldViewProjection;
|
|
||||||
|
|
||||||
bool ShowTexelBorders = true;
|
|
||||||
float TexelBorderCutoff = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct VS_Input
|
|
||||||
{
|
|
||||||
float2 Position : POSITION;
|
|
||||||
float2 Texcoord : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PS_Input
|
|
||||||
{
|
|
||||||
float4 Position : SV_Position;
|
|
||||||
float2 Texcoord : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_Input VS(VS_Input input)
|
|
||||||
{
|
|
||||||
PS_Input output;
|
|
||||||
|
|
||||||
output.Position = mul(WorldViewProjection, float4(input.Position, 0.0f, 1.0f));
|
|
||||||
output.Texcoord = input.Texcoord;
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SwizzleColor(int swizzleMode, float4 colorToSwizzle, inout float output)
|
|
||||||
{
|
|
||||||
switch (swizzleMode)
|
|
||||||
{
|
|
||||||
case SWIZZLE_ZERO:
|
|
||||||
output = 0.0;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_ONE:
|
|
||||||
output = 1.0;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_R:
|
|
||||||
output = colorToSwizzle.r;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_G:
|
|
||||||
output = colorToSwizzle.g;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_B:
|
|
||||||
output = colorToSwizzle.b;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_A:
|
|
||||||
output = colorToSwizzle.a;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_ONE_MINUS_R:
|
|
||||||
output = 1.0 - colorToSwizzle.r;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_ONE_MINUS_G:
|
|
||||||
output = 1.0 - colorToSwizzle.g;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_ONE_MINUS_B:
|
|
||||||
output = 1.0 - colorToSwizzle.b;
|
|
||||||
break;
|
|
||||||
case SWIZZLE_ONE_MINUS_A:
|
|
||||||
output = 1.0 - colorToSwizzle.a;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether or not the current pixel lies on the border between two texels.
|
|
||||||
* @param texelPosition The position in texel coordinates [0...Texels)
|
|
||||||
* @param color The sampled color at the current position. This will be modified if the pixel is on a texel border.
|
|
||||||
*/
|
|
||||||
void ApplyTexelBorder(float2 texelPosition, inout float4 color)
|
|
||||||
{
|
|
||||||
// Calculate derivatives of texelPosition -> how many texels to we move if we move one pixel in x/y direction
|
|
||||||
float2 grad = fwidth(texelPosition);
|
|
||||||
float texelsPerPixel = min(grad.x, grad.y);
|
|
||||||
float pixelsPerTexel = 1.0 / texelsPerPixel;
|
|
||||||
|
|
||||||
// Calculate the distance between the screen pixel and the texel border in texels.
|
|
||||||
float2 fracPart = frac(texelPosition);
|
|
||||||
float2 distanceToBorder = min(fracPart, 1.0 - fracPart);
|
|
||||||
|
|
||||||
// One, if texel is closer to border than threshold.
|
|
||||||
// Threshold is half the size of a screen pixel in texel-space.
|
|
||||||
float2 borderTest = step(distanceToBorder, texelsPerPixel / 2.0);
|
|
||||||
//float2 borderTest = saturate(1.0 - distanceToBorder / grad);
|
|
||||||
float isOnLine = max(borderTest.x, borderTest.y);
|
|
||||||
|
|
||||||
float fade = saturate((pixelsPerTexel - TexelBorderCutoff / 2.0) / (TexelBorderCutoff / 2.0));
|
|
||||||
|
|
||||||
// TODO: This can flicker while moving/zooming, because we are by design on a texel border!
|
|
||||||
float luminance = ColorToLuminance(color.rgb);
|
|
||||||
// Ensure the border is always at least 0.5 luminance away from the texel.
|
|
||||||
float4 borderColor = float4(((luminance + 0.5) % 1).xxx, 1.0);
|
|
||||||
|
|
||||||
color = lerp(color, borderColor, isOnLine * fade * 0.8);
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 PS(PS_Input input) : SV_Target0
|
|
||||||
{
|
|
||||||
float4 outputColor;
|
|
||||||
|
|
||||||
float2 texelPosition = input.Texcoord * Texels;
|
|
||||||
|
|
||||||
if (Mode == 0)
|
|
||||||
{
|
|
||||||
//float4 color = Texture.SampleLevel(Sampler, float3(input.Texcoord, ArraySlice), MipLevel);
|
|
||||||
// Quasi next neighbor
|
|
||||||
float4 color = Texture.Load(int4(texelPosition, ArraySlice, MipLevel));
|
|
||||||
outputColor = float4(ColorOffset.xxx, AlphaOffset) + color * float4(ColorScale.xxx, AlphaScale);
|
|
||||||
}
|
|
||||||
else if (Mode == 1)
|
|
||||||
{
|
|
||||||
int4 color = IntTexture.Load(int4(texelPosition, ArraySlice, MipLevel));
|
|
||||||
outputColor = float4(ColorOffset.xxx, AlphaOffset) + color * float4(ColorScale.xxx, AlphaScale);
|
|
||||||
}
|
|
||||||
else if (Mode == 2)
|
|
||||||
{
|
|
||||||
uint4 color = UIntTexture.Load(int4(texelPosition, ArraySlice, MipLevel));
|
|
||||||
outputColor = float4(ColorOffset.xxx, AlphaOffset) + color * float4(ColorScale.xxx, AlphaScale);
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 swizzledOutput = float4(0, 0, 0, 1);
|
|
||||||
|
|
||||||
SwizzleColor(Swizzle.r, outputColor, swizzledOutput.r);
|
|
||||||
SwizzleColor(Swizzle.g, outputColor, swizzledOutput.g);
|
|
||||||
SwizzleColor(Swizzle.b, outputColor, swizzledOutput.b);
|
|
||||||
SwizzleColor(Swizzle.a, outputColor, swizzledOutput.a);
|
|
||||||
|
|
||||||
if (ShowTexelBorders)
|
|
||||||
{
|
|
||||||
ApplyTexelBorder(texelPosition, swizzledOutput);
|
|
||||||
}
|
|
||||||
|
|
||||||
return swizzledOutput;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS=VS; PS=PS]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 17953005509950866729
|
|
||||||
}
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
#ifndef __SHADER_HELPERS_HLSL__
|
|
||||||
#define __SHADER_HELPERS_HLSL__
|
|
||||||
|
|
||||||
#define PI 3.14159265358979323846f
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Calculates the weighted sum of two normal vectors.
|
|
||||||
* nrm1: The first normal vector
|
|
||||||
* nrm2: The second normal vector
|
|
||||||
* a: The weight factor for nrm1
|
|
||||||
* b: The weight factor for nrm2
|
|
||||||
*/
|
|
||||||
float3 BlendNormals(float3 nrm1, float3 nrm2, float a, float b)
|
|
||||||
{
|
|
||||||
return normalize(float3(a * nrm1.x / nrm1.z + b * nrm2.x / nrm2.z,
|
|
||||||
a * nrm1.y / nrm1.z + b * nrm2.y / nrm2.z,
|
|
||||||
1.0f));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Scales a normal vector by a factor where 0 results in the vector (0, 0, 1)
|
|
||||||
* nrm: The normal vector
|
|
||||||
* a: The scaling factor
|
|
||||||
*/
|
|
||||||
float3 ScaleNormal(float3 nrm1, float a)
|
|
||||||
{
|
|
||||||
return normalize(float3(a * nrm1.x / nrm1.z,
|
|
||||||
a * nrm1.y / nrm1.z,
|
|
||||||
1.0f));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Scales a normal vector by a factor where 0 results in the vector (0, 0, 1)
|
|
||||||
* nrm: The normal vector
|
|
||||||
* a: The scaling factor
|
|
||||||
*/
|
|
||||||
float3 ScaleNormal(float3 nrm1, float2 a)
|
|
||||||
{
|
|
||||||
return normalize(float3(a.x * nrm1.x / nrm1.z,
|
|
||||||
a.y * nrm1.y / nrm1.z,
|
|
||||||
1.0f));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Reconstructs the z-component of a normalized normal vector from a two-component value
|
|
||||||
* cnrm: The x- and y-components of a normalized normal vector
|
|
||||||
*/
|
|
||||||
float3 DecompressNormal(float2 cnrm)
|
|
||||||
{
|
|
||||||
return float3(cnrm, sqrt(1.0 - cnrm.x * cnrm.x - cnrm.y * cnrm.y));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Reconstructs the tangent space from a normal and a tangent
|
|
||||||
* normal: The surface normal
|
|
||||||
* tangent: The surface tangent
|
|
||||||
* sigma: Defines the handedness of the tangent space matrix. 1.0 if it is right handend. -1.0 if it is left handed
|
|
||||||
*/
|
|
||||||
float3x3 ConstructTangentSpace(float3 normal, float3 tangent, float3 sigma)
|
|
||||||
{
|
|
||||||
float3 n = normalize(normal);
|
|
||||||
float3 t = normalize(tangent - n * dot(tangent, n));
|
|
||||||
float3 b = cross(n, t) * sigma;
|
|
||||||
|
|
||||||
return float3x3(t, b, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculates the luminance of an rgb-value.
|
|
||||||
* @param rgb The rgb color.
|
|
||||||
* @return The luminance of the given rgb color.
|
|
||||||
*/
|
|
||||||
float ColorToLuminance(float3 rgb)
|
|
||||||
{
|
|
||||||
return dot(rgb, float3(0.212639,0.715169,0.072192));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extrancts the handedness of the bitangent that is encoded in the z-component of the tangent.
|
|
||||||
* @param tangentz The z-component of the tangent with the handedness encoded.
|
|
||||||
* @return The handedness of the bitangent (bitangent = handedness * tangent x normal)
|
|
||||||
*/
|
|
||||||
float GetBitangentHandedness(float tangentz)
|
|
||||||
{
|
|
||||||
// handedness is in least significant bit of tangent.z
|
|
||||||
uint z = asuint(tangentz);
|
|
||||||
return (z & 1) > 0 ? 1.0 : -1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Transforms the given texture coordinates using the provided UV transform.
|
|
||||||
* @param texcoords The texture coordinates to transform.
|
|
||||||
* @param uvTransform the UV transform. X, Y: UV offset | Z, W: UV scaling.
|
|
||||||
* @return The transformed uv coordinates.
|
|
||||||
*/
|
|
||||||
float2 TransformTexcoords(float2 texcoords, float4 uvTransform)
|
|
||||||
{
|
|
||||||
return uvTransform.xy + uvTransform.zw * texcoords;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // __SHADER_HELPERS_HLSL__
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = null,
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = null,
|
|
||||||
AssetHandle = 15853638422335091598
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
#include "ACES.hlsl"
|
|
||||||
|
|
||||||
Texture2D CameraTarget : register(t0);
|
|
||||||
SamplerState CameraTargetSampler : register(s0);
|
|
||||||
|
|
||||||
struct VS_IN
|
|
||||||
{
|
|
||||||
float2 Position : POSITION;
|
|
||||||
float2 TexCoord : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PS_IN
|
|
||||||
{
|
|
||||||
float4 Position : SV_POSITION;
|
|
||||||
float2 TexCoord : TEXCOORD;
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_IN VS(VS_IN input)
|
|
||||||
{
|
|
||||||
PS_IN output;
|
|
||||||
|
|
||||||
output.Position = float4(input.Position, 0, 1);
|
|
||||||
output.TexCoord = input.TexCoord;
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 PS(PS_IN input) : SV_TARGET
|
|
||||||
{
|
|
||||||
float4 rawColor = CameraTarget.Sample(CameraTargetSampler, input.TexCoord);
|
|
||||||
|
|
||||||
// float3 color = rawColor.rgb / (rawColor.rgb + 1.0f);
|
|
||||||
|
|
||||||
float3 color = ACESFitted(rawColor.rgb);
|
|
||||||
|
|
||||||
return float4(color, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS = VS; PS = PS]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 16539769359681819317
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 15706760057808399494
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 10636491756936205086
|
|
||||||
}
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
#define EDITOR
|
|
||||||
|
|
||||||
cbuffer Constants : register(b0)
|
|
||||||
{
|
|
||||||
float4x4 ViewProjection;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct VS_Input
|
|
||||||
{
|
|
||||||
float4 Position : POSITION;
|
|
||||||
float4 Color : COLOR;
|
|
||||||
#ifdef EDITOR
|
|
||||||
uint EntityId : ENTITYID;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct PS_Input
|
|
||||||
{
|
|
||||||
float4 Position : SV_Position;
|
|
||||||
float4 Color : COLOR;
|
|
||||||
#ifdef EDITOR
|
|
||||||
nointerpolation uint EntityId : ENTITYID;
|
|
||||||
#endif
|
|
||||||
} VS_Output;
|
|
||||||
|
|
||||||
VS_Output VS(VS_Input input)
|
|
||||||
{
|
|
||||||
VS_Output output;
|
|
||||||
|
|
||||||
output.Position = mul(ViewProjection, input.Position);
|
|
||||||
output.Color = input.Color;
|
|
||||||
|
|
||||||
#ifdef EDITOR
|
|
||||||
output.EntityId = input.EntityId;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct PS_Output
|
|
||||||
{
|
|
||||||
float4 Color : SV_TARGET0;
|
|
||||||
#ifdef EDITOR
|
|
||||||
uint EntityId : SV_TARGET1;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_Output PS(PS_Input input)
|
|
||||||
{
|
|
||||||
PS_Output output;
|
|
||||||
|
|
||||||
output.Color = input.Color;
|
|
||||||
|
|
||||||
#ifdef EDITOR
|
|
||||||
output.EntityId = input.EntityId;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS=VS; PS=PS]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 5888610203248969416
|
|
||||||
}
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
#define EDITOR
|
|
||||||
|
|
||||||
#include "GlitchyEngine2D.hlsl"
|
|
||||||
#include "ShaderHelpers.hlsl"
|
|
||||||
|
|
||||||
Texture2D<float3> Texture : register(t0);
|
|
||||||
SamplerState Sampler : register(s0);
|
|
||||||
|
|
||||||
cbuffer Material
|
|
||||||
{
|
|
||||||
float2 UnitRange;
|
|
||||||
}
|
|
||||||
|
|
||||||
VS_Output VS(VS_Input input)
|
|
||||||
{
|
|
||||||
VS_Output output;
|
|
||||||
|
|
||||||
output.Position = mul(ViewProjection, mul(input.Transform, float4(input.Position, 0.0f, 1.0f)));
|
|
||||||
output.Texcoord = TransformTexcoords(input.Texcoord, input.UVTransform);
|
|
||||||
output.Color = input.Color;
|
|
||||||
|
|
||||||
#ifdef EDITOR
|
|
||||||
output.EntityId = input.EntityId;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
float median(float r, float g, float b)
|
|
||||||
{
|
|
||||||
return max(min(r, g), min(max(r, g), b));
|
|
||||||
}
|
|
||||||
|
|
||||||
float ScreenPxRange(float2 texcoord)
|
|
||||||
{
|
|
||||||
float2 screenTexSize = 1.0f / fwidth(texcoord);
|
|
||||||
return max(0.5f * dot(UnitRange, screenTexSize), 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct PS_Output
|
|
||||||
{
|
|
||||||
float4 Color : SV_Target0;
|
|
||||||
#ifdef EDITOR
|
|
||||||
uint EntityId : SV_TARGET1;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
PS_Output PS(PS_Input input)
|
|
||||||
{
|
|
||||||
PS_Output output;
|
|
||||||
|
|
||||||
float3 msd = Texture.Sample(Sampler, input.Texcoord);
|
|
||||||
float sd = median(msd.r, msd.g, msd.b);
|
|
||||||
float screenPxDistance = ScreenPxRange(input.Texcoord) * (sd - 0.5);
|
|
||||||
float opacity = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
|
||||||
|
|
||||||
clip(opacity - 0.001f);
|
|
||||||
|
|
||||||
output.Color = float4(input.Color.rgb, input.Color.a * opacity);
|
|
||||||
|
|
||||||
#ifdef EDITOR
|
|
||||||
output.EntityId = input.EntityId;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS=VS; PS=PS]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 9062891433306436746
|
|
||||||
}
|
|
||||||
@@ -1,152 +0,0 @@
|
|||||||
#define OutputEntityId
|
|
||||||
|
|
||||||
#include "ShaderHelpers.hlsl"
|
|
||||||
|
|
||||||
#include "GlitchyEngine.hlsl"
|
|
||||||
|
|
||||||
Texture2D AlbedoTexture : register(t0);
|
|
||||||
SamplerState AlbedoSampler : register(s0);
|
|
||||||
|
|
||||||
Texture2D<float3> NormalTexture : register(t1);
|
|
||||||
SamplerState NormalSampler : register(s1);
|
|
||||||
|
|
||||||
Texture2D<float> MetallicTexture : register(t2);
|
|
||||||
SamplerState MetallicSampler : register(s2);
|
|
||||||
|
|
||||||
Texture2D<float> RoughnessTexture : register(t3);
|
|
||||||
SamplerState RoughnessSampler : register(s3);
|
|
||||||
|
|
||||||
Texture2D<float3> EmissiveTexture : register(t4);
|
|
||||||
SamplerState EmissiveSampler : register(s4);
|
|
||||||
|
|
||||||
// Texture2D<float> AmbientTexture : register(t5);
|
|
||||||
// SamplerState AmbientSampler : register(s5);
|
|
||||||
|
|
||||||
cbuffer MaterialConstants : register(b2)
|
|
||||||
{
|
|
||||||
#pragma EditorVariable[ Name = "AlbedoColor"; Preview = "Albedo Color"; Type="Color" ]
|
|
||||||
float4 AlbedoColor = float4(1.0, 1.0, 1.0, 1.0);
|
|
||||||
#pragma EditorVariable[ Name = "NormalScaling"; Preview = "Normal Scaling" ]
|
|
||||||
float2 NormalScaling = float2(1.0, 1.0);
|
|
||||||
#pragma EditorVariable[ Name = "MetallicFactor"; Preview = "Metallic Factor"; Min = 0.0f; Max = 1.0f ]
|
|
||||||
float MetallicFactor = 0.0;
|
|
||||||
#pragma EditorVariable[ Name = "RoughnessFactor"; Preview = "Rougness Factor"; Min = 0.0f; Max = 1.0f ]
|
|
||||||
float RoughnessFactor = 0.6;
|
|
||||||
#pragma EditorVariable[ Name = "EmissiveColor"; Preview = "Emissive Factor"; Type="ColorHDR" ]
|
|
||||||
float3 EmissiveColor = float3(0.0, 0.0, 0.0);
|
|
||||||
// # pra gma Editor Variable[ Name = "AmbientFactor"; Preview = "Ambient Factor" ]
|
|
||||||
// float AmbientFactor = 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct VS_IN
|
|
||||||
{
|
|
||||||
float3 Position : POSITION;
|
|
||||||
float3 Normal : NORMAL;
|
|
||||||
// Todo: Tangent.w... handedness
|
|
||||||
float3 Tangent : TANGENT;
|
|
||||||
float2 TexCoord : TEXCOORD;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct PS_IN
|
|
||||||
{
|
|
||||||
float4 Position : SV_POSITION;
|
|
||||||
float3 WorldPosition : WORLDPOSITION;
|
|
||||||
float3 Normal : NORMAL;
|
|
||||||
float3 Tangent : TANGENT;
|
|
||||||
float2 TexCoord : TEXCOORD;
|
|
||||||
//nointerpolation float Handedness : HANDEDNESS;
|
|
||||||
#ifdef OutputEntityId
|
|
||||||
nointerpolation uint EntityId : ENTITYID;
|
|
||||||
#endif
|
|
||||||
} VS_OUT;
|
|
||||||
|
|
||||||
VS_OUT VS(VS_IN input)
|
|
||||||
{
|
|
||||||
VS_OUT output;
|
|
||||||
|
|
||||||
float4 worldPosition = mul(Transform, float4(input.Position, 1));
|
|
||||||
|
|
||||||
output.Position = mul(ViewProjection, worldPosition);
|
|
||||||
output.WorldPosition = worldPosition.xyz / worldPosition.w;
|
|
||||||
|
|
||||||
output.Normal = mul(Transform_InvT, input.Normal);
|
|
||||||
output.Tangent = mul((float3x3)Transform, input.Tangent);
|
|
||||||
// TODO: output.Handedness = input.Tangent.w
|
|
||||||
|
|
||||||
output.TexCoord = input.TexCoord;
|
|
||||||
|
|
||||||
output.EntityId = EntityId;
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
//struct PS_OUT
|
|
||||||
//{
|
|
||||||
// float4 Albedo : SV_TARGET0;
|
|
||||||
// // RG: TextureNormal.XY BA: GeoNrm.XY
|
|
||||||
// float4 Normal : SV_TARGET1;
|
|
||||||
// // R: GeoNrm.Z GBA: GeoTan.XYZ
|
|
||||||
// float4 Tangent : SV_TARGET2;
|
|
||||||
// float4 Position : SV_TARGET3;
|
|
||||||
// // R: Metallicity G: Roughness B: Ambient
|
|
||||||
// float4 Material : SV_TARGET4;
|
|
||||||
//#ifdef OutputEntityId
|
|
||||||
// uint EntityId : SV_TARGET5;
|
|
||||||
//#endif
|
|
||||||
//};
|
|
||||||
|
|
||||||
PS_OUT_Lit PS(PS_IN input)
|
|
||||||
{
|
|
||||||
// Build tangent space
|
|
||||||
float3 normal = normalize(input.Normal);
|
|
||||||
float3 tangent = normalize(input.Tangent - dot(input.Tangent, normal) * input.Normal);
|
|
||||||
// TODO: float3 bitangent = input.Handedness * cross(normal, tangent);
|
|
||||||
float3 bitangent = -cross(normal, tangent);
|
|
||||||
|
|
||||||
//float3x3 tangentTransform = float3x3(tangent, bitangent, normal);
|
|
||||||
//tangentTransform = transpose(tangentTransform);
|
|
||||||
|
|
||||||
float4 texAlbedo = AlbedoTexture.Sample(AlbedoSampler, input.TexCoord);
|
|
||||||
float3 texNormal = NormalTexture.Sample(NormalSampler, input.TexCoord);
|
|
||||||
texNormal.xy = texNormal.xy * 2.0 - 1.0;
|
|
||||||
float texMetallic = MetallicTexture.Sample(MetallicSampler, input.TexCoord);
|
|
||||||
float texRoughness = RoughnessTexture.Sample(RoughnessSampler, input.TexCoord);
|
|
||||||
|
|
||||||
|
|
||||||
float3 texEmissive = EmissiveTexture.Sample(EmissiveSampler, input.TexCoord);
|
|
||||||
|
|
||||||
//float3 objectNormal = mul(tangentTransform, texNormal);
|
|
||||||
//float3 worldNormal = mul(objectNormal, (float3x3)Transform);
|
|
||||||
|
|
||||||
float4 finalAlbedo = texAlbedo * AlbedoColor;
|
|
||||||
float3 finalNormal = ScaleNormal(texNormal, NormalScaling);
|
|
||||||
float finalMetallic = texMetallic * MetallicFactor;
|
|
||||||
float finalRoughness = texRoughness * RoughnessFactor;
|
|
||||||
float3 finalEmissive = texEmissive * EmissiveColor;
|
|
||||||
|
|
||||||
/////////////TODO: REMOVEME
|
|
||||||
|
|
||||||
//worldNormal = max(worldNormal - 10000000, normal);
|
|
||||||
//texAlbedo = max(texAlbedo - 10000000, 1.0);
|
|
||||||
//texMetallic = max(texMetallic - 10000000, 0.0);
|
|
||||||
//texRoughness = max(texRoughness - 10000000, 0.1);
|
|
||||||
|
|
||||||
/////////////TODO: END_REMOVEME
|
|
||||||
|
|
||||||
PS_OUT_Lit output;
|
|
||||||
output.Albedo = finalAlbedo;
|
|
||||||
//output.Normal = float4(objectNormal, 1.0);
|
|
||||||
output.Normal = float4(finalNormal.xy, normal.xy);
|
|
||||||
output.Tangent = float4(normal.z, tangent.xyz);
|
|
||||||
output.Position = float4(input.WorldPosition, 1.0);
|
|
||||||
output.Emissive = float4(finalEmissive, 0.0);
|
|
||||||
output.Material = float4(finalMetallic, finalRoughness, 1.0, 0);
|
|
||||||
|
|
||||||
#ifdef OutputEntityId
|
|
||||||
output.EntityId = input.EntityId;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma Effect[VS = VS; PS = PS]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
AssetLoader = null,
|
|
||||||
Config = null,
|
|
||||||
Importer = "ShaderImporter",
|
|
||||||
ImporterConfig = null,
|
|
||||||
Processor = null,
|
|
||||||
ProcessorConfig = null,
|
|
||||||
Exporter = null,
|
|
||||||
ExporterConfig = {
|
|
||||||
_compression = .None
|
|
||||||
},
|
|
||||||
AssetHandle = 2172704887168568810
|
|
||||||
}
|
|
||||||