DefaultShadowMap.hx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package h3d.pass;
  2. class DefaultShadowMap extends DirShadowMap {
  3. var shadowMapId : Int;
  4. var shadowProjId : Int;
  5. var shadowColorId : Int;
  6. var shadowPowerId : Int;
  7. var shadowBiasId : Int;
  8. public var color : h3d.Vector;
  9. public function new(size=1024,?format:hxd.PixelFormat) {
  10. if( format != null )
  11. this.format = format;
  12. super(null);
  13. this.size = size;
  14. color = new h3d.Vector();
  15. mode = Dynamic;
  16. shadowMapId = hxsl.Globals.allocID("shadow.map");
  17. shadowProjId = hxsl.Globals.allocID("shadow.proj");
  18. shadowColorId = hxsl.Globals.allocID("shadow.color");
  19. shadowPowerId = hxsl.Globals.allocID("shadow.power");
  20. shadowBiasId = hxsl.Globals.allocID("shadow.bias");
  21. }
  22. override function draw( passes, ?sort ) {
  23. super.draw(passes, sort);
  24. ctx.globals.fastSet(shadowMapId, { texture : dshader.shadowMap, channel : format == h3d.mat.Texture.nativeFormat ? hxsl.Channel.PackedFloat : hxsl.Channel.R });
  25. ctx.globals.fastSet(shadowProjId, getShadowProj());
  26. ctx.globals.fastSet(shadowColorId, color);
  27. ctx.globals.fastSet(shadowPowerId, power);
  28. ctx.globals.fastSet(shadowBiasId, bias);
  29. }
  30. }