Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e84ddf9
blender model/export
Hashuuro Nov 8, 2019
f04cfbc
new Example ABCompare added
Hashuuro Nov 23, 2019
c726156
removed Method
Hashuuro Nov 26, 2019
c38efb4
Merge branch 'develop' into _Lukas
Hashuuro Nov 26, 2019
1bdf5b2
added simple Multipass Example
Hashuuro Nov 26, 2019
7902f12
Merge branch 'develop' into _Lukas
Hashuuro Dec 2, 2019
037c4b5
Merge branch 'develop' into _Lukas
Hashuuro Dec 8, 2019
12f6e69
Merge branch 'develop' into _Lukas
Hashuuro Dec 10, 2019
078ff58
Merge branch 'develop' into _Lukas
Hashuuro Dec 12, 2019
a253dc3
DnTemplate now also works in Visual Studio
Hashuuro Dec 16, 2019
6a662fe
Merge branch 'develop' into _Lukas
Hashuuro Dec 16, 2019
60285c5
changed Comments for testing
Hashuuro Dec 16, 2019
4264358
Merge remote-tracking branch 'upstream/develop' into develop
Hashuuro Dec 16, 2019
a7542b5
Merge branch 'develop' into _Lukas
Hashuuro Dec 16, 2019
72b2c99
Revert "DnTemplate now also works in Visual Studio"
Hashuuro Dec 16, 2019
293a35f
Merge branch 'develop' into _Lukas
Hashuuro Dec 16, 2019
3c9d351
Revert "Revert "DnTemplate now also works in Visual Studio""
Hashuuro Dec 16, 2019
9c09d06
Revert "Revert "DnTemplate now also works in Visual Studio""
Hashuuro Dec 16, 2019
3e65d55
Merge branch 'develop' into _Lukas
Hashuuro Dec 16, 2019
14376f4
added new Shader for Fusee Player
Hashuuro Dec 17, 2019
ef482ed
Update Fusee.sln
Hashuuro Dec 17, 2019
378aa60
Update simpleBlur_1.frag
Hashuuro Dec 17, 2019
cc14763
shader changed for simple blur
Hashuuro Dec 17, 2019
d991cb7
Update and cleanup ABCompare
ASPePeX Dec 17, 2019
2eb19e9
Merge pull request #1 from ASPePeX/_Lukas
Hashuuro Dec 17, 2019
fad8ef0
got stuff done
Hashuuro Feb 18, 2020
87f1477
GUI optimized
Hashuuro Feb 23, 2020
42a0893
changed UI and Code commented
Hashuuro Feb 28, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
755 changes: 755 additions & 0 deletions Examples/Complete/ABCompare/Core/ABCompare.cs

Large diffs are not rendered by default.

Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
132 changes: 132 additions & 0 deletions Examples/Complete/ABCompare/Core/Assets/multitex.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
#version 300 es
precision highp float;

in vec2 vUV;

uniform sampler2D InputTex1;
uniform sampler2D InputTex2;


uniform vec2 Point1;
uniform vec2 Point2;

uniform vec2 Middlepoint;
uniform float Radius;


layout (location = 0) out vec4 oBlurred;

vec3 result;
vec3 tex1;
vec3 tex2;


void linearEquation()
{

//=>Berechnung der Trennlinie

float Se = (vUV.y - Point1.y)*(Point2.x - Point1.x) - (Point2.y - Point1.y)*(vUV.x - Point1.x);

//=> Werte auf 0 oder 1 setzen

Se = step(0.0,Se);

//=> für eine Interpolation zwischen den Texturen

//Se = smoothstep(-0.01,0.01,Se);

result = mix(tex2, tex1, Se);

}

void circle()
{
//=> Berechnung ob Wert innerhalb oder außerhalb des Kreises ist

float difference = distance(Middlepoint, vUV) - Radius;

difference = step(0.0,difference);

result = mix(tex2,tex1,difference);


}



//=> Versuche und Fehlschläge!

void inother()
{
//=> rendert die eine in die andere Textur!

//result = texture(InputTex2, vUV).rgb + texture(InputTex1, vUV).rgb;
}

void overlapping()
{
//=> rendert beide Texturen über einander!

//result = texture(InputTex2, vUV).rgb * texture(InputTex1, vUV).rgb;
}

