three-stdlib 2.35.4 → 2.35.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_polyfill/CapsuleGeometry.cjs +17 -20
- package/_polyfill/CapsuleGeometry.cjs.map +1 -1
- package/_polyfill/CapsuleGeometry.js +17 -20
- package/_polyfill/CapsuleGeometry.js.map +1 -1
- package/_polyfill/constants.cjs +1 -1
- package/_polyfill/constants.cjs.map +1 -1
- package/_polyfill/constants.js +1 -1
- package/_polyfill/constants.js.map +1 -1
- package/animation/AnimationClipCreator.cjs +13 -13
- package/animation/AnimationClipCreator.cjs.map +1 -1
- package/animation/AnimationClipCreator.js +13 -13
- package/animation/AnimationClipCreator.js.map +1 -1
- package/animation/CCDIKSolver.cjs +11 -11
- package/animation/CCDIKSolver.cjs.map +1 -1
- package/animation/CCDIKSolver.js +12 -12
- package/animation/CCDIKSolver.js.map +1 -1
- package/animation/MMDAnimationHelper.cjs +1 -1
- package/animation/MMDAnimationHelper.cjs.map +1 -1
- package/animation/MMDAnimationHelper.js +1 -1
- package/animation/MMDAnimationHelper.js.map +1 -1
- package/animation/MMDPhysics.cjs +4 -4
- package/animation/MMDPhysics.cjs.map +1 -1
- package/animation/MMDPhysics.js +4 -4
- package/animation/MMDPhysics.js.map +1 -1
- package/controls/ArcballControls.cjs +2 -2
- package/controls/ArcballControls.cjs.map +1 -1
- package/controls/ArcballControls.js +3 -3
- package/controls/ArcballControls.js.map +1 -1
- package/controls/FirstPersonControls.cjs +1 -1
- package/controls/FirstPersonControls.cjs.map +1 -1
- package/controls/FirstPersonControls.js +1 -1
- package/controls/FirstPersonControls.js.map +1 -1
- package/controls/OrbitControls.cjs +2 -2
- package/controls/OrbitControls.cjs.map +1 -1
- package/controls/OrbitControls.js +3 -3
- package/controls/OrbitControls.js.map +1 -1
- package/controls/PointerLockControls.cjs +2 -2
- package/controls/PointerLockControls.cjs.map +1 -1
- package/controls/PointerLockControls.js +3 -3
- package/controls/PointerLockControls.js.map +1 -1
- package/csm/CSM.cjs +4 -4
- package/csm/CSM.cjs.map +1 -1
- package/csm/CSM.js +5 -5
- package/csm/CSM.js.map +1 -1
- package/csm/CSMFrustum.cjs +1 -1
- package/csm/CSMFrustum.cjs.map +1 -1
- package/csm/CSMFrustum.js +2 -2
- package/csm/CSMFrustum.js.map +1 -1
- package/deprecated/Geometry.cjs +715 -722
- package/deprecated/Geometry.cjs.map +1 -1
- package/deprecated/Geometry.js +716 -723
- package/deprecated/Geometry.js.map +1 -1
- package/effects/AnaglyphEffect.cjs +1 -2
- package/effects/AnaglyphEffect.cjs.map +1 -1
- package/effects/AnaglyphEffect.js +2 -3
- package/effects/AnaglyphEffect.js.map +1 -1
- package/effects/OutlineEffect.cjs +1 -2
- package/effects/OutlineEffect.cjs.map +1 -1
- package/effects/OutlineEffect.js +2 -3
- package/effects/OutlineEffect.js.map +1 -1
- package/effects/ParallaxBarrierEffect.cjs +1 -2
- package/effects/ParallaxBarrierEffect.cjs.map +1 -1
- package/effects/ParallaxBarrierEffect.js +2 -3
- package/effects/ParallaxBarrierEffect.js.map +1 -1
- package/exporters/DRACOExporter.cjs +122 -133
- package/exporters/DRACOExporter.cjs.map +1 -1
- package/exporters/DRACOExporter.d.ts +21 -23
- package/exporters/DRACOExporter.js +122 -133
- package/exporters/DRACOExporter.js.map +1 -1
- package/exporters/GLTFExporter.cjs +167 -170
- package/exporters/GLTFExporter.cjs.map +1 -1
- package/exporters/GLTFExporter.js +167 -170
- package/exporters/GLTFExporter.js.map +1 -1
- package/geometries/LightningStrike.cjs +515 -524
- package/geometries/LightningStrike.cjs.map +1 -1
- package/geometries/LightningStrike.js +515 -524
- package/geometries/LightningStrike.js.map +1 -1
- package/geometries/RoundedBoxGeometry.cjs +1 -1
- package/geometries/RoundedBoxGeometry.cjs.map +1 -1
- package/geometries/RoundedBoxGeometry.js +2 -2
- package/geometries/RoundedBoxGeometry.js.map +1 -1
- package/helpers/RaycasterHelper.cjs +2 -2
- package/helpers/RaycasterHelper.cjs.map +1 -1
- package/helpers/RaycasterHelper.js +3 -3
- package/helpers/RaycasterHelper.js.map +1 -1
- package/helpers/VertexNormalsHelper.cjs +3 -3
- package/helpers/VertexNormalsHelper.cjs.map +1 -1
- package/helpers/VertexNormalsHelper.js +4 -4
- package/helpers/VertexNormalsHelper.js.map +1 -1
- package/helpers/VertexTangentsHelper.cjs +2 -2
- package/helpers/VertexTangentsHelper.cjs.map +1 -1
- package/helpers/VertexTangentsHelper.js +3 -3
- package/helpers/VertexTangentsHelper.js.map +1 -1
- package/interactive/InteractiveGroup.cjs +1 -1
- package/interactive/InteractiveGroup.cjs.map +1 -1
- package/interactive/InteractiveGroup.js +2 -2
- package/interactive/InteractiveGroup.js.map +1 -1
- package/interactive/SelectionBox.cjs +15 -15
- package/interactive/SelectionBox.cjs.map +1 -1
- package/interactive/SelectionBox.js +16 -16
- package/interactive/SelectionBox.js.map +1 -1
- package/libs/chevrotain.cjs +1 -1
- package/libs/chevrotain.cjs.map +1 -1
- package/libs/chevrotain.js +1 -1
- package/libs/chevrotain.js.map +1 -1
- package/libs/lottie.cjs +1 -1
- package/libs/lottie.cjs.map +1 -1
- package/libs/lottie.js +1 -1
- package/libs/lottie.js.map +1 -1
- package/libs/opentype.cjs +1 -1
- package/libs/opentype.cjs.map +1 -1
- package/libs/opentype.js +1 -1
- package/libs/opentype.js.map +1 -1
- package/lights/LightProbeGenerator.cjs +5 -5
- package/lights/LightProbeGenerator.cjs.map +1 -1
- package/lights/LightProbeGenerator.js +5 -5
- package/lights/LightProbeGenerator.js.map +1 -1
- package/lights/RectAreaLightUniformsLib.cjs +3 -3
- package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
- package/lights/RectAreaLightUniformsLib.js +3 -3
- package/lights/RectAreaLightUniformsLib.js.map +1 -1
- package/lines/LineMaterial.cjs +1 -2
- package/lines/LineMaterial.cjs.map +1 -1
- package/lines/LineMaterial.js +2 -3
- package/lines/LineMaterial.js.map +1 -1
- package/lines/LineSegments2.cjs +13 -13
- package/lines/LineSegments2.cjs.map +1 -1
- package/lines/LineSegments2.js +14 -14
- package/lines/LineSegments2.js.map +1 -1
- package/lines/LineSegmentsGeometry.cjs +2 -2
- package/lines/LineSegmentsGeometry.cjs.map +1 -1
- package/lines/LineSegmentsGeometry.js +3 -3
- package/lines/LineSegmentsGeometry.js.map +1 -1
- package/lines/Wireframe.cjs +3 -3
- package/lines/Wireframe.cjs.map +1 -1
- package/lines/Wireframe.js +4 -4
- package/lines/Wireframe.js.map +1 -1
- package/loaders/BasisTextureLoader.cjs +435 -441
- package/loaders/BasisTextureLoader.cjs.map +1 -1
- package/loaders/BasisTextureLoader.js +435 -441
- package/loaders/BasisTextureLoader.js.map +1 -1
- package/loaders/EXRLoader.cjs +1 -2
- package/loaders/EXRLoader.cjs.map +1 -1
- package/loaders/EXRLoader.js +2 -3
- package/loaders/EXRLoader.js.map +1 -1
- package/loaders/FBXLoader.cjs +2 -2
- package/loaders/FBXLoader.cjs.map +1 -1
- package/loaders/FBXLoader.js +2 -2
- package/loaders/FBXLoader.js.map +1 -1
- package/loaders/FontLoader.cjs +2 -2
- package/loaders/FontLoader.cjs.map +1 -1
- package/loaders/FontLoader.d.ts +2 -2
- package/loaders/FontLoader.js +2 -2
- package/loaders/FontLoader.js.map +1 -1
- package/loaders/GLTFLoader.cjs +2 -2
- package/loaders/GLTFLoader.cjs.map +1 -1
- package/loaders/GLTFLoader.js +2 -2
- package/loaders/GLTFLoader.js.map +1 -1
- package/loaders/KTX2Loader.cjs +374 -377
- package/loaders/KTX2Loader.cjs.map +1 -1
- package/loaders/KTX2Loader.js +374 -377
- package/loaders/KTX2Loader.js.map +1 -1
- package/loaders/LDrawLoader.cjs +4 -5
- package/loaders/LDrawLoader.cjs.map +1 -1
- package/loaders/LDrawLoader.js +5 -6
- package/loaders/LDrawLoader.js.map +1 -1
- package/loaders/OBJLoader.cjs +5 -5
- package/loaders/OBJLoader.cjs.map +1 -1
- package/loaders/OBJLoader.js +6 -6
- package/loaders/OBJLoader.js.map +1 -1
- package/loaders/PRWMLoader.cjs +43 -46
- package/loaders/PRWMLoader.cjs.map +1 -1
- package/loaders/PRWMLoader.js +43 -46
- package/loaders/PRWMLoader.js.map +1 -1
- package/loaders/SVGLoader.cjs +1688 -1694
- package/loaders/SVGLoader.cjs.map +1 -1
- package/loaders/SVGLoader.js +1688 -1694
- package/loaders/SVGLoader.js.map +1 -1
- package/loaders/XLoader.cjs +1 -1
- package/loaders/XLoader.cjs.map +1 -1
- package/loaders/XLoader.js +1 -1
- package/loaders/XLoader.js.map +1 -1
- package/math/Capsule.cjs +3 -3
- package/math/Capsule.cjs.map +1 -1
- package/math/Capsule.js +3 -3
- package/math/Capsule.js.map +1 -1
- package/math/ColorConverter.cjs +9 -9
- package/math/ColorConverter.cjs.map +1 -1
- package/math/ColorConverter.js +9 -9
- package/math/ColorConverter.js.map +1 -1
- package/math/ConvexHull.cjs +50 -53
- package/math/ConvexHull.cjs.map +1 -1
- package/math/ConvexHull.js +50 -53
- package/math/ConvexHull.js.map +1 -1
- package/math/ImprovedNoise.cjs +1 -1
- package/math/ImprovedNoise.cjs.map +1 -1
- package/math/ImprovedNoise.js +1 -1
- package/math/ImprovedNoise.js.map +1 -1
- package/math/MeshSurfaceSampler.cjs +2 -2
- package/math/MeshSurfaceSampler.cjs.map +1 -1
- package/math/MeshSurfaceSampler.js +2 -2
- package/math/MeshSurfaceSampler.js.map +1 -1
- package/math/OBB.cjs +14 -14
- package/math/OBB.cjs.map +1 -1
- package/math/OBB.js +15 -15
- package/math/OBB.js.map +1 -1
- package/math/Octree.cjs +7 -7
- package/math/Octree.cjs.map +1 -1
- package/math/Octree.js +8 -8
- package/math/Octree.js.map +1 -1
- package/misc/ConvexObjectBreaker.cjs +268 -271
- package/misc/ConvexObjectBreaker.cjs.map +1 -1
- package/misc/ConvexObjectBreaker.js +269 -272
- package/misc/ConvexObjectBreaker.js.map +1 -1
- package/misc/Gyroscope.cjs +6 -6
- package/misc/Gyroscope.cjs.map +1 -1
- package/misc/Gyroscope.js +7 -7
- package/misc/Gyroscope.js.map +1 -1
- package/modifiers/CurveModifier.cjs +1 -1
- package/modifiers/CurveModifier.cjs.map +1 -1
- package/modifiers/CurveModifier.js +2 -2
- package/modifiers/CurveModifier.js.map +1 -1
- package/modifiers/SimplifyModifier.cjs +2 -2
- package/modifiers/SimplifyModifier.cjs.map +1 -1
- package/modifiers/SimplifyModifier.js +2 -2
- package/modifiers/SimplifyModifier.js.map +1 -1
- package/objects/BatchedMesh.cjs +2 -2
- package/objects/BatchedMesh.cjs.map +1 -1
- package/objects/BatchedMesh.js +3 -3
- package/objects/BatchedMesh.js.map +1 -1
- package/objects/GroundProjectedEnv.cjs +1 -2
- package/objects/GroundProjectedEnv.cjs.map +1 -1
- package/objects/GroundProjectedEnv.js +2 -3
- package/objects/GroundProjectedEnv.js.map +1 -1
- package/objects/Lensflare.cjs +206 -209
- package/objects/Lensflare.cjs.map +1 -1
- package/objects/Lensflare.js +206 -209
- package/objects/Lensflare.js.map +1 -1
- package/objects/Reflector.cjs +146 -154
- package/objects/Reflector.cjs.map +1 -1
- package/objects/Reflector.js +146 -154
- package/objects/Reflector.js.map +1 -1
- package/objects/ReflectorForSSRPass.cjs +180 -183
- package/objects/ReflectorForSSRPass.cjs.map +1 -1
- package/objects/ReflectorForSSRPass.js +180 -183
- package/objects/ReflectorForSSRPass.js.map +1 -1
- package/objects/Refractor.cjs +161 -164
- package/objects/Refractor.cjs.map +1 -1
- package/objects/Refractor.js +161 -164
- package/objects/Refractor.js.map +1 -1
- package/objects/ShadowMesh.cjs +1 -1
- package/objects/ShadowMesh.cjs.map +1 -1
- package/objects/ShadowMesh.js +2 -2
- package/objects/ShadowMesh.js.map +1 -1
- package/objects/Sky.cjs +32 -35
- package/objects/Sky.cjs.map +1 -1
- package/objects/Sky.d.ts +6 -100
- package/objects/Sky.js +32 -35
- package/objects/Sky.js.map +1 -1
- package/objects/Water.cjs +1 -2
- package/objects/Water.cjs.map +1 -1
- package/objects/Water.js +2 -3
- package/objects/Water.js.map +1 -1
- package/objects/Water2.cjs +140 -143
- package/objects/Water2.cjs.map +1 -1
- package/objects/Water2.js +140 -143
- package/objects/Water2.js.map +1 -1
- package/package.json +1 -1
- package/postprocessing/SAOPass.cjs +264 -267
- package/postprocessing/SAOPass.cjs.map +1 -1
- package/postprocessing/SAOPass.js +264 -267
- package/postprocessing/SAOPass.js.map +1 -1
- package/postprocessing/SSAOPass.cjs +250 -253
- package/postprocessing/SSAOPass.cjs.map +1 -1
- package/postprocessing/SSAOPass.js +250 -253
- package/postprocessing/SSAOPass.js.map +1 -1
- package/postprocessing/SSRPass.cjs +376 -379
- package/postprocessing/SSRPass.cjs.map +1 -1
- package/postprocessing/SSRPass.js +376 -379
- package/postprocessing/SSRPass.js.map +1 -1
- package/postprocessing/UnrealBloomPass.cjs +202 -205
- package/postprocessing/UnrealBloomPass.cjs.map +1 -1
- package/postprocessing/UnrealBloomPass.js +202 -205
- package/postprocessing/UnrealBloomPass.js.map +1 -1
- package/renderers/CSS2DRenderer.cjs +5 -5
- package/renderers/CSS2DRenderer.cjs.map +1 -1
- package/renderers/CSS2DRenderer.js +5 -5
- package/renderers/CSS2DRenderer.js.map +1 -1
- package/renderers/CSS3DRenderer.cjs +5 -5
- package/renderers/CSS3DRenderer.cjs.map +1 -1
- package/renderers/CSS3DRenderer.js +6 -6
- package/renderers/CSS3DRenderer.js.map +1 -1
- package/shaders/ACESFilmicToneMappingShader.cjs +46 -71
- package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
- package/shaders/ACESFilmicToneMappingShader.js +46 -71
- package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
- package/shaders/AfterimageShader.cjs +22 -41
- package/shaders/AfterimageShader.cjs.map +1 -1
- package/shaders/AfterimageShader.js +22 -41
- package/shaders/AfterimageShader.js.map +1 -1
- package/shaders/BasicShader.cjs +6 -20
- package/shaders/BasicShader.cjs.map +1 -1
- package/shaders/BasicShader.js +6 -20
- package/shaders/BasicShader.js.map +1 -1
- package/shaders/BleachBypassShader.cjs +26 -46
- package/shaders/BleachBypassShader.cjs.map +1 -1
- package/shaders/BleachBypassShader.js +26 -46
- package/shaders/BleachBypassShader.js.map +1 -1
- package/shaders/BlendShader.cjs +19 -33
- package/shaders/BlendShader.cjs.map +1 -1
- package/shaders/BlendShader.js +19 -33
- package/shaders/BlendShader.js.map +1 -1
- package/shaders/BokehShader.cjs +90 -117
- package/shaders/BokehShader.cjs.map +1 -1
- package/shaders/BokehShader.js +90 -117
- package/shaders/BokehShader.js.map +1 -1
- package/shaders/BokehShader2.cjs +232 -333
- package/shaders/BokehShader2.cjs.map +1 -1
- package/shaders/BokehShader2.js +232 -333
- package/shaders/BokehShader2.js.map +1 -1
- package/shaders/BrightnessContrastShader.cjs +22 -38
- package/shaders/BrightnessContrastShader.cjs.map +1 -1
- package/shaders/BrightnessContrastShader.js +22 -38
- package/shaders/BrightnessContrastShader.js.map +1 -1
- package/shaders/ColorCorrectionShader.cjs +21 -35
- package/shaders/ColorCorrectionShader.cjs.map +1 -1
- package/shaders/ColorCorrectionShader.js +21 -35
- package/shaders/ColorCorrectionShader.js.map +1 -1
- package/shaders/ColorifyShader.cjs +19 -34
- package/shaders/ColorifyShader.cjs.map +1 -1
- package/shaders/ColorifyShader.js +19 -34
- package/shaders/ColorifyShader.js.map +1 -1
- package/shaders/ConvolutionShader.cjs +24 -43
- package/shaders/ConvolutionShader.cjs.map +1 -1
- package/shaders/ConvolutionShader.js +24 -43
- package/shaders/ConvolutionShader.js.map +1 -1
- package/shaders/CopyShader.cjs +16 -30
- package/shaders/CopyShader.cjs.map +1 -1
- package/shaders/CopyShader.js +16 -30
- package/shaders/CopyShader.js.map +1 -1
- package/shaders/DOFMipMapShader.cjs +21 -38
- package/shaders/DOFMipMapShader.cjs.map +1 -1
- package/shaders/DOFMipMapShader.js +21 -38
- package/shaders/DOFMipMapShader.js.map +1 -1
- package/shaders/DepthLimitedBlurShader.cjs +69 -98
- package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
- package/shaders/DepthLimitedBlurShader.js +69 -98
- package/shaders/DepthLimitedBlurShader.js.map +1 -1
- package/shaders/DigitalGlitch.cjs +59 -70
- package/shaders/DigitalGlitch.cjs.map +1 -1
- package/shaders/DigitalGlitch.js +59 -70
- package/shaders/DigitalGlitch.js.map +1 -1
- package/shaders/DotScreenShader.cjs +28 -49
- package/shaders/DotScreenShader.cjs.map +1 -1
- package/shaders/DotScreenShader.js +28 -49
- package/shaders/DotScreenShader.js.map +1 -1
- package/shaders/FXAAShader.cjs +1089 -1098
- package/shaders/FXAAShader.cjs.map +1 -1
- package/shaders/FXAAShader.js +1089 -1098
- package/shaders/FXAAShader.js.map +1 -1
- package/shaders/FilmShader.cjs +29 -57
- package/shaders/FilmShader.cjs.map +1 -1
- package/shaders/FilmShader.js +29 -57
- package/shaders/FilmShader.js.map +1 -1
- package/shaders/FocusShader.cjs +43 -70
- package/shaders/FocusShader.cjs.map +1 -1
- package/shaders/FocusShader.js +43 -70
- package/shaders/FocusShader.js.map +1 -1
- package/shaders/FreiChenShader.cjs +53 -74
- package/shaders/FreiChenShader.cjs.map +1 -1
- package/shaders/FreiChenShader.js +53 -74
- package/shaders/FreiChenShader.js.map +1 -1
- package/shaders/FresnelShader.cjs +35 -55
- package/shaders/FresnelShader.cjs.map +1 -1
- package/shaders/FresnelShader.js +35 -55
- package/shaders/FresnelShader.js.map +1 -1
- package/shaders/GammaCorrectionShader.cjs +19 -33
- package/shaders/GammaCorrectionShader.cjs.map +1 -1
- package/shaders/GammaCorrectionShader.js +19 -33
- package/shaders/GammaCorrectionShader.js.map +1 -1
- package/shaders/GodRaysShader.cjs +116 -193
- package/shaders/GodRaysShader.cjs.map +1 -1
- package/shaders/GodRaysShader.js +116 -193
- package/shaders/GodRaysShader.js.map +1 -1
- package/shaders/HalftoneShader.cjs +192 -270
- package/shaders/HalftoneShader.cjs.map +1 -1
- package/shaders/HalftoneShader.js +192 -270
- package/shaders/HalftoneShader.js.map +1 -1
- package/shaders/HorizontalTiltShiftShader.cjs +27 -43
- package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
- package/shaders/HorizontalTiltShiftShader.js +27 -43
- package/shaders/HorizontalTiltShiftShader.js.map +1 -1
- package/shaders/HueSaturationShader.cjs +31 -47
- package/shaders/HueSaturationShader.cjs.map +1 -1
- package/shaders/HueSaturationShader.js +31 -47
- package/shaders/HueSaturationShader.js.map +1 -1
- package/shaders/KaleidoShader.cjs +24 -37
- package/shaders/KaleidoShader.cjs.map +1 -1
- package/shaders/KaleidoShader.js +24 -37
- package/shaders/KaleidoShader.js.map +1 -1
- package/shaders/LuminosityHighPassShader.cjs +24 -43
- package/shaders/LuminosityHighPassShader.cjs.map +1 -1
- package/shaders/LuminosityHighPassShader.js +24 -43
- package/shaders/LuminosityHighPassShader.js.map +1 -1
- package/shaders/LuminosityShader.cjs +17 -34
- package/shaders/LuminosityShader.cjs.map +1 -1
- package/shaders/LuminosityShader.js +17 -34
- package/shaders/LuminosityShader.js.map +1 -1
- package/shaders/MirrorShader.cjs +26 -39
- package/shaders/MirrorShader.cjs.map +1 -1
- package/shaders/MirrorShader.js +26 -39
- package/shaders/MirrorShader.js.map +1 -1
- package/shaders/NormalMapShader.cjs +21 -36
- package/shaders/NormalMapShader.cjs.map +1 -1
- package/shaders/NormalMapShader.js +21 -36
- package/shaders/NormalMapShader.js.map +1 -1
- package/shaders/ParallaxShader.cjs +97 -147
- package/shaders/ParallaxShader.cjs.map +1 -1
- package/shaders/ParallaxShader.js +97 -147
- package/shaders/ParallaxShader.js.map +1 -1
- package/shaders/PixelShader.cjs +18 -31
- package/shaders/PixelShader.cjs.map +1 -1
- package/shaders/PixelShader.js +18 -31
- package/shaders/PixelShader.js.map +1 -1
- package/shaders/RGBShiftShader.cjs +20 -33
- package/shaders/RGBShiftShader.cjs.map +1 -1
- package/shaders/RGBShiftShader.js +20 -33
- package/shaders/RGBShiftShader.js.map +1 -1
- package/shaders/SAOShader.cjs +117 -154
- package/shaders/SAOShader.cjs.map +1 -1
- package/shaders/SAOShader.js +117 -154
- package/shaders/SAOShader.js.map +1 -1
- package/shaders/SMAAShader.cjs +270 -358
- package/shaders/SMAAShader.cjs.map +1 -1
- package/shaders/SMAAShader.js +270 -358
- package/shaders/SMAAShader.js.map +1 -1
- package/shaders/SSAOShader.cjs +142 -236
- package/shaders/SSAOShader.cjs.map +1 -1
- package/shaders/SSAOShader.js +142 -236
- package/shaders/SSAOShader.js.map +1 -1
- package/shaders/SSRShader.cjs +4 -4
- package/shaders/SSRShader.cjs.map +1 -1
- package/shaders/SSRShader.js +4 -4
- package/shaders/SSRShader.js.map +1 -1
- package/shaders/SepiaShader.cjs +20 -36
- package/shaders/SepiaShader.cjs.map +1 -1
- package/shaders/SepiaShader.js +20 -36
- package/shaders/SepiaShader.js.map +1 -1
- package/shaders/SobelOperatorShader.cjs +37 -64
- package/shaders/SobelOperatorShader.cjs.map +1 -1
- package/shaders/SobelOperatorShader.js +37 -64
- package/shaders/SobelOperatorShader.js.map +1 -1
- package/shaders/TechnicolorShader.cjs +16 -29
- package/shaders/TechnicolorShader.cjs.map +1 -1
- package/shaders/TechnicolorShader.js +16 -29
- package/shaders/TechnicolorShader.js.map +1 -1
- package/shaders/ToneMapShader.cjs +35 -55
- package/shaders/ToneMapShader.cjs.map +1 -1
- package/shaders/ToneMapShader.js +35 -55
- package/shaders/ToneMapShader.js.map +1 -1
- package/shaders/ToonShader.cjs +165 -275
- package/shaders/ToonShader.cjs.map +1 -1
- package/shaders/ToonShader.js +165 -275
- package/shaders/ToonShader.js.map +1 -1
- package/shaders/TriangleBlurShader.cjs +27 -50
- package/shaders/TriangleBlurShader.cjs.map +1 -1
- package/shaders/TriangleBlurShader.js +27 -50
- package/shaders/TriangleBlurShader.js.map +1 -1
- package/shaders/UnpackDepthRGBAShader.cjs +17 -32
- package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
- package/shaders/UnpackDepthRGBAShader.js +17 -32
- package/shaders/UnpackDepthRGBAShader.js.map +1 -1
- package/shaders/VerticalTiltShiftShader.cjs +27 -43
- package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
- package/shaders/VerticalTiltShiftShader.js +27 -43
- package/shaders/VerticalTiltShiftShader.js.map +1 -1
- package/shaders/VignetteShader.cjs +27 -43
- package/shaders/VignetteShader.cjs.map +1 -1
- package/shaders/VignetteShader.js +27 -43
- package/shaders/VignetteShader.js.map +1 -1
- package/shaders/VolumeShader.cjs +213 -264
- package/shaders/VolumeShader.cjs.map +1 -1
- package/shaders/VolumeShader.js +213 -264
- package/shaders/VolumeShader.js.map +1 -1
- package/shaders/WaterRefractionShader.cjs +35 -63
- package/shaders/WaterRefractionShader.cjs.map +1 -1
- package/shaders/WaterRefractionShader.js +35 -63
- package/shaders/WaterRefractionShader.js.map +1 -1
- package/utils/GeometryCompressionUtils.cjs +1 -2
- package/utils/GeometryCompressionUtils.cjs.map +1 -1
- package/utils/GeometryCompressionUtils.js +2 -3
- package/utils/GeometryCompressionUtils.js.map +1 -1
- package/utils/RoughnessMipmapper.cjs +3 -3
- package/utils/RoughnessMipmapper.cjs.map +1 -1
- package/utils/RoughnessMipmapper.js +4 -4
- package/utils/RoughnessMipmapper.js.map +1 -1
- package/webxr/ARButton.cjs +106 -109
- package/webxr/ARButton.cjs.map +1 -1
- package/webxr/ARButton.d.ts +3 -4
- package/webxr/ARButton.js +106 -109
- package/webxr/ARButton.js.map +1 -1
- package/webxr/OculusHandPointerModel.cjs +2 -2
- package/webxr/OculusHandPointerModel.cjs.map +1 -1
- package/webxr/OculusHandPointerModel.js +2 -2
- package/webxr/OculusHandPointerModel.js.map +1 -1
- package/webxr/VRButton.cjs +95 -98
- package/webxr/VRButton.cjs.map +1 -1
- package/webxr/VRButton.d.ts +5 -6
- package/webxr/VRButton.js +95 -98
- package/webxr/VRButton.js.map +1 -1
- package/webxr/XRHandPrimitiveModel.cjs +2 -2
- package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
- package/webxr/XRHandPrimitiveModel.js +3 -3
- package/webxr/XRHandPrimitiveModel.js.map +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const THREE = require("three");
|
|
4
|
-
|
|
4
|
+
class LightProbeGenerator {
|
|
5
5
|
// https://www.ppsloan.org/publications/StupidSH36.pdf
|
|
6
|
-
fromCubeTexture(cubeTexture) {
|
|
6
|
+
static fromCubeTexture(cubeTexture) {
|
|
7
7
|
let totalWeight = 0;
|
|
8
8
|
const coord = new THREE.Vector3();
|
|
9
9
|
const dir = new THREE.Vector3();
|
|
@@ -75,8 +75,8 @@ const LightProbeGenerator = {
|
|
|
75
75
|
shCoefficients[j].z *= norm;
|
|
76
76
|
}
|
|
77
77
|
return new THREE.LightProbe(sh);
|
|
78
|
-
}
|
|
79
|
-
fromCubeRenderTarget(renderer, cubeRenderTarget) {
|
|
78
|
+
}
|
|
79
|
+
static fromCubeRenderTarget(renderer, cubeRenderTarget) {
|
|
80
80
|
let totalWeight = 0;
|
|
81
81
|
const coord = new THREE.Vector3();
|
|
82
82
|
const dir = new THREE.Vector3();
|
|
@@ -141,6 +141,6 @@ const LightProbeGenerator = {
|
|
|
141
141
|
}
|
|
142
142
|
return new THREE.LightProbe(sh);
|
|
143
143
|
}
|
|
144
|
-
}
|
|
144
|
+
}
|
|
145
145
|
exports.LightProbeGenerator = LightProbeGenerator;
|
|
146
146
|
//# sourceMappingURL=LightProbeGenerator.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightProbeGenerator.cjs","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nconst LightProbeGenerator = {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n\n fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n}\n\nexport { LightProbeGenerator }\n"],"names":["Vector3","Color","SphericalHarmonics3","LightProbe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LightProbeGenerator.cjs","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nclass LightProbeGenerator {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n static fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n\n static fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n}\n\nexport { LightProbeGenerator }\n"],"names":["Vector3","Color","SphericalHarmonics3","LightProbe"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Vector3, Color, SphericalHarmonics3, LightProbe } from "three";
|
|
2
|
-
|
|
2
|
+
class LightProbeGenerator {
|
|
3
3
|
// https://www.ppsloan.org/publications/StupidSH36.pdf
|
|
4
|
-
fromCubeTexture(cubeTexture) {
|
|
4
|
+
static fromCubeTexture(cubeTexture) {
|
|
5
5
|
let totalWeight = 0;
|
|
6
6
|
const coord = new Vector3();
|
|
7
7
|
const dir = new Vector3();
|
|
@@ -73,8 +73,8 @@ const LightProbeGenerator = {
|
|
|
73
73
|
shCoefficients[j].z *= norm;
|
|
74
74
|
}
|
|
75
75
|
return new LightProbe(sh);
|
|
76
|
-
}
|
|
77
|
-
fromCubeRenderTarget(renderer, cubeRenderTarget) {
|
|
76
|
+
}
|
|
77
|
+
static fromCubeRenderTarget(renderer, cubeRenderTarget) {
|
|
78
78
|
let totalWeight = 0;
|
|
79
79
|
const coord = new Vector3();
|
|
80
80
|
const dir = new Vector3();
|
|
@@ -139,7 +139,7 @@ const LightProbeGenerator = {
|
|
|
139
139
|
}
|
|
140
140
|
return new LightProbe(sh);
|
|
141
141
|
}
|
|
142
|
-
}
|
|
142
|
+
}
|
|
143
143
|
export {
|
|
144
144
|
LightProbeGenerator
|
|
145
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightProbeGenerator.js","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nconst LightProbeGenerator = {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n\n fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n },\n}\n\nexport { LightProbeGenerator }\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LightProbeGenerator.js","sources":["../../src/lights/LightProbeGenerator.js"],"sourcesContent":["import { Color, LightProbe, SphericalHarmonics3, Vector3 } from 'three'\n\nclass LightProbeGenerator {\n // https://www.ppsloan.org/publications/StupidSH36.pdf\n static fromCubeTexture(cubeTexture) {\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const image = cubeTexture.image[faceIndex]\n\n const width = image.width\n const height = image.height\n\n const canvas = document.createElement('canvas')\n\n canvas.width = width\n canvas.height = height\n\n const context = canvas.getContext('2d')\n\n context.drawImage(image, 0, 0, width, height)\n\n const imageData = context.getImageData(0, 0, width, height)\n\n const data = imageData.data\n\n const imageWidth = imageData.width // assumed to be square\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeTexture) {\n if (cubeTexture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeTexture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(-1, row, -col)\n break\n\n case 1:\n coord.set(1, row, col)\n break\n\n case 2:\n coord.set(-col, 1, -row)\n break\n\n case 3:\n coord.set(-col, -1, row)\n break\n\n case 4:\n coord.set(-col, row, 1)\n break\n\n case 5:\n coord.set(col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n\n static fromCubeRenderTarget(renderer, cubeRenderTarget) {\n // The renderTarget must be set to RGBA in order to make readRenderTargetPixels works\n let totalWeight = 0\n\n const coord = new Vector3()\n\n const dir = new Vector3()\n\n const color = new Color()\n\n const shBasis = [0, 0, 0, 0, 0, 0, 0, 0, 0]\n\n const sh = new SphericalHarmonics3()\n const shCoefficients = sh.coefficients\n\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n const imageWidth = cubeRenderTarget.width // assumed to be square\n const data = new Uint8Array(imageWidth * imageWidth * 4)\n renderer.readRenderTargetPixels(cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex)\n\n const pixelSize = 2 / imageWidth\n\n for (let i = 0, il = data.length; i < il; i += 4) {\n // RGBA assumed\n\n // pixel color\n color.setRGB(data[i] / 255, data[i + 1] / 255, data[i + 2] / 255)\n\n // convert to linear color space\n if ('colorSpace' in cubeRenderTarget.texture) {\n if (cubeRenderTarget.texture.colorSpace === 'srgb') {\n color.convertSRGBToLinear()\n }\n } else if (cubeRenderTarget.texture.encoding === 3001) {\n // sRGBEncoding\n color.convertSRGBToLinear()\n }\n\n // pixel coordinate on unit cube\n\n const pixelIndex = i / 4\n\n const col = -1 + ((pixelIndex % imageWidth) + 0.5) * pixelSize\n\n const row = 1 - (Math.floor(pixelIndex / imageWidth) + 0.5) * pixelSize\n\n switch (faceIndex) {\n case 0:\n coord.set(1, row, -col)\n break\n\n case 1:\n coord.set(-1, row, col)\n break\n\n case 2:\n coord.set(col, 1, -row)\n break\n\n case 3:\n coord.set(col, -1, row)\n break\n\n case 4:\n coord.set(col, row, 1)\n break\n\n case 5:\n coord.set(-col, row, -1)\n break\n }\n\n // weight assigned to this pixel\n\n const lengthSq = coord.lengthSq()\n\n const weight = 4 / (Math.sqrt(lengthSq) * lengthSq)\n\n totalWeight += weight\n\n // direction vector to this pixel\n dir.copy(coord).normalize()\n\n // evaluate SH basis functions in direction dir\n SphericalHarmonics3.getBasisAt(dir, shBasis)\n\n // accummuulate\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x += shBasis[j] * color.r * weight\n shCoefficients[j].y += shBasis[j] * color.g * weight\n shCoefficients[j].z += shBasis[j] * color.b * weight\n }\n }\n }\n\n // normalize\n const norm = (4 * Math.PI) / totalWeight\n\n for (let j = 0; j < 9; j++) {\n shCoefficients[j].x *= norm\n shCoefficients[j].y *= norm\n shCoefficients[j].z *= norm\n }\n\n return new LightProbe(sh)\n }\n}\n\nexport { LightProbeGenerator }\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const THREE = require("three");
|
|
4
|
-
|
|
5
|
-
init() {
|
|
4
|
+
class RectAreaLightUniformsLib {
|
|
5
|
+
static init() {
|
|
6
6
|
const LTC_MAT_1 = [
|
|
7
7
|
1,
|
|
8
8
|
0,
|
|
@@ -32842,6 +32842,6 @@ const RectAreaLightUniformsLib = {
|
|
|
32842
32842
|
THREE.UniformsLib.LTC_HALF_1.needsUpdate = true;
|
|
32843
32843
|
THREE.UniformsLib.LTC_HALF_2.needsUpdate = true;
|
|
32844
32844
|
}
|
|
32845
|
-
}
|
|
32845
|
+
}
|
|
32846
32846
|
exports.RectAreaLightUniformsLib = RectAreaLightUniformsLib;
|
|
32847
32847
|
//# sourceMappingURL=RectAreaLightUniformsLib.cjs.map
|