|
@@ -24,7 +24,7 @@ class CascadeShadowMap extends DirShadowMap {
|
|
|
|
|
|
public var cascadeViewProj = new h3d.Matrix();
|
|
public var cascadeViewProj = new h3d.Matrix();
|
|
public var params : Array<CascadeParams> = [];
|
|
public var params : Array<CascadeParams> = [];
|
|
- public var pow : Float = 1.0;
|
|
|
|
|
|
+ public var ditributionPower : Float = 1.0;
|
|
// minimum count of pixels for an object to be drawn in cascade
|
|
// minimum count of pixels for an object to be drawn in cascade
|
|
public var minPixelSize : Int = 1;
|
|
public var minPixelSize : Int = 1;
|
|
public var firstCascadeSize : Float = 10.0;
|
|
public var firstCascadeSize : Float = 10.0;
|
|
@@ -47,6 +47,7 @@ class CascadeShadowMap extends DirShadowMap {
|
|
super(light);
|
|
super(light);
|
|
format = R32F;
|
|
format = R32F;
|
|
shader = dshader = cshader = new h3d.shader.CascadeShadow();
|
|
shader = dshader = cshader = new h3d.shader.CascadeShadow();
|
|
|
|
+ border = null;
|
|
}
|
|
}
|
|
|
|
|
|
public override function getShadowTex() {
|
|
public override function getShadowTex() {
|
|
@@ -63,7 +64,7 @@ class CascadeShadowMap extends DirShadowMap {
|
|
var max = maxDist < 0.0 ? ctx.camera.zFar : maxDist;
|
|
var max = maxDist < 0.0 ? ctx.camera.zFar : maxDist;
|
|
var step = max - firstCascadeSize;
|
|
var step = max - firstCascadeSize;
|
|
var near = ( i == 0 ) ? 0.0 : previousFar - previousFar * transitionFraction;
|
|
var near = ( i == 0 ) ? 0.0 : previousFar - previousFar * transitionFraction;
|
|
- var far = ( i == 0 ) ? firstCascadeSize : firstCascadeSize + hxd.Math.pow(i / (cascade - 1), pow) * step;
|
|
|
|
|
|
+ var far = ( i == 0 ) ? firstCascadeSize : firstCascadeSize + hxd.Math.pow(i / (cascade - 1), ditributionPower) * step;
|
|
|
|
|
|
// Not related to scale but let's pack it here to save memory
|
|
// Not related to scale but let's pack it here to save memory
|
|
lightCameras[i].scale.w = far;
|
|
lightCameras[i].scale.w = far;
|