void onecolorpoint()
{
//=>Farbwert einzelner Punkt in Textur

//vec2 texcoord = vec2(0.5, 0.5); // get a value from the middle of the texture
//result = texture(InputTex2, texcoord).rgb * texture(InputTex1, texcoord).rgb;
}

void simple()
{
//=> eine Textur wird gerendert!

//result = texture(InputTex2, vUV).rgb;

}

void simplecomparex()
{
//=> ab Hälfte der X-Achse wird andere Textur gerendert!

//result = texture(InputTex2,vUV).rgb;
//if(vUV.x >0.5){

//result = texture(InputTex1, vUV).rgb;

//}

}


void simplecomparey()
{
//=> ab Hälfte der Y-Achse wird andere Textur gerendert!

//if(vUV.y< 0.5){

//result = texture(InputTex2, vUV ).rgb;

//}

}


void main()
{
result = vec3(0.0, 0.0, 0.0);

tex1 = texture(InputTex1, vUV).rgb;
tex2 = texture(InputTex2, vUV).rgb;

linearEquation();
//circle();
oBlurred = vec4(result, 1.0);
}





20 changes: 20 additions & 0 deletions Examples/Complete/ABCompare/Core/Assets/screenFilledQuad.vert
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#version 300 es

in vec2 fuUV;
in vec3 fuVertex;
out vec2 vUV;



//Failures!
//vUV = fuVertex.xy + 0.5;
//vUV = vec2(fuVertex.x + fuVertex.y + 0.5, fuVertex.y + 0.4 );
//vUV = vec2(fuVertex.x , fuVertex.y+ 0.5);

void main()
{

vUV = fuUV;

gl_Position = vec4(fuVertex * 2.0,1.0); //=> Vertex Position in clip space
}
30 changes: 30 additions & 0 deletions Examples/Complete/ABCompare/Core/Assets/simpleBlur.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#version 300 es
precision highp float;
#define KERNEL_SIZE_HALF 8

in vec2 vUV;
uniform sampler2D InputTex1;

layout (location = 0) out vec4 oBlurred;

void main()
{
vec2 texelSize = 1.0 / vec2(textureSize(InputTex, 0));
vec3 result = vec3(0.0, 0.0, 0.0);

for (int x = -KERNEL_SIZE_HALF; x < KERNEL_SIZE_HALF; ++x)
{
for (int y = -KERNEL_SIZE_HALF; y < KERNEL_SIZE_HALF; ++y)
{
vec2 offset = vec2(float(x), float(y)) * texelSize;
result += texture(InputTex1, vUV + offset).rgb;

}
}

float kernelSize = float(KERNEL_SIZE_HALF) * 4.0;
result = result / (kernelSize * kernelSize);


oBlurred = vec4(result, 1.0);
}
18 changes: 18 additions & 0 deletions Examples/Complete/ABCompare/Core/Assets/simpleDis.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#version 300 es
precision highp float;

in vec2 vUV;
uniform sampler2D InputTex1;

layout (location = 0) out vec4 oBlurred;

void main()
{
vec3 result = vec3(0.0, 0.0, 0.0);

//=> Erstellung einer simplen Verzerrung

result = texture(InputTex1, vUV + 0.005*vec2( sin(1024.0*vUV.r),cos(768.0*vUV.g))).rgb;

oBlurred = vec4(result, 1.0);
}
Binary file added Examples/Complete/ABCompare/Core/Assets/test.fus
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Fusee.Examples.ABCompare.Core</RootNamespace>
<PackageId>Fusee.Examples.ABCompare.Core</PackageId>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

<PropertyGroup>
<OutputPath>$(BaseOutputPath)\Examples\ABCompare\Core\</OutputPath>
</PropertyGroup>

<ItemGroup>
<Content Include="Assets\**\*" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="$(FuseeEngineRoot)\src\Base\Common\Fusee.Base.Common.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Base\Core\Fusee.Base.Core.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Engine\Common\Fusee.Engine.Common.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Engine\Core\Fusee.Engine.Core.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Engine\GUI\Fusee.Engine.GUI.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Jometri\Fusee.Jometri.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Math\Core\Fusee.Math.Core.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Serialization\Fusee.Serialization.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Xene\Fusee.Xene.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Xirkit\Fusee.Xirkit.csproj" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Fusee.Examples.ABCompare.Desktop</RootNamespace>
<PackageId>Fusee.Examples.ABCompare.Desktop</PackageId>
<TargetFramework>netcoreapp3.0</TargetFramework>
<OutputType>Exe</OutputType>
<DefineConstants>PLATFORM_DESKTOP</DefineConstants>
<ApplicationIcon>FuseeLogo.ico</ApplicationIcon>
</PropertyGroup>

