ZCut.hx 519 B

123456789101112131415161718192021222324252627
  1. package h3d.shader;
  2. class ZCut extends hxsl.Shader {
  3. static var SRC = {
  4. @:import h3d.shader.BaseMesh;
  5. @param var zMin : Float;
  6. @param var zMax : Float;
  7. function vertex() {
  8. var z = projectedPosition.z / projectedPosition.w;
  9. z -= min(z - zMin, 0.) * 1e8;
  10. z += min(zMax - z, 0.) * 1e8;
  11. projectedPosition.z = z * projectedPosition.w;
  12. pixelColor.rgb = z.xxx;
  13. }
  14. };
  15. public function new(zMin = 0., zMax = 1.) {
  16. super();
  17. this.zMin = zMin;
  18. this.zMax = zMax;
  19. }
  20. }