/src/away3d/lights/shadowmaps/PlanarShadowMapper.as

http://github.com/away3d/away3d-core-fp11 · ActionScript · 44 lines · 32 code · 6 blank · 6 comment · 0 complexity · 1bf8df08514f117e0d5d254a2b4e81ef MD5 · raw file

  1. /**
  2. * Author: David Lenaerts
  3. */
  4. package away3d.lights.shadowmaps
  5. {
  6. import away3d.arcane;
  7. import away3d.cameras.Camera3D;
  8. import away3d.containers.Scene3D;
  9. import away3d.core.render.DepthRenderer;
  10. import away3d.lights.LightBase;
  11. import flash.display3D.textures.TextureBase;
  12. import flash.geom.Matrix3D;
  13. use namespace arcane;
  14. public class PlanarShadowMapper extends ShadowMapperBase
  15. {
  16. protected var _depthCamera : Camera3D;
  17. public function PlanarShadowMapper(light : LightBase)
  18. {
  19. super(light);
  20. _depthCamera = new Camera3D();
  21. }
  22. /**
  23. * Depth projection matrix that projects from scene space to depth map.
  24. */
  25. override arcane function get depthProjection() : Matrix3D
  26. {
  27. return _depthCamera.viewProjection;
  28. }
  29. override protected function drawDepthMap(target : TextureBase, scene : Scene3D, renderer : DepthRenderer) : void
  30. {
  31. _casterCollector.clear();
  32. _casterCollector.camera = _depthCamera;
  33. scene.traversePartitions(_casterCollector);
  34. renderer.render(_casterCollector, target);
  35. _casterCollector.cleanUp();
  36. }
  37. }
  38. }