<PropertyGroup>
<OutputPath>$(BaseOutputPath)\Examples\ABCompare\Desktop\</OutputPath>
<StartupObject>Fusee.Examples.ABCompare.Desktop.ABCompare</StartupObject>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="$(FuseeEngineRoot)\src\Base\Imp\Desktop\Fusee.Base.Imp.Desktop.csproj" />
<ProjectReference Include="$(FuseeEngineRoot)\src\Engine\Imp\Graphics\Desktop\Fusee.Engine.Imp.Graphics.Desktop.csproj" />
<ProjectReference Include="..\Core\Fusee.Examples.ABCompare.Core.csproj" />
</ItemGroup>
</Project>
Binary file not shown.
69 changes: 69 additions & 0 deletions Examples/Complete/ABCompare/Desktop/Main.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
using System.IO;
using System.Runtime.InteropServices;
using Fusee.Base.Common;
using Fusee.Base.Core;
using Fusee.Base.Imp.Desktop;
using Fusee.Engine.Core;
using Fusee.Serialization;
using FileMode = Fusee.Base.Common.FileMode;
using Path = Fusee.Base.Common.Path;
using System.Reflection;
using System;

namespace Fusee.Examples.ABCompare.Desktop
{
public class ABCompare
{
public static void Main()
{
// Inject Fusee.Engine.Base InjectMe dependencies
IO.IOImp = new Fusee.Base.Imp.Desktop.IOImp();

var fap = new Fusee.Base.Imp.Desktop.FileAssetProvider("Assets");
fap.RegisterTypeHandler(
new AssetHandler
{
ReturnedType = typeof(Font),
Decoder = delegate (string id, object storage)
{
if (!Path.GetExtension(id).ToLower().Contains("ttf")) return null;
return new Font{ _fontImp = new FontImp((Stream)storage) };
},
Checker = id => Path.GetExtension(id).ToLower().Contains("ttf")
});
fap.RegisterTypeHandler(
new AssetHandler
{
ReturnedType = typeof(SceneContainer),
Decoder = delegate (string id, object storage)
{
if (!Path.GetExtension(id).ToLower().Contains("fus")) return null;
return Serializer.DeserializeSceneContainer((Stream)storage);
},
Checker = id => Path.GetExtension(id).ToLower().Contains("fus")
});

AssetStorage.RegisterProvider(fap);

//==> Only relevant when using RenderDoc!
//Console.ReadKey();

var app = new Core.ABCompare();

// Inject Fusee.Engine InjectMe dependencies (hard coded)
System.Drawing.Icon appIcon = System.Drawing.Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);
app.CanvasImplementor = new Fusee.Engine.Imp.Graphics.Desktop.RenderCanvasImp(appIcon);
app.ContextImplementor = new Fusee.Engine.Imp.Graphics.Desktop.RenderContextImp(app.CanvasImplementor);
Input.AddDriverImp(new Fusee.Engine.Imp.Graphics.Desktop.RenderCanvasInputDriverImp(app.CanvasImplementor));
Input.AddDriverImp(new Fusee.Engine.Imp.Graphics.Desktop.WindowsTouchInputDriverImp(app.CanvasImplementor));
// app.InputImplementor = new Fusee.Engine.Imp.Graphics.Desktop.InputImp(app.CanvasImplementor);
// app.AudioImplementor = new Fusee.Engine.Imp.Sound.Desktop.AudioImp();
// app.NetworkImplementor = new Fusee.Engine.Imp.Network.Desktop.NetworkImp();
// app.InputDriverImplementor = new Fusee.Engine.Imp.Input.Desktop.InputDriverImp();
// app.VideoManagerImplementor = ImpFactory.CreateIVideoManagerImp();

// Start the app
app.Run();
}
}
}
Loading