{"version":3,"file":"SSAO.cjs","sources":["../../src/effects/SSAO.tsx"],"sourcesContent":["import { Ref, forwardRef, useContext, useMemo } from 'react'\nimport { SSAOEffect, BlendFunction } from 'postprocessing'\nimport { EffectComposerContext } from '../EffectComposer'\n\n// first two args are camera and texture\ntype SSAOProps = ConstructorParameters<typeof SSAOEffect>[2]\n\nexport const SSAO = forwardRef<SSAOEffect, SSAOProps>(function SSAO(props: SSAOProps, ref: Ref<SSAOEffect>) {\n  const { camera, normalPass, downSamplingPass, resolutionScale } = useContext(EffectComposerContext)\n  const effect = useMemo<SSAOEffect | {}>(() => {\n    if (normalPass === null && downSamplingPass === null) {\n      console.error('Please enable the NormalPass in the EffectComposer in order to use SSAO.')\n      return {}\n    }\n    return new SSAOEffect(camera, normalPass && !downSamplingPass ? (normalPass as any).texture : null, {\n      blendFunction: BlendFunction.MULTIPLY,\n      samples: 30,\n      rings: 4,\n      distanceThreshold: 1.0,\n      distanceFalloff: 0.0,\n      rangeThreshold: 0.5,\n      rangeFalloff: 0.1,\n      luminanceInfluence: 0.9,\n      radius: 20,\n      bias: 0.5,\n      intensity: 1.0,\n      color: undefined,\n      // @ts-ignore\n      normalDepthBuffer: downSamplingPass ? downSamplingPass.texture : null,\n      resolutionScale: resolutionScale ?? 1,\n      depthAwareUpsampling: true,\n      ...props,\n    })\n    // NOTE: `props` is an unstable reference, so we can't memoize it\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [camera, downSamplingPass, normalPass, resolutionScale])\n  return <primitive ref={ref} object={effect} dispose={null} />\n})\n"],"names":["forwardRef","SSAO","useContext","EffectComposerContext","useMemo","SSAOEffect","BlendFunction"],"mappings":";;;;;;AAOO,MAAM,OAAOA,MAAAA,WAAkC,SAASC,MAAK,OAAkB,KAAsB;AAC1G,QAAM,EAAE,QAAQ,YAAY,kBAAkB,oBAAoBC,MAAAA,WAAWC,eAAAA,qBAAqB;AAC5F,QAAA,SAASC,MAAAA,QAAyB,MAAM;AACxC,QAAA,eAAe,QAAQ,qBAAqB,MAAM;AACpD,cAAQ,MAAM,0EAA0E;AACxF,aAAO;IACT;AACO,WAAA,IAAIC,eAAAA,WAAW,QAAQ,cAAc,CAAC,mBAAoB,WAAmB,UAAU,MAAM;AAAA,MAClG,eAAeC,eAAc,cAAA;AAAA,MAC7B,SAAS;AAAA,MACT,OAAO;AAAA,MACP,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,oBAAoB;AAAA,MACpB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,MACX,OAAO;AAAA;AAAA,MAEP,mBAAmB,mBAAmB,iBAAiB,UAAU;AAAA,MACjE,iBAAiB,4CAAmB;AAAA,MACpC,sBAAsB;AAAA,MACtB,GAAG;AAAA,IAAA,CACJ;AAAA,KAGA,CAAC,QAAQ,kBAAkB,YAAY,eAAe,CAAC;AAC1D,wCAAQ,aAAU,EAAA,KAAU,QAAQ,QAAQ,SAAS,KAAM,CAAA;AAC7D,CAAC;;"}