|
@@ -4,8 +4,9 @@ class TemporalFilteringShader extends h3d.shader.ScreenShader {
|
|
|
|
|
|
static var SRC = {
|
|
static var SRC = {
|
|
|
|
|
|
|
|
+ @:import h3d.shader.ColorSpaces;
|
|
|
|
+
|
|
@const var VARIANCE_CLIPPING : Bool;
|
|
@const var VARIANCE_CLIPPING : Bool;
|
|
- @const var YCOCG : Bool;
|
|
|
|
@const var CATMULL_ROM : Bool;
|
|
@const var CATMULL_ROM : Bool;
|
|
@const var VELOCITY : Bool;
|
|
@const var VELOCITY : Bool;
|
|
|
|
|
|
@@ -25,30 +26,6 @@ class TemporalFilteringShader extends h3d.shader.ScreenShader {
|
|
|
|
|
|
var isSky : Bool;
|
|
var isSky : Bool;
|
|
|
|
|
|
- function rgb2ycocg( rgb : Vec3 ) : Vec3 {
|
|
|
|
- if( YCOCG ) {
|
|
|
|
- var co = rgb.r - rgb.b;
|
|
|
|
- var t = rgb.b + co / 2.0;
|
|
|
|
- var cg = rgb.g - t;
|
|
|
|
- var y = t + cg / 2.0;
|
|
|
|
- return vec3(y, co, cg);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- return rgb;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- function ycocg2rgb( ycocg : Vec3 ) : Vec3 {
|
|
|
|
- if( YCOCG ) {
|
|
|
|
- var t = ycocg.r - ycocg.b / 2.0;
|
|
|
|
- var g = ycocg.b + t;
|
|
|
|
- var b = t - ycocg.g / 2.0;
|
|
|
|
- var r = ycocg.g + b;
|
|
|
|
- return vec3(r, g, b);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- return ycocg;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
function clipAABB( aabb_min : Vec3, aabb_max : Vec3, p : Vec4, q : Vec4) : Vec4 {
|
|
function clipAABB( aabb_min : Vec3, aabb_max : Vec3, p : Vec4, q : Vec4) : Vec4 {
|
|
// note: only clips towards aabb center (but fast!)
|
|
// note: only clips towards aabb center (but fast!)
|
|
var p_clip = 0.5 * (aabb_max + aabb_min);
|
|
var p_clip = 0.5 * (aabb_max + aabb_min);
|
|
@@ -191,7 +168,6 @@ class TemporalFiltering extends hrt.prefab.rfx.RendererFX {
|
|
|
|
|
|
@:s public var amount : Float;
|
|
@:s public var amount : Float;
|
|
@:s public var varianceClipping : Bool = true;
|
|
@:s public var varianceClipping : Bool = true;
|
|
- @:s public var ycocg : Bool = true;
|
|
|
|
@:s public var catmullRom : Bool = true;
|
|
@:s public var catmullRom : Bool = true;
|
|
@:s public var velocity : Bool = false;
|
|
@:s public var velocity : Bool = false;
|
|
@:s public var jitterPattern : FrustumJitter.Pattern = Still;
|
|
@:s public var jitterPattern : FrustumJitter.Pattern = Still;
|
|
@@ -273,7 +249,6 @@ class TemporalFiltering extends hrt.prefab.rfx.RendererFX {
|
|
}
|
|
}
|
|
|
|
|
|
s.VARIANCE_CLIPPING = varianceClipping;
|
|
s.VARIANCE_CLIPPING = varianceClipping;
|
|
- s.YCOCG = ycocg;
|
|
|
|
s.CATMULL_ROM = catmullRom;
|
|
s.CATMULL_ROM = catmullRom;
|
|
s.VARIANCE_CLIPPING = varianceClipping;
|
|
s.VARIANCE_CLIPPING = varianceClipping;
|
|
if ( velocity ) {
|
|
if ( velocity ) {
|
|
@@ -304,7 +279,6 @@ class TemporalFiltering extends hrt.prefab.rfx.RendererFX {
|
|
<dl>
|
|
<dl>
|
|
<dt>Amount</dt><dd><input type="range" min="0" max="1" field="amount"/></dd>
|
|
<dt>Amount</dt><dd><input type="range" min="0" max="1" field="amount"/></dd>
|
|
<dt>Variance Clipping</dt><dd><input type="checkbox" field="varianceClipping"/></dd>
|
|
<dt>Variance Clipping</dt><dd><input type="checkbox" field="varianceClipping"/></dd>
|
|
- <dt>Ycocg</dt><dd><input type="checkbox" field="ycocg"/></dd>
|
|
|
|
<dt>CatmullRom</dt><dd><input type="checkbox" field="catmullRom"/></dd>
|
|
<dt>CatmullRom</dt><dd><input type="checkbox" field="catmullRom"/></dd>
|
|
<dt>Velocity</dt><dd><input type="checkbox" field="velocity"/></dd>
|
|
<dt>Velocity</dt><dd><input type="checkbox" field="velocity"/></dd>
|
|
<div class="group" name="Jitter">
|
|
<div class="group" name="Jitter">
|