82 lines
1.6 KiB
C#
82 lines
1.6 KiB
C#
|
|
using Godot;
|
|
using Godot.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Rokojori
|
|
{
|
|
[Tool]
|
|
[GlobalClass]
|
|
public partial class ChromaticAberation:RDGraphCompositorEffect
|
|
{
|
|
public ChromaticAberation():base()
|
|
{
|
|
Initialize();
|
|
}
|
|
|
|
|
|
[Export]
|
|
public float intensity = 0.5f;
|
|
|
|
[Export]
|
|
public float shiftAll = 0.5f;
|
|
|
|
[Export]
|
|
public float unshiftCenter = 16f;
|
|
|
|
[Export]
|
|
public Vector2 rShift = new Vector2( -0.001f, 0.0f );
|
|
|
|
[Export]
|
|
public Vector2 gShift = new Vector2( 0.0f, 0.0f );
|
|
|
|
[Export]
|
|
public Vector2 bShift = new Vector2( 0.001f, 0.0f );
|
|
|
|
|
|
|
|
CEG_ScreenColorTexure screenColorTexture;
|
|
CEG_BufferTexture bufferTexture;
|
|
|
|
CEG_Copy copy;
|
|
CEG_ChromaticAberation chromaticAberation;
|
|
|
|
void Initialize()
|
|
{
|
|
screenColorTexture = new CEG_ScreenColorTexure( graph );
|
|
bufferTexture = CEG_BufferTexture.ScreenSize( graph );
|
|
|
|
copy = new CEG_Copy( graph );
|
|
chromaticAberation = new CEG_ChromaticAberation( graph );
|
|
|
|
|
|
graph.InitializeNodes();
|
|
|
|
|
|
|
|
copy.SetTextureSlotInputs( screenColorTexture, bufferTexture );
|
|
chromaticAberation.SetTextureSlotInputs( copy.output, copy.input );
|
|
|
|
|
|
graph.SetProcessOrder(
|
|
screenColorTexture, bufferTexture,
|
|
copy, chromaticAberation
|
|
);
|
|
}
|
|
|
|
|
|
protected override void ForAllViews()
|
|
{
|
|
chromaticAberation.constants.Set(
|
|
intensity,
|
|
shiftAll,
|
|
unshiftCenter,
|
|
rShift,
|
|
gShift,
|
|
bShift
|
|
);
|
|
}
|
|
|
|
|
|
}
|
|
} |