FidelityFX-FSR plugin, initia camera render stuff

This commit is contained in:
2022-03-24 22:27:07 +02:00
parent 31b380f718
commit 45b0a62609
5 changed files with 101 additions and 3 deletions

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "Plugins/FidelityFX-FSR"]
path = Plugins/FidelityFX-FSR
url = https://github.com/FlaxEngine/FidelityFX-FSR

View File

@@ -1,13 +1,16 @@
{
"Name": "GoakeFlax",
"Version": "1.0",
"Company": "My Company",
"Company": "Ari Vuollet",
"Copyright": "",
"GameTarget": "GameTarget",
"EditorTarget": "GameEditorTarget",
"References": [
{
"Name": "$(EnginePath)/Flax.flaxproj"
},
{
"Name": "$(ProjectPath)/Plugins/FidelityFX-FSR/FidelityFX-FSR.flaxproj"
}
],
"DefaultScene": "194e05f445ece24ec5448d886e1334df",
@@ -23,6 +26,5 @@
"Z": 0.338997364
}
},
"MinEngineVersion": "0.0.6194",
"EngineNickname": null
"MinEngineVersion": "0.0.6194"
}

View File

@@ -104,5 +104,22 @@ namespace Cabrito
}
}
}
[ConsoleVariable("r_renderscale")]
public static string RenderScale
{
get
{
return MainRenderTask.Instance.RenderingPercentage.ToString();
}
set
{
if (float.TryParse(value, out float valueFloat))
{
valueFloat = Mathf.Clamp(valueFloat, 0.00001f, 4.0f);
MainRenderTask.Instance.RenderingPercentage = valueFloat;
}
}
}
}
}

View File

@@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using FlaxEngine;
namespace Game
{
/// <summary>
/// CameraRender Script.
/// </summary>
public class CameraRender : Script
{
public Camera camera;
private PostProcessEffect fidelityFx;
public override void OnStart()
{
// Here you can add code that needs to be called when script is created, just before the first game update
MainRenderTask.Instance.Render += InstanceOnRender;
MainRenderTask.Instance.PostRender += OnPostRender;
foreach (PostProcessEffect fx in SceneRenderTask.GlobalCustomPostFx)
{
if (fx.TypeName == "FidelityFX.FSRPostFx")
fidelityFx = fx;
Debug.Log("fx: " + fx.TypeName);
}
MainRenderTask.Instance.RenderingPercentage = 1f;
}
private void InstanceOnRender(RenderTask renderTask, GPUContext gpuContext)
{
//gpuContext.Clear();
var outputView = MainRenderTask.Instance.OutputView;
var viewport = camera.Viewport;
MainRenderTask.Instance.View.CopyFrom(camera, ref viewport);
//MainRenderTask.Instance.View.CopyFrom(Camera.MainCamera);
}
private void OnPostRender(GPUContext gpuContext, ref RenderContext renderContext)
{
//var viewport = MainRenderTask.Instance.Viewport;
//var viewport2 = camera.Viewport;
MainRenderTask.Instance.View.CopyFrom(Camera.MainCamera);
}
/// <inheritdoc/>
public override void OnEnable()
{
// Here you can add code that needs to be called when script is enabled (eg. register for events)
}
/// <inheritdoc/>
public override void OnDisable()
{
MainRenderTask.Instance.Render -= InstanceOnRender;
MainRenderTask.Instance.PostRender -= OnPostRender;
// Here you can add code that needs to be called when script is disabled (eg. unregister from events)
}
/// <inheritdoc/>
public override void OnUpdate()
{
if (Input.GetKeyDown(KeyboardKeys.F8))
{
fidelityFx.Enabled = !fidelityFx.Enabled;
Cabrito.Console.Print("FXR: " + fidelityFx.Enabled.ToString());
}
// Here you can add code that needs to be called every frame
}
}
}