76 lines
2.4 KiB
C#
76 lines
2.4 KiB
C#
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
|
|
}
|
|
}
|
|
}
|