three-stdlib 2.25.0 → 2.26.0
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/controls/OrbitControls.d.ts +1 -0
- package/index.cjs +116465 -611
- package/index.js +116101 -263
- package/package.json +17 -4
- package/_polyfill/CapsuleGeometry.cjs +0 -22
- package/_polyfill/CapsuleGeometry.js +0 -22
- package/_polyfill/CompressedArrayTexture.cjs +0 -12
- package/_polyfill/CompressedArrayTexture.js +0 -12
- package/_polyfill/Data3DTexture.cjs +0 -17
- package/_polyfill/Data3DTexture.js +0 -17
- package/animation/AnimationClipCreator.cjs +0 -56
- package/animation/AnimationClipCreator.js +0 -56
- package/animation/CCDIKSolver.cjs +0 -269
- package/animation/CCDIKSolver.js +0 -269
- package/animation/MMDAnimationHelper.cjs +0 -688
- package/animation/MMDAnimationHelper.js +0 -688
- package/animation/MMDPhysics.cjs +0 -830
- package/animation/MMDPhysics.js +0 -830
- package/cameras/CinematicCamera.cjs +0 -131
- package/cameras/CinematicCamera.js +0 -131
- package/controls/ArcballControls.cjs +0 -2033
- package/controls/ArcballControls.js +0 -2033
- package/controls/DeviceOrientationControls.cjs +0 -85
- package/controls/DeviceOrientationControls.js +0 -85
- package/controls/DragControls.cjs +0 -182
- package/controls/DragControls.js +0 -182
- package/controls/FirstPersonControls.cjs +0 -229
- package/controls/FirstPersonControls.js +0 -229
- package/controls/FlyControls.cjs +0 -248
- package/controls/FlyControls.js +0 -248
- package/controls/OrbitControls.cjs +0 -791
- package/controls/OrbitControls.js +0 -791
- package/controls/PointerLockControls.cjs +0 -103
- package/controls/PointerLockControls.js +0 -103
- package/controls/TrackballControls.cjs +0 -502
- package/controls/TrackballControls.js +0 -502
- package/controls/TransformControls.cjs +0 -1089
- package/controls/TransformControls.js +0 -1089
- package/controls/experimental/CameraControls.cjs +0 -736
- package/controls/experimental/CameraControls.js +0 -736
- package/csm/CSM.cjs +0 -244
- package/csm/CSM.js +0 -244
- package/csm/CSMFrustum.cjs +0 -75
- package/csm/CSMFrustum.js +0 -75
- package/csm/CSMHelper.cjs +0 -114
- package/csm/CSMHelper.js +0 -114
- package/csm/CSMShader.cjs +0 -261
- package/csm/CSMShader.js +0 -261
- package/curves/CurveExtras.cjs +0 -214
- package/curves/CurveExtras.js +0 -214
- package/curves/NURBSCurve.cjs +0 -35
- package/curves/NURBSCurve.js +0 -35
- package/curves/NURBSSurface.cjs +0 -28
- package/curves/NURBSSurface.js +0 -28
- package/curves/NURBSUtils.cjs +0 -226
- package/curves/NURBSUtils.js +0 -226
- package/deprecated/Geometry.cjs +0 -971
- package/deprecated/Geometry.js +0 -971
- package/effects/AnaglyphEffect.cjs +0 -102
- package/effects/AnaglyphEffect.js +0 -102
- package/effects/AsciiEffect.cjs +0 -155
- package/effects/AsciiEffect.js +0 -155
- package/effects/OutlineEffect.cjs +0 -275
- package/effects/OutlineEffect.js +0 -275
- package/effects/ParallaxBarrierEffect.cjs +0 -65
- package/effects/ParallaxBarrierEffect.js +0 -65
- package/effects/PeppersGhostEffect.cjs +0 -88
- package/effects/PeppersGhostEffect.js +0 -88
- package/effects/StereoEffect.cjs +0 -35
- package/effects/StereoEffect.js +0 -35
- package/environments/RoomEnvironment.cjs +0 -95
- package/environments/RoomEnvironment.js +0 -78
- package/exporters/ColladaExporter.cjs +0 -331
- package/exporters/ColladaExporter.js +0 -331
- package/exporters/DRACOExporter.cjs +0 -141
- package/exporters/DRACOExporter.js +0 -141
- package/exporters/GLTFExporter.cjs +0 -1909
- package/exporters/GLTFExporter.js +0 -1909
- package/exporters/MMDExporter.cjs +0 -131
- package/exporters/MMDExporter.js +0 -131
- package/exporters/OBJExporter.cjs +0 -181
- package/exporters/OBJExporter.js +0 -181
- package/exporters/PLYExporter.cjs +0 -280
- package/exporters/PLYExporter.js +0 -280
- package/exporters/STLExporter.cjs +0 -146
- package/exporters/STLExporter.js +0 -146
- package/exporters/USDZExporter.cjs +0 -340
- package/exporters/USDZExporter.js +0 -340
- package/geometries/BoxLineGeometry.cjs +0 -45
- package/geometries/BoxLineGeometry.js +0 -45
- package/geometries/ConvexGeometry.cjs +0 -26
- package/geometries/ConvexGeometry.js +0 -26
- package/geometries/DecalGeometry.cjs +0 -184
- package/geometries/DecalGeometry.js +0 -184
- package/geometries/LightningStrike.cjs +0 -553
- package/geometries/LightningStrike.js +0 -553
- package/geometries/ParametricGeometries.cjs +0 -130
- package/geometries/ParametricGeometries.js +0 -130
- package/geometries/ParametricGeometry.cjs +0 -63
- package/geometries/ParametricGeometry.js +0 -63
- package/geometries/RoundedBoxGeometry.cjs +0 -91
- package/geometries/RoundedBoxGeometry.js +0 -91
- package/geometries/TeapotGeometry.cjs +0 -1563
- package/geometries/TeapotGeometry.js +0 -1563
- package/geometries/TextGeometry.cjs +0 -27
- package/geometries/TextGeometry.js +0 -27
- package/helpers/LightProbeHelper.cjs +0 -73
- package/helpers/LightProbeHelper.js +0 -73
- package/helpers/PositionalAudioHelper.cjs +0 -68
- package/helpers/PositionalAudioHelper.js +0 -68
- package/helpers/RectAreaLightHelper.cjs +0 -44
- package/helpers/RectAreaLightHelper.js +0 -44
- package/helpers/VertexNormalsHelper.cjs +0 -47
- package/helpers/VertexNormalsHelper.js +0 -47
- package/helpers/VertexTangentsHelper.cjs +0 -43
- package/helpers/VertexTangentsHelper.js +0 -43
- package/interactive/HTMLMesh.cjs +0 -325
- package/interactive/HTMLMesh.js +0 -325
- package/interactive/InteractiveGroup.cjs +0 -68
- package/interactive/InteractiveGroup.js +0 -68
- package/interactive/SelectionBox.cjs +0 -134
- package/interactive/SelectionBox.js +0 -134
- package/interactive/SelectionHelper.cjs +0 -51
- package/interactive/SelectionHelper.js +0 -51
- package/libs/MeshoptDecoder.cjs +0 -221
- package/libs/MeshoptDecoder.js +0 -221
- package/libs/MotionControllers.cjs +0 -325
- package/libs/MotionControllers.js +0 -325
- package/lights/LightProbeGenerator.cjs +0 -145
- package/lights/LightProbeGenerator.js +0 -145
- package/lights/RectAreaLightUniformsLib.cjs +0 -32846
- package/lights/RectAreaLightUniformsLib.js +0 -32846
- package/lines/Line2.cjs +0 -13
- package/lines/Line2.js +0 -13
- package/lines/LineGeometry.cjs +0 -44
- package/lines/LineGeometry.js +0 -44
- package/lines/LineMaterial.cjs +0 -547
- package/lines/LineMaterial.js +0 -547
- package/lines/LineSegments2.cjs +0 -203
- package/lines/LineSegments2.js +0 -203
- package/lines/LineSegmentsGeometry.cjs +0 -124
- package/lines/LineSegmentsGeometry.js +0 -124
- package/lines/Wireframe.cjs +0 -32
- package/lines/Wireframe.js +0 -32
- package/lines/WireframeGeometry2.cjs +0 -13
- package/lines/WireframeGeometry2.js +0 -13
- package/loaders/3DMLoader.cjs +0 -803
- package/loaders/3DMLoader.js +0 -803
- package/loaders/3MFLoader.cjs +0 -854
- package/loaders/3MFLoader.js +0 -854
- package/loaders/AMFLoader.cjs +0 -284
- package/loaders/AMFLoader.js +0 -284
- package/loaders/AssimpLoader.cjs +0 -1434
- package/loaders/AssimpLoader.js +0 -1434
- package/loaders/BVHLoader.cjs +0 -207
- package/loaders/BVHLoader.js +0 -207
- package/loaders/BasisTextureLoader.cjs +0 -489
- package/loaders/BasisTextureLoader.js +0 -489
- package/loaders/ColladaLoader.cjs +0 -2405
- package/loaders/ColladaLoader.js +0 -2405
- package/loaders/DDSLoader.cjs +0 -148
- package/loaders/DDSLoader.js +0 -148
- package/loaders/DRACOLoader.cjs +0 -341
- package/loaders/DRACOLoader.js +0 -341
- package/loaders/EXRLoader.cjs +0 -1356
- package/loaders/EXRLoader.js +0 -1356
- package/loaders/FBXLoader.cjs +0 -2457
- package/loaders/FBXLoader.js +0 -2457
- package/loaders/FontLoader.cjs +0 -123
- package/loaders/FontLoader.js +0 -123
- package/loaders/GCodeLoader.cjs +0 -141
- package/loaders/GCodeLoader.js +0 -141
- package/loaders/GLTFLoader.cjs +0 -2504
- package/loaders/GLTFLoader.js +0 -2504
- package/loaders/HDRCubeTextureLoader.cjs +0 -75
- package/loaders/HDRCubeTextureLoader.js +0 -75
- package/loaders/KMZLoader.cjs +0 -75
- package/loaders/KMZLoader.js +0 -75
- package/loaders/KTX2Loader.cjs +0 -480
- package/loaders/KTX2Loader.js +0 -480
- package/loaders/KTXLoader.cjs +0 -93
- package/loaders/KTXLoader.js +0 -93
- package/loaders/LDrawLoader.cjs +0 -1424
- package/loaders/LDrawLoader.js +0 -1424
- package/loaders/LUT3dlLoader.cjs +0 -103
- package/loaders/LUT3dlLoader.js +0 -103
- package/loaders/LUTCubeLoader.cjs +0 -107
- package/loaders/LUTCubeLoader.js +0 -107
- package/loaders/LWOLoader.cjs +0 -645
- package/loaders/LWOLoader.js +0 -645
- package/loaders/LottieLoader.cjs +0 -47
- package/loaders/LottieLoader.js +0 -47
- package/loaders/MD2Loader.cjs +0 -359
- package/loaders/MD2Loader.js +0 -359
- package/loaders/MDDLoader.cjs +0 -58
- package/loaders/MDDLoader.js +0 -58
- package/loaders/MMDLoader.cjs +0 -1121
- package/loaders/MMDLoader.js +0 -1121
- package/loaders/MTLLoader.cjs +0 -304
- package/loaders/MTLLoader.js +0 -304
- package/loaders/NRRDLoader.cjs +0 -401
- package/loaders/NRRDLoader.js +0 -401
- package/loaders/OBJLoader.cjs +0 -487
- package/loaders/OBJLoader.js +0 -487
- package/loaders/PCDLoader.cjs +0 -248
- package/loaders/PCDLoader.js +0 -248
- package/loaders/PDBLoader.cjs +0 -247
- package/loaders/PDBLoader.js +0 -247
- package/loaders/PLYLoader.cjs +0 -317
- package/loaders/PLYLoader.js +0 -317
- package/loaders/PRWMLoader.cjs +0 -160
- package/loaders/PRWMLoader.js +0 -160
- package/loaders/PVRLoader.cjs +0 -131
- package/loaders/PVRLoader.js +0 -131
- package/loaders/RGBELoader.cjs +0 -252
- package/loaders/RGBELoader.js +0 -252
- package/loaders/RGBMLoader.cjs +0 -1004
- package/loaders/RGBMLoader.js +0 -1004
- package/loaders/STLLoader.cjs +0 -190
- package/loaders/STLLoader.js +0 -190
- package/loaders/SVGLoader.cjs +0 -1712
- package/loaders/SVGLoader.js +0 -1712
- package/loaders/TDSLoader.cjs +0 -650
- package/loaders/TDSLoader.js +0 -650
- package/loaders/TGALoader.cjs +0 -285
- package/loaders/TGALoader.js +0 -285
- package/loaders/TTFLoader.cjs +0 -131
- package/loaders/TTFLoader.js +0 -131
- package/loaders/TiltLoader.cjs +0 -375
- package/loaders/TiltLoader.js +0 -375
- package/loaders/VOXLoader.cjs +0 -432
- package/loaders/VOXLoader.js +0 -432
- package/loaders/VRMLLoader.cjs +0 -2105
- package/loaders/VRMLLoader.js +0 -2105
- package/loaders/VRMLoader.cjs +0 -38
- package/loaders/VRMLoader.js +0 -38
- package/loaders/VTKLoader.cjs +0 -648
- package/loaders/VTKLoader.js +0 -648
- package/loaders/XLoader.cjs +0 -1258
- package/loaders/XLoader.js +0 -1258
- package/loaders/XYZLoader.cjs +0 -60
- package/loaders/XYZLoader.js +0 -60
- package/loaders/lwo/IFFParser.cjs +0 -743
- package/loaders/lwo/IFFParser.js +0 -743
- package/loaders/lwo/LWO2Parser.cjs +0 -312
- package/loaders/lwo/LWO2Parser.js +0 -312
- package/loaders/lwo/LWO3Parser.cjs +0 -282
- package/loaders/lwo/LWO3Parser.js +0 -282
- package/math/Capsule.cjs +0 -98
- package/math/Capsule.js +0 -98
- package/math/ColorConverter.cjs +0 -42
- package/math/ColorConverter.js +0 -42
- package/math/ConvexHull.cjs +0 -596
- package/math/ConvexHull.js +0 -596
- package/math/ImprovedNoise.cjs +0 -304
- package/math/ImprovedNoise.js +0 -304
- package/math/Lut.cjs +0 -137
- package/math/Lut.js +0 -137
- package/math/MeshSurfaceSampler.cjs +0 -103
- package/math/MeshSurfaceSampler.js +0 -103
- package/math/OBB.cjs +0 -242
- package/math/OBB.js +0 -242
- package/math/Octree.cjs +0 -273
- package/math/Octree.js +0 -273
- package/math/SimplexNoise.cjs +0 -440
- package/math/SimplexNoise.js +0 -440
- package/misc/ConvexObjectBreaker.cjs +0 -292
- package/misc/ConvexObjectBreaker.js +0 -292
- package/misc/GPUComputationRenderer.cjs +0 -205
- package/misc/GPUComputationRenderer.js +0 -205
- package/misc/Gyroscope.cjs +0 -33
- package/misc/Gyroscope.js +0 -33
- package/misc/MD2Character.cjs +0 -167
- package/misc/MD2Character.js +0 -167
- package/misc/MD2CharacterComplex.cjs +0 -332
- package/misc/MD2CharacterComplex.js +0 -332
- package/misc/MorphAnimMesh.cjs +0 -40
- package/misc/MorphAnimMesh.js +0 -40
- package/misc/MorphBlendMesh.cjs +0 -179
- package/misc/MorphBlendMesh.js +0 -179
- package/misc/ProgressiveLightmap.cjs +0 -186
- package/misc/ProgressiveLightmap.js +0 -186
- package/misc/RollerCoaster.cjs +0 -353
- package/misc/RollerCoaster.js +0 -353
- package/misc/Timer.cjs +0 -101
- package/misc/Timer.js +0 -101
- package/misc/TubePainter.cjs +0 -123
- package/misc/TubePainter.js +0 -123
- package/misc/Volume.cjs +0 -305
- package/misc/Volume.js +0 -305
- package/misc/VolumeSlice.cjs +0 -114
- package/misc/VolumeSlice.js +0 -114
- package/misc/WebGL.cjs +0 -74
- package/misc/WebGL.js +0 -74
- package/modifiers/CurveModifier.cjs +0 -232
- package/modifiers/CurveModifier.js +0 -232
- package/modifiers/EdgeSplitModifier.cjs +0 -167
- package/modifiers/EdgeSplitModifier.js +0 -168
- package/modifiers/SimplifyModifier.cjs +0 -301
- package/modifiers/SimplifyModifier.js +0 -301
- package/modifiers/TessellateModifier.cjs +0 -214
- package/modifiers/TessellateModifier.js +0 -214
- package/objects/GroundProjectedEnv.cjs +0 -134
- package/objects/GroundProjectedEnv.js +0 -134
- package/objects/Lensflare.cjs +0 -291
- package/objects/Lensflare.js +0 -291
- package/objects/LightningStorm.cjs +0 -110
- package/objects/LightningStorm.js +0 -110
- package/objects/MarchingCubes.cjs +0 -4809
- package/objects/MarchingCubes.js +0 -4809
- package/objects/Reflector.cjs +0 -202
- package/objects/Reflector.js +0 -202
- package/objects/ReflectorForSSRPass.cjs +0 -260
- package/objects/ReflectorForSSRPass.js +0 -260
- package/objects/ReflectorRTT.cjs +0 -10
- package/objects/ReflectorRTT.js +0 -10
- package/objects/Refractor.cjs +0 -215
- package/objects/Refractor.js +0 -215
- package/objects/ShadowMesh.cjs +0 -45
- package/objects/ShadowMesh.js +0 -45
- package/objects/Sky.cjs +0 -200
- package/objects/Sky.js +0 -200
- package/objects/Water.cjs +0 -242
- package/objects/Water.js +0 -242
- package/objects/Water2.cjs +0 -256
- package/objects/Water2.js +0 -256
- package/physics/AmmoPhysics.cjs +0 -166
- package/physics/AmmoPhysics.js +0 -166
- package/postprocessing/AdaptiveToneMappingPass.cjs +0 -218
- package/postprocessing/AdaptiveToneMappingPass.js +0 -218
- package/postprocessing/AfterimagePass.cjs +0 -68
- package/postprocessing/AfterimagePass.js +0 -68
- package/postprocessing/BloomPass.cjs +0 -109
- package/postprocessing/BloomPass.js +0 -109
- package/postprocessing/BokehPass.cjs +0 -90
- package/postprocessing/BokehPass.js +0 -90
- package/postprocessing/ClearPass.cjs +0 -36
- package/postprocessing/ClearPass.js +0 -36
- package/postprocessing/CubeTexturePass.cjs +0 -53
- package/postprocessing/CubeTexturePass.js +0 -53
- package/postprocessing/DotScreenPass.cjs +0 -49
- package/postprocessing/DotScreenPass.js +0 -49
- package/postprocessing/EffectComposer.cjs +0 -157
- package/postprocessing/EffectComposer.js +0 -157
- package/postprocessing/FilmPass.cjs +0 -51
- package/postprocessing/FilmPass.js +0 -51
- package/postprocessing/GlitchPass.cjs +0 -84
- package/postprocessing/GlitchPass.js +0 -84
- package/postprocessing/HalftonePass.cjs +0 -53
- package/postprocessing/HalftonePass.js +0 -53
- package/postprocessing/LUTPass.cjs +0 -142
- package/postprocessing/LUTPass.js +0 -142
- package/postprocessing/MaskPass.cjs +0 -69
- package/postprocessing/MaskPass.js +0 -69
- package/postprocessing/OutlinePass.cjs +0 -479
- package/postprocessing/OutlinePass.js +0 -479
- package/postprocessing/Pass.cjs +0 -48
- package/postprocessing/Pass.js +0 -48
- package/postprocessing/RenderPass.cjs +0 -59
- package/postprocessing/RenderPass.js +0 -59
- package/postprocessing/RenderPixelatedPass.cjs +0 -199
- package/postprocessing/RenderPixelatedPass.js +0 -199
- package/postprocessing/SAOPass.cjs +0 -288
- package/postprocessing/SAOPass.js +0 -288
- package/postprocessing/SMAAPass.cjs +0 -112
- package/postprocessing/SMAAPass.js +0 -112
- package/postprocessing/SSAARenderPass.cjs +0 -189
- package/postprocessing/SSAARenderPass.js +0 -189
- package/postprocessing/SSAOPass.cjs +0 -272
- package/postprocessing/SSAOPass.js +0 -272
- package/postprocessing/SSRPass.cjs +0 -411
- package/postprocessing/SSRPass.js +0 -411
- package/postprocessing/SavePass.cjs +0 -38
- package/postprocessing/SavePass.js +0 -38
- package/postprocessing/ShaderPass.cjs +0 -49
- package/postprocessing/ShaderPass.js +0 -49
- package/postprocessing/TAARenderPass.cjs +0 -174
- package/postprocessing/TAARenderPass.js +0 -174
- package/postprocessing/TexturePass.cjs +0 -42
- package/postprocessing/TexturePass.js +0 -42
- package/postprocessing/UnrealBloomPass.cjs +0 -277
- package/postprocessing/UnrealBloomPass.js +0 -277
- package/postprocessing/WaterPass.cjs +0 -72
- package/postprocessing/WaterPass.js +0 -72
- package/renderers/CSS2DRenderer.cjs +0 -122
- package/renderers/CSS2DRenderer.js +0 -122
- package/renderers/CSS3DRenderer.cjs +0 -167
- package/renderers/CSS3DRenderer.js +0 -167
- package/renderers/Projector.cjs +0 -499
- package/renderers/Projector.js +0 -499
- package/renderers/SVGRenderer.cjs +0 -311
- package/renderers/SVGRenderer.js +0 -311
- package/shaders/ACESFilmicToneMappingShader.cjs +0 -55
- package/shaders/ACESFilmicToneMappingShader.js +0 -55
- package/shaders/AfterimageShader.cjs +0 -32
- package/shaders/AfterimageShader.js +0 -32
- package/shaders/BasicShader.cjs +0 -12
- package/shaders/BasicShader.js +0 -12
- package/shaders/BleachBypassShader.cjs +0 -35
- package/shaders/BleachBypassShader.js +0 -35
- package/shaders/BlendShader.cjs +0 -30
- package/shaders/BlendShader.js +0 -30
- package/shaders/BokehShader.cjs +0 -109
- package/shaders/BokehShader.js +0 -109
- package/shaders/BokehShader2.cjs +0 -269
- package/shaders/BokehShader2.js +0 -269
- package/shaders/BrightnessContrastShader.cjs +0 -32
- package/shaders/BrightnessContrastShader.js +0 -32
- package/shaders/ColorCorrectionShader.cjs +0 -30
- package/shaders/ColorCorrectionShader.js +0 -30
- package/shaders/ColorifyShader.cjs +0 -28
- package/shaders/ColorifyShader.js +0 -28
- package/shaders/ConvolutionShader.cjs +0 -55
- package/shaders/ConvolutionShader.js +0 -55
- package/shaders/CopyShader.cjs +0 -25
- package/shaders/CopyShader.js +0 -25
- package/shaders/DOFMipMapShader.cjs +0 -32
- package/shaders/DOFMipMapShader.js +0 -32
- package/shaders/DepthLimitedBlurShader.cjs +0 -114
- package/shaders/DepthLimitedBlurShader.js +0 -114
- package/shaders/DigitalGlitch.cjs +0 -85
- package/shaders/DigitalGlitch.js +0 -85
- package/shaders/DotScreenShader.cjs +0 -39
- package/shaders/DotScreenShader.js +0 -39
- package/shaders/FXAAShader.cjs +0 -1098
- package/shaders/FXAAShader.js +0 -1098
- package/shaders/FilmShader.cjs +0 -53
- package/shaders/FilmShader.js +0 -53
- package/shaders/FocusShader.cjs +0 -55
- package/shaders/FocusShader.js +0 -55
- package/shaders/FreiChenShader.cjs +0 -64
- package/shaders/FreiChenShader.js +0 -64
- package/shaders/FresnelShader.cjs +0 -47
- package/shaders/FresnelShader.js +0 -47
- package/shaders/GammaCorrectionShader.cjs +0 -23
- package/shaders/GammaCorrectionShader.js +0 -23
- package/shaders/GodRaysShader.cjs +0 -183
- package/shaders/GodRaysShader.js +0 -183
- package/shaders/HalftoneShader.cjs +0 -228
- package/shaders/HalftoneShader.js +0 -228
- package/shaders/HorizontalBlurShader.cjs +0 -49
- package/shaders/HorizontalBlurShader.js +0 -49
- package/shaders/HorizontalTiltShiftShader.cjs +0 -37
- package/shaders/HorizontalTiltShiftShader.js +0 -37
- package/shaders/HueSaturationShader.cjs +0 -43
- package/shaders/HueSaturationShader.js +0 -43
- package/shaders/KaleidoShader.cjs +0 -34
- package/shaders/KaleidoShader.js +0 -34
- package/shaders/LuminosityHighPassShader.cjs +0 -37
- package/shaders/LuminosityHighPassShader.js +0 -37
- package/shaders/LuminosityShader.cjs +0 -25
- package/shaders/LuminosityShader.js +0 -25
- package/shaders/MirrorShader.cjs +0 -35
- package/shaders/MirrorShader.js +0 -35
- package/shaders/NormalMapShader.cjs +0 -31
- package/shaders/NormalMapShader.js +0 -31
- package/shaders/ParallaxShader.cjs +0 -133
- package/shaders/ParallaxShader.js +0 -133
- package/shaders/PixelShader.cjs +0 -28
- package/shaders/PixelShader.js +0 -28
- package/shaders/RGBShiftShader.cjs +0 -30
- package/shaders/RGBShiftShader.js +0 -30
- package/shaders/SAOShader.cjs +0 -144
- package/shaders/SAOShader.js +0 -144
- package/shaders/SMAAShader.cjs +0 -358
- package/shaders/SMAAShader.js +0 -358
- package/shaders/SSAOShader.cjs +0 -182
- package/shaders/SSAOShader.js +0 -182
- package/shaders/SSRShader.cjs +0 -342
- package/shaders/SSRShader.js +0 -342
- package/shaders/SepiaShader.cjs +0 -29
- package/shaders/SepiaShader.js +0 -29
- package/shaders/SobelOperatorShader.cjs +0 -54
- package/shaders/SobelOperatorShader.js +0 -54
- package/shaders/SubsurfaceScatteringShader.cjs +0 -98
- package/shaders/SubsurfaceScatteringShader.js +0 -98
- package/shaders/TechnicolorShader.cjs +0 -24
- package/shaders/TechnicolorShader.js +0 -24
- package/shaders/ToneMapShader.cjs +0 -51
- package/shaders/ToneMapShader.js +0 -51
- package/shaders/ToonShader.cjs +0 -188
- package/shaders/ToonShader.js +0 -188
- package/shaders/TriangleBlurShader.cjs +0 -37
- package/shaders/TriangleBlurShader.js +0 -37
- package/shaders/UnpackDepthRGBAShader.cjs +0 -26
- package/shaders/UnpackDepthRGBAShader.js +0 -26
- package/shaders/VerticalBlurShader.cjs +0 -50
- package/shaders/VerticalBlurShader.js +0 -50
- package/shaders/VerticalTiltShiftShader.cjs +0 -37
- package/shaders/VerticalTiltShiftShader.js +0 -37
- package/shaders/VignetteShader.cjs +0 -38
- package/shaders/VignetteShader.js +0 -38
- package/shaders/VolumeShader.cjs +0 -225
- package/shaders/VolumeShader.js +0 -225
- package/shaders/WaterRefractionShader.cjs +0 -59
- package/shaders/WaterRefractionShader.js +0 -59
- package/shaders/types.cjs +0 -1
- package/shaders/types.js +0 -1
- package/textures/FlakesTexture.cjs +0 -30
- package/textures/FlakesTexture.js +0 -30
- package/types/helpers.cjs +0 -4
- package/types/helpers.js +0 -4
- package/utils/BufferGeometryUtils.cjs +0 -636
- package/utils/BufferGeometryUtils.js +0 -636
- package/utils/GeometryCompressionUtils.cjs +0 -573
- package/utils/GeometryCompressionUtils.js +0 -573
- package/utils/GeometryUtils.cjs +0 -109
- package/utils/GeometryUtils.js +0 -109
- package/utils/RoughnessMipmapper.cjs +0 -223
- package/utils/RoughnessMipmapper.js +0 -223
- package/utils/SceneUtils.cjs +0 -36
- package/utils/SceneUtils.js +0 -36
- package/utils/ShadowMapViewer.cjs +0 -111
- package/utils/ShadowMapViewer.js +0 -111
- package/utils/SkeletonUtils.cjs +0 -211
- package/utils/SkeletonUtils.js +0 -211
- package/utils/UVsDebug.cjs +0 -80
- package/utils/UVsDebug.js +0 -80
- package/utils/WorkerPool.cjs +0 -62
- package/utils/WorkerPool.js +0 -62
- package/webxr/ARButton.cjs +0 -119
- package/webxr/ARButton.js +0 -119
- package/webxr/OculusHandModel.cjs +0 -82
- package/webxr/OculusHandModel.js +0 -82
- package/webxr/OculusHandPointerModel.cjs +0 -241
- package/webxr/OculusHandPointerModel.js +0 -224
- package/webxr/Text2D.cjs +0 -48
- package/webxr/Text2D.js +0 -31
- package/webxr/VRButton.cjs +0 -111
- package/webxr/VRButton.js +0 -111
- package/webxr/XRControllerModelFactory.cjs +0 -174
- package/webxr/XRControllerModelFactory.js +0 -174
- package/webxr/XREstimatedLight.cjs +0 -126
- package/webxr/XREstimatedLight.js +0 -126
- package/webxr/XRHandMeshModel.cjs +0 -82
- package/webxr/XRHandMeshModel.js +0 -82
- package/webxr/XRHandModelFactory.cjs +0 -61
- package/webxr/XRHandModelFactory.js +0 -61
- package/webxr/XRHandPrimitiveModel.cjs +0 -68
- package/webxr/XRHandPrimitiveModel.js +0 -68
package/shaders/GodRaysShader.js
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { Vector3, Color } from "three";
|
|
2
|
-
const GodRaysDepthMaskShader = {
|
|
3
|
-
uniforms: {
|
|
4
|
-
tInput: {
|
|
5
|
-
value: null
|
|
6
|
-
}
|
|
7
|
-
},
|
|
8
|
-
vertexShader: [
|
|
9
|
-
"varying vec2 vUv;",
|
|
10
|
-
"void main() {",
|
|
11
|
-
" vUv = uv;",
|
|
12
|
-
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
|
13
|
-
"}"
|
|
14
|
-
].join("\n"),
|
|
15
|
-
fragmentShader: [
|
|
16
|
-
"varying vec2 vUv;",
|
|
17
|
-
"uniform sampler2D tInput;",
|
|
18
|
-
"void main() {",
|
|
19
|
-
" gl_FragColor = vec4( 1.0 ) - texture2D( tInput, vUv );",
|
|
20
|
-
"}"
|
|
21
|
-
].join("\n")
|
|
22
|
-
};
|
|
23
|
-
const GodRaysGenerateShader = {
|
|
24
|
-
uniforms: {
|
|
25
|
-
tInput: {
|
|
26
|
-
value: null
|
|
27
|
-
},
|
|
28
|
-
fStepSize: {
|
|
29
|
-
value: 1
|
|
30
|
-
},
|
|
31
|
-
vSunPositionScreenSpace: {
|
|
32
|
-
value: /* @__PURE__ */ new Vector3()
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
vertexShader: [
|
|
36
|
-
"varying vec2 vUv;",
|
|
37
|
-
"void main() {",
|
|
38
|
-
" vUv = uv;",
|
|
39
|
-
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
|
40
|
-
"}"
|
|
41
|
-
].join("\n"),
|
|
42
|
-
fragmentShader: [
|
|
43
|
-
"#define TAPS_PER_PASS 6.0",
|
|
44
|
-
"varying vec2 vUv;",
|
|
45
|
-
"uniform sampler2D tInput;",
|
|
46
|
-
"uniform vec3 vSunPositionScreenSpace;",
|
|
47
|
-
"uniform float fStepSize;",
|
|
48
|
-
// filter step size
|
|
49
|
-
"void main() {",
|
|
50
|
-
// delta from current pixel to "sun" position
|
|
51
|
-
" vec2 delta = vSunPositionScreenSpace.xy - vUv;",
|
|
52
|
-
" float dist = length( delta );",
|
|
53
|
-
// Step vector (uv space)
|
|
54
|
-
" vec2 stepv = fStepSize * delta / dist;",
|
|
55
|
-
// Number of iterations between pixel and sun
|
|
56
|
-
" float iters = dist/fStepSize;",
|
|
57
|
-
" vec2 uv = vUv.xy;",
|
|
58
|
-
" float col = 0.0;",
|
|
59
|
-
// This breaks ANGLE in Chrome 22
|
|
60
|
-
// - see http://code.google.com/p/chromium/issues/detail?id=153105
|
|
61
|
-
/*
|
|
62
|
-
// Unrolling didnt do much on my hardware (ATI Mobility Radeon 3450),
|
|
63
|
-
// so i've just left the loop
|
|
64
|
-
|
|
65
|
-
"for ( float i = 0.0; i < TAPS_PER_PASS; i += 1.0 ) {",
|
|
66
|
-
|
|
67
|
-
// Accumulate samples, making sure we dont walk past the light source.
|
|
68
|
-
|
|
69
|
-
// The check for uv.y < 1 would not be necessary with "border" UV wrap
|
|
70
|
-
// mode, with a black border color. I don't think this is currently
|
|
71
|
-
// exposed by three.js. As a result there might be artifacts when the
|
|
72
|
-
// sun is to the left, right or bottom of screen as these cases are
|
|
73
|
-
// not specifically handled.
|
|
74
|
-
|
|
75
|
-
" col += ( i <= iters && uv.y < 1.0 ? texture2D( tInput, uv ).r : 0.0 );",
|
|
76
|
-
" uv += stepv;",
|
|
77
|
-
|
|
78
|
-
"}",
|
|
79
|
-
*/
|
|
80
|
-
// Unrolling loop manually makes it work in ANGLE
|
|
81
|
-
" float f = min( 1.0, max( vSunPositionScreenSpace.z / 1000.0, 0.0 ) );",
|
|
82
|
-
// used to fade out godrays
|
|
83
|
-
" if ( 0.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;",
|
|
84
|
-
" uv += stepv;",
|
|
85
|
-
" if ( 1.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;",
|
|
86
|
-
" uv += stepv;",
|
|
87
|
-
" if ( 2.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;",
|
|
88
|
-
" uv += stepv;",
|
|
89
|
-
" if ( 3.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;",
|
|
90
|
-
" uv += stepv;",
|
|
91
|
-
" if ( 4.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;",
|
|
92
|
-
" uv += stepv;",
|
|
93
|
-
" if ( 5.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;",
|
|
94
|
-
" uv += stepv;",
|
|
95
|
-
// Should technically be dividing by 'iters', but 'TAPS_PER_PASS' smooths out
|
|
96
|
-
// objectionable artifacts, in particular near the sun position. The side
|
|
97
|
-
// effect is that the result is darker than it should be around the sun, as
|
|
98
|
-
// TAPS_PER_PASS is greater than the number of samples actually accumulated.
|
|
99
|
-
// When the result is inverted (in the shader 'godrays_combine', this produces
|
|
100
|
-
// a slight bright spot at the position of the sun, even when it is occluded.
|
|
101
|
-
" gl_FragColor = vec4( col/TAPS_PER_PASS );",
|
|
102
|
-
" gl_FragColor.a = 1.0;",
|
|
103
|
-
"}"
|
|
104
|
-
].join("\n")
|
|
105
|
-
};
|
|
106
|
-
const GodRaysCombineShader = {
|
|
107
|
-
uniforms: {
|
|
108
|
-
tColors: {
|
|
109
|
-
value: null
|
|
110
|
-
},
|
|
111
|
-
tGodRays: {
|
|
112
|
-
value: null
|
|
113
|
-
},
|
|
114
|
-
fGodRayIntensity: {
|
|
115
|
-
value: 0.69
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
vertexShader: [
|
|
119
|
-
"varying vec2 vUv;",
|
|
120
|
-
"void main() {",
|
|
121
|
-
" vUv = uv;",
|
|
122
|
-
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
|
123
|
-
"}"
|
|
124
|
-
].join("\n"),
|
|
125
|
-
fragmentShader: [
|
|
126
|
-
"varying vec2 vUv;",
|
|
127
|
-
"uniform sampler2D tColors;",
|
|
128
|
-
"uniform sampler2D tGodRays;",
|
|
129
|
-
"uniform float fGodRayIntensity;",
|
|
130
|
-
"void main() {",
|
|
131
|
-
// Since THREE.MeshDepthMaterial renders foreground objects white and background
|
|
132
|
-
// objects black, the god-rays will be white streaks. Therefore value is inverted
|
|
133
|
-
// before being combined with tColors
|
|
134
|
-
" gl_FragColor = texture2D( tColors, vUv ) + fGodRayIntensity * vec4( 1.0 - texture2D( tGodRays, vUv ).r );",
|
|
135
|
-
" gl_FragColor.a = 1.0;",
|
|
136
|
-
"}"
|
|
137
|
-
].join("\n")
|
|
138
|
-
};
|
|
139
|
-
const GodRaysFakeSunShader = {
|
|
140
|
-
uniforms: {
|
|
141
|
-
vSunPositionScreenSpace: {
|
|
142
|
-
value: /* @__PURE__ */ new Vector3()
|
|
143
|
-
},
|
|
144
|
-
fAspect: {
|
|
145
|
-
value: 1
|
|
146
|
-
},
|
|
147
|
-
sunColor: {
|
|
148
|
-
value: /* @__PURE__ */ new Color(16772608)
|
|
149
|
-
},
|
|
150
|
-
bgColor: {
|
|
151
|
-
value: /* @__PURE__ */ new Color(0)
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
|
-
vertexShader: [
|
|
155
|
-
"varying vec2 vUv;",
|
|
156
|
-
"void main() {",
|
|
157
|
-
" vUv = uv;",
|
|
158
|
-
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
|
159
|
-
"}"
|
|
160
|
-
].join("\n"),
|
|
161
|
-
fragmentShader: [
|
|
162
|
-
"varying vec2 vUv;",
|
|
163
|
-
"uniform vec3 vSunPositionScreenSpace;",
|
|
164
|
-
"uniform float fAspect;",
|
|
165
|
-
"uniform vec3 sunColor;",
|
|
166
|
-
"uniform vec3 bgColor;",
|
|
167
|
-
"void main() {",
|
|
168
|
-
" vec2 diff = vUv - vSunPositionScreenSpace.xy;",
|
|
169
|
-
// Correct for aspect ratio
|
|
170
|
-
" diff.x *= fAspect;",
|
|
171
|
-
" float prop = clamp( length( diff ) / 0.5, 0.0, 1.0 );",
|
|
172
|
-
" prop = 0.35 * pow( 1.0 - prop, 3.0 );",
|
|
173
|
-
" gl_FragColor.xyz = ( vSunPositionScreenSpace.z > 0.0 ) ? mix( sunColor, bgColor, 1.0 - prop ) : bgColor;",
|
|
174
|
-
" gl_FragColor.w = 1.0;",
|
|
175
|
-
"}"
|
|
176
|
-
].join("\n")
|
|
177
|
-
};
|
|
178
|
-
export {
|
|
179
|
-
GodRaysCombineShader,
|
|
180
|
-
GodRaysDepthMaskShader,
|
|
181
|
-
GodRaysFakeSunShader,
|
|
182
|
-
GodRaysGenerateShader
|
|
183
|
-
};
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const HalftoneShader = {
|
|
4
|
-
uniforms: {
|
|
5
|
-
tDiffuse: { value: null },
|
|
6
|
-
shape: { value: 1 },
|
|
7
|
-
radius: { value: 4 },
|
|
8
|
-
rotateR: { value: Math.PI / 12 * 1 },
|
|
9
|
-
rotateG: { value: Math.PI / 12 * 2 },
|
|
10
|
-
rotateB: { value: Math.PI / 12 * 3 },
|
|
11
|
-
scatter: { value: 0 },
|
|
12
|
-
width: { value: 1 },
|
|
13
|
-
height: { value: 1 },
|
|
14
|
-
blending: { value: 1 },
|
|
15
|
-
blendingMode: { value: 1 },
|
|
16
|
-
greyscale: { value: false },
|
|
17
|
-
disable: { value: false }
|
|
18
|
-
},
|
|
19
|
-
vertexShader: [
|
|
20
|
-
"varying vec2 vUV;",
|
|
21
|
-
"void main() {",
|
|
22
|
-
" vUV = uv;",
|
|
23
|
-
" gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);",
|
|
24
|
-
"}"
|
|
25
|
-
].join("\n"),
|
|
26
|
-
fragmentShader: [
|
|
27
|
-
"#define SQRT2_MINUS_ONE 0.41421356",
|
|
28
|
-
"#define SQRT2_HALF_MINUS_ONE 0.20710678",
|
|
29
|
-
"#define PI2 6.28318531",
|
|
30
|
-
"#define SHAPE_DOT 1",
|
|
31
|
-
"#define SHAPE_ELLIPSE 2",
|
|
32
|
-
"#define SHAPE_LINE 3",
|
|
33
|
-
"#define SHAPE_SQUARE 4",
|
|
34
|
-
"#define BLENDING_LINEAR 1",
|
|
35
|
-
"#define BLENDING_MULTIPLY 2",
|
|
36
|
-
"#define BLENDING_ADD 3",
|
|
37
|
-
"#define BLENDING_LIGHTER 4",
|
|
38
|
-
"#define BLENDING_DARKER 5",
|
|
39
|
-
"uniform sampler2D tDiffuse;",
|
|
40
|
-
"uniform float radius;",
|
|
41
|
-
"uniform float rotateR;",
|
|
42
|
-
"uniform float rotateG;",
|
|
43
|
-
"uniform float rotateB;",
|
|
44
|
-
"uniform float scatter;",
|
|
45
|
-
"uniform float width;",
|
|
46
|
-
"uniform float height;",
|
|
47
|
-
"uniform int shape;",
|
|
48
|
-
"uniform bool disable;",
|
|
49
|
-
"uniform float blending;",
|
|
50
|
-
"uniform int blendingMode;",
|
|
51
|
-
"varying vec2 vUV;",
|
|
52
|
-
"uniform bool greyscale;",
|
|
53
|
-
"const int samples = 8;",
|
|
54
|
-
"float blend( float a, float b, float t ) {",
|
|
55
|
-
// linear blend
|
|
56
|
-
" return a * ( 1.0 - t ) + b * t;",
|
|
57
|
-
"}",
|
|
58
|
-
"float hypot( float x, float y ) {",
|
|
59
|
-
// vector magnitude
|
|
60
|
-
" return sqrt( x * x + y * y );",
|
|
61
|
-
"}",
|
|
62
|
-
"float rand( vec2 seed ){",
|
|
63
|
-
// get pseudo-random number
|
|
64
|
-
"return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );",
|
|
65
|
-
"}",
|
|
66
|
-
"float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {",
|
|
67
|
-
// apply shape-specific transforms
|
|
68
|
-
" float dist = hypot( coord.x - p.x, coord.y - p.y );",
|
|
69
|
-
" float rad = channel;",
|
|
70
|
-
" if ( shape == SHAPE_DOT ) {",
|
|
71
|
-
" rad = pow( abs( rad ), 1.125 ) * rad_max;",
|
|
72
|
-
" } else if ( shape == SHAPE_ELLIPSE ) {",
|
|
73
|
-
" rad = pow( abs( rad ), 1.125 ) * rad_max;",
|
|
74
|
-
" if ( dist != 0.0 ) {",
|
|
75
|
-
" float dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );",
|
|
76
|
-
" dist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;",
|
|
77
|
-
" }",
|
|
78
|
-
" } else if ( shape == SHAPE_LINE ) {",
|
|
79
|
-
" rad = pow( abs( rad ), 1.5) * rad_max;",
|
|
80
|
-
" float dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;",
|
|
81
|
-
" dist = hypot( normal.x * dot_p, normal.y * dot_p );",
|
|
82
|
-
" } else if ( shape == SHAPE_SQUARE ) {",
|
|
83
|
-
" float theta = atan( p.y - coord.y, p.x - coord.x ) - angle;",
|
|
84
|
-
" float sin_t = abs( sin( theta ) );",
|
|
85
|
-
" float cos_t = abs( cos( theta ) );",
|
|
86
|
-
" rad = pow( abs( rad ), 1.4 );",
|
|
87
|
-
" rad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );",
|
|
88
|
-
" }",
|
|
89
|
-
" return rad - dist;",
|
|
90
|
-
"}",
|
|
91
|
-
"struct Cell {",
|
|
92
|
-
// grid sample positions
|
|
93
|
-
" vec2 normal;",
|
|
94
|
-
" vec2 p1;",
|
|
95
|
-
" vec2 p2;",
|
|
96
|
-
" vec2 p3;",
|
|
97
|
-
" vec2 p4;",
|
|
98
|
-
" float samp2;",
|
|
99
|
-
" float samp1;",
|
|
100
|
-
" float samp3;",
|
|
101
|
-
" float samp4;",
|
|
102
|
-
"};",
|
|
103
|
-
"vec4 getSample( vec2 point ) {",
|
|
104
|
-
// multi-sampled point
|
|
105
|
-
" vec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );",
|
|
106
|
-
" float base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;",
|
|
107
|
-
" float step = PI2 / float( samples );",
|
|
108
|
-
" float dist = radius * 0.66;",
|
|
109
|
-
" for ( int i = 0; i < samples; ++i ) {",
|
|
110
|
-
" float r = base + step * float( i );",
|
|
111
|
-
" vec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );",
|
|
112
|
-
" tex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );",
|
|
113
|
-
" }",
|
|
114
|
-
" tex /= float( samples ) + 1.0;",
|
|
115
|
-
" return tex;",
|
|
116
|
-
"}",
|
|
117
|
-
"float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {",
|
|
118
|
-
// get colour for given point
|
|
119
|
-
" float dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;",
|
|
120
|
-
" if ( channel == 0 ) {",
|
|
121
|
-
" c.samp1 = getSample( c.p1 ).r;",
|
|
122
|
-
" c.samp2 = getSample( c.p2 ).r;",
|
|
123
|
-
" c.samp3 = getSample( c.p3 ).r;",
|
|
124
|
-
" c.samp4 = getSample( c.p4 ).r;",
|
|
125
|
-
" } else if (channel == 1) {",
|
|
126
|
-
" c.samp1 = getSample( c.p1 ).g;",
|
|
127
|
-
" c.samp2 = getSample( c.p2 ).g;",
|
|
128
|
-
" c.samp3 = getSample( c.p3 ).g;",
|
|
129
|
-
" c.samp4 = getSample( c.p4 ).g;",
|
|
130
|
-
" } else {",
|
|
131
|
-
" c.samp1 = getSample( c.p1 ).b;",
|
|
132
|
-
" c.samp3 = getSample( c.p3 ).b;",
|
|
133
|
-
" c.samp2 = getSample( c.p2 ).b;",
|
|
134
|
-
" c.samp4 = getSample( c.p4 ).b;",
|
|
135
|
-
" }",
|
|
136
|
-
" dist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );",
|
|
137
|
-
" dist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );",
|
|
138
|
-
" dist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );",
|
|
139
|
-
" dist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );",
|
|
140
|
-
" res = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;",
|
|
141
|
-
" res += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;",
|
|
142
|
-
" res += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;",
|
|
143
|
-
" res += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;",
|
|
144
|
-
" res = clamp( res, 0.0, 1.0 );",
|
|
145
|
-
" return res;",
|
|
146
|
-
"}",
|
|
147
|
-
"Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {",
|
|
148
|
-
// get containing cell
|
|
149
|
-
" Cell c;",
|
|
150
|
-
// calc grid
|
|
151
|
-
" vec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );",
|
|
152
|
-
" float threshold = step * 0.5;",
|
|
153
|
-
" float dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );",
|
|
154
|
-
" float dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );",
|
|
155
|
-
" vec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );",
|
|
156
|
-
" float offset_normal = mod( hypot( offset.x, offset.y ), step );",
|
|
157
|
-
" float normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;",
|
|
158
|
-
" float normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;",
|
|
159
|
-
" float offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );",
|
|
160
|
-
" float line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;",
|
|
161
|
-
" float line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;",
|
|
162
|
-
// get closest corner
|
|
163
|
-
" c.normal = n;",
|
|
164
|
-
" c.p1.x = p.x - n.x * normal_scale + n.y * line_scale;",
|
|
165
|
-
" c.p1.y = p.y - n.y * normal_scale - n.x * line_scale;",
|
|
166
|
-
// scatter
|
|
167
|
-
" if ( scatter != 0.0 ) {",
|
|
168
|
-
" float off_mag = scatter * threshold * 0.5;",
|
|
169
|
-
" float off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;",
|
|
170
|
-
" c.p1.x += cos( off_angle ) * off_mag;",
|
|
171
|
-
" c.p1.y += sin( off_angle ) * off_mag;",
|
|
172
|
-
" }",
|
|
173
|
-
// find corners
|
|
174
|
-
" float normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );",
|
|
175
|
-
" float line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );",
|
|
176
|
-
" c.p2.x = c.p1.x - n.x * normal_step;",
|
|
177
|
-
" c.p2.y = c.p1.y - n.y * normal_step;",
|
|
178
|
-
" c.p3.x = c.p1.x + n.y * line_step;",
|
|
179
|
-
" c.p3.y = c.p1.y - n.x * line_step;",
|
|
180
|
-
" c.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;",
|
|
181
|
-
" c.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;",
|
|
182
|
-
" return c;",
|
|
183
|
-
"}",
|
|
184
|
-
"float blendColour( float a, float b, float t ) {",
|
|
185
|
-
// blend colours
|
|
186
|
-
" if ( blendingMode == BLENDING_LINEAR ) {",
|
|
187
|
-
" return blend( a, b, 1.0 - t );",
|
|
188
|
-
" } else if ( blendingMode == BLENDING_ADD ) {",
|
|
189
|
-
" return blend( a, min( 1.0, a + b ), t );",
|
|
190
|
-
" } else if ( blendingMode == BLENDING_MULTIPLY ) {",
|
|
191
|
-
" return blend( a, max( 0.0, a * b ), t );",
|
|
192
|
-
" } else if ( blendingMode == BLENDING_LIGHTER ) {",
|
|
193
|
-
" return blend( a, max( a, b ), t );",
|
|
194
|
-
" } else if ( blendingMode == BLENDING_DARKER ) {",
|
|
195
|
-
" return blend( a, min( a, b ), t );",
|
|
196
|
-
" } else {",
|
|
197
|
-
" return blend( a, b, 1.0 - t );",
|
|
198
|
-
" }",
|
|
199
|
-
"}",
|
|
200
|
-
"void main() {",
|
|
201
|
-
" if ( ! disable ) {",
|
|
202
|
-
// setup
|
|
203
|
-
" vec2 p = vec2( vUV.x * width, vUV.y * height );",
|
|
204
|
-
" vec2 origin = vec2( 0, 0 );",
|
|
205
|
-
" float aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;",
|
|
206
|
-
// get channel samples
|
|
207
|
-
" Cell cell_r = getReferenceCell( p, origin, rotateR, radius );",
|
|
208
|
-
" Cell cell_g = getReferenceCell( p, origin, rotateG, radius );",
|
|
209
|
-
" Cell cell_b = getReferenceCell( p, origin, rotateB, radius );",
|
|
210
|
-
" float r = getDotColour( cell_r, p, 0, rotateR, aa );",
|
|
211
|
-
" float g = getDotColour( cell_g, p, 1, rotateG, aa );",
|
|
212
|
-
" float b = getDotColour( cell_b, p, 2, rotateB, aa );",
|
|
213
|
-
// blend with original
|
|
214
|
-
" vec4 colour = texture2D( tDiffuse, vUV );",
|
|
215
|
-
" r = blendColour( r, colour.r, blending );",
|
|
216
|
-
" g = blendColour( g, colour.g, blending );",
|
|
217
|
-
" b = blendColour( b, colour.b, blending );",
|
|
218
|
-
" if ( greyscale ) {",
|
|
219
|
-
" r = g = b = (r + b + g) / 3.0;",
|
|
220
|
-
" }",
|
|
221
|
-
" gl_FragColor = vec4( r, g, b, 1.0 );",
|
|
222
|
-
" } else {",
|
|
223
|
-
" gl_FragColor = texture2D( tDiffuse, vUV );",
|
|
224
|
-
" }",
|
|
225
|
-
"}"
|
|
226
|
-
].join("\n")
|
|
227
|
-
};
|
|
228
|
-
exports.HalftoneShader = HalftoneShader;
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
const HalftoneShader = {
|
|
2
|
-
uniforms: {
|
|
3
|
-
tDiffuse: { value: null },
|
|
4
|
-
shape: { value: 1 },
|
|
5
|
-
radius: { value: 4 },
|
|
6
|
-
rotateR: { value: Math.PI / 12 * 1 },
|
|
7
|
-
rotateG: { value: Math.PI / 12 * 2 },
|
|
8
|
-
rotateB: { value: Math.PI / 12 * 3 },
|
|
9
|
-
scatter: { value: 0 },
|
|
10
|
-
width: { value: 1 },
|
|
11
|
-
height: { value: 1 },
|
|
12
|
-
blending: { value: 1 },
|
|
13
|
-
blendingMode: { value: 1 },
|
|
14
|
-
greyscale: { value: false },
|
|
15
|
-
disable: { value: false }
|
|
16
|
-
},
|
|
17
|
-
vertexShader: [
|
|
18
|
-
"varying vec2 vUV;",
|
|
19
|
-
"void main() {",
|
|
20
|
-
" vUV = uv;",
|
|
21
|
-
" gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);",
|
|
22
|
-
"}"
|
|
23
|
-
].join("\n"),
|
|
24
|
-
fragmentShader: [
|
|
25
|
-
"#define SQRT2_MINUS_ONE 0.41421356",
|
|
26
|
-
"#define SQRT2_HALF_MINUS_ONE 0.20710678",
|
|
27
|
-
"#define PI2 6.28318531",
|
|
28
|
-
"#define SHAPE_DOT 1",
|
|
29
|
-
"#define SHAPE_ELLIPSE 2",
|
|
30
|
-
"#define SHAPE_LINE 3",
|
|
31
|
-
"#define SHAPE_SQUARE 4",
|
|
32
|
-
"#define BLENDING_LINEAR 1",
|
|
33
|
-
"#define BLENDING_MULTIPLY 2",
|
|
34
|
-
"#define BLENDING_ADD 3",
|
|
35
|
-
"#define BLENDING_LIGHTER 4",
|
|
36
|
-
"#define BLENDING_DARKER 5",
|
|
37
|
-
"uniform sampler2D tDiffuse;",
|
|
38
|
-
"uniform float radius;",
|
|
39
|
-
"uniform float rotateR;",
|
|
40
|
-
"uniform float rotateG;",
|
|
41
|
-
"uniform float rotateB;",
|
|
42
|
-
"uniform float scatter;",
|
|
43
|
-
"uniform float width;",
|
|
44
|
-
"uniform float height;",
|
|
45
|
-
"uniform int shape;",
|
|
46
|
-
"uniform bool disable;",
|
|
47
|
-
"uniform float blending;",
|
|
48
|
-
"uniform int blendingMode;",
|
|
49
|
-
"varying vec2 vUV;",
|
|
50
|
-
"uniform bool greyscale;",
|
|
51
|
-
"const int samples = 8;",
|
|
52
|
-
"float blend( float a, float b, float t ) {",
|
|
53
|
-
// linear blend
|
|
54
|
-
" return a * ( 1.0 - t ) + b * t;",
|
|
55
|
-
"}",
|
|
56
|
-
"float hypot( float x, float y ) {",
|
|
57
|
-
// vector magnitude
|
|
58
|
-
" return sqrt( x * x + y * y );",
|
|
59
|
-
"}",
|
|
60
|
-
"float rand( vec2 seed ){",
|
|
61
|
-
// get pseudo-random number
|
|
62
|
-
"return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );",
|
|
63
|
-
"}",
|
|
64
|
-
"float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {",
|
|
65
|
-
// apply shape-specific transforms
|
|
66
|
-
" float dist = hypot( coord.x - p.x, coord.y - p.y );",
|
|
67
|
-
" float rad = channel;",
|
|
68
|
-
" if ( shape == SHAPE_DOT ) {",
|
|
69
|
-
" rad = pow( abs( rad ), 1.125 ) * rad_max;",
|
|
70
|
-
" } else if ( shape == SHAPE_ELLIPSE ) {",
|
|
71
|
-
" rad = pow( abs( rad ), 1.125 ) * rad_max;",
|
|
72
|
-
" if ( dist != 0.0 ) {",
|
|
73
|
-
" float dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );",
|
|
74
|
-
" dist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;",
|
|
75
|
-
" }",
|
|
76
|
-
" } else if ( shape == SHAPE_LINE ) {",
|
|
77
|
-
" rad = pow( abs( rad ), 1.5) * rad_max;",
|
|
78
|
-
" float dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;",
|
|
79
|
-
" dist = hypot( normal.x * dot_p, normal.y * dot_p );",
|
|
80
|
-
" } else if ( shape == SHAPE_SQUARE ) {",
|
|
81
|
-
" float theta = atan( p.y - coord.y, p.x - coord.x ) - angle;",
|
|
82
|
-
" float sin_t = abs( sin( theta ) );",
|
|
83
|
-
" float cos_t = abs( cos( theta ) );",
|
|
84
|
-
" rad = pow( abs( rad ), 1.4 );",
|
|
85
|
-
" rad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );",
|
|
86
|
-
" }",
|
|
87
|
-
" return rad - dist;",
|
|
88
|
-
"}",
|
|
89
|
-
"struct Cell {",
|
|
90
|
-
// grid sample positions
|
|
91
|
-
" vec2 normal;",
|
|
92
|
-
" vec2 p1;",
|
|
93
|
-
" vec2 p2;",
|
|
94
|
-
" vec2 p3;",
|
|
95
|
-
" vec2 p4;",
|
|
96
|
-
" float samp2;",
|
|
97
|
-
" float samp1;",
|
|
98
|
-
" float samp3;",
|
|
99
|
-
" float samp4;",
|
|
100
|
-
"};",
|
|
101
|
-
"vec4 getSample( vec2 point ) {",
|
|
102
|
-
// multi-sampled point
|
|
103
|
-
" vec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );",
|
|
104
|
-
" float base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;",
|
|
105
|
-
" float step = PI2 / float( samples );",
|
|
106
|
-
" float dist = radius * 0.66;",
|
|
107
|
-
" for ( int i = 0; i < samples; ++i ) {",
|
|
108
|
-
" float r = base + step * float( i );",
|
|
109
|
-
" vec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );",
|
|
110
|
-
" tex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );",
|
|
111
|
-
" }",
|
|
112
|
-
" tex /= float( samples ) + 1.0;",
|
|
113
|
-
" return tex;",
|
|
114
|
-
"}",
|
|
115
|
-
"float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {",
|
|
116
|
-
// get colour for given point
|
|
117
|
-
" float dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;",
|
|
118
|
-
" if ( channel == 0 ) {",
|
|
119
|
-
" c.samp1 = getSample( c.p1 ).r;",
|
|
120
|
-
" c.samp2 = getSample( c.p2 ).r;",
|
|
121
|
-
" c.samp3 = getSample( c.p3 ).r;",
|
|
122
|
-
" c.samp4 = getSample( c.p4 ).r;",
|
|
123
|
-
" } else if (channel == 1) {",
|
|
124
|
-
" c.samp1 = getSample( c.p1 ).g;",
|
|
125
|
-
" c.samp2 = getSample( c.p2 ).g;",
|
|
126
|
-
" c.samp3 = getSample( c.p3 ).g;",
|
|
127
|
-
" c.samp4 = getSample( c.p4 ).g;",
|
|
128
|
-
" } else {",
|
|
129
|
-
" c.samp1 = getSample( c.p1 ).b;",
|
|
130
|
-
" c.samp3 = getSample( c.p3 ).b;",
|
|
131
|
-
" c.samp2 = getSample( c.p2 ).b;",
|
|
132
|
-
" c.samp4 = getSample( c.p4 ).b;",
|
|
133
|
-
" }",
|
|
134
|
-
" dist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );",
|
|
135
|
-
" dist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );",
|
|
136
|
-
" dist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );",
|
|
137
|
-
" dist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );",
|
|
138
|
-
" res = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;",
|
|
139
|
-
" res += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;",
|
|
140
|
-
" res += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;",
|
|
141
|
-
" res += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;",
|
|
142
|
-
" res = clamp( res, 0.0, 1.0 );",
|
|
143
|
-
" return res;",
|
|
144
|
-
"}",
|
|
145
|
-
"Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {",
|
|
146
|
-
// get containing cell
|
|
147
|
-
" Cell c;",
|
|
148
|
-
// calc grid
|
|
149
|
-
" vec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );",
|
|
150
|
-
" float threshold = step * 0.5;",
|
|
151
|
-
" float dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );",
|
|
152
|
-
" float dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );",
|
|
153
|
-
" vec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );",
|
|
154
|
-
" float offset_normal = mod( hypot( offset.x, offset.y ), step );",
|
|
155
|
-
" float normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;",
|
|
156
|
-
" float normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;",
|
|
157
|
-
" float offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );",
|
|
158
|
-
" float line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;",
|
|
159
|
-
" float line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;",
|
|
160
|
-
// get closest corner
|
|
161
|
-
" c.normal = n;",
|
|
162
|
-
" c.p1.x = p.x - n.x * normal_scale + n.y * line_scale;",
|
|
163
|
-
" c.p1.y = p.y - n.y * normal_scale - n.x * line_scale;",
|
|
164
|
-
// scatter
|
|
165
|
-
" if ( scatter != 0.0 ) {",
|
|
166
|
-
" float off_mag = scatter * threshold * 0.5;",
|
|
167
|
-
" float off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;",
|
|
168
|
-
" c.p1.x += cos( off_angle ) * off_mag;",
|
|
169
|
-
" c.p1.y += sin( off_angle ) * off_mag;",
|
|
170
|
-
" }",
|
|
171
|
-
// find corners
|
|
172
|
-
" float normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );",
|
|
173
|
-
" float line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );",
|
|
174
|
-
" c.p2.x = c.p1.x - n.x * normal_step;",
|
|
175
|
-
" c.p2.y = c.p1.y - n.y * normal_step;",
|
|
176
|
-
" c.p3.x = c.p1.x + n.y * line_step;",
|
|
177
|
-
" c.p3.y = c.p1.y - n.x * line_step;",
|
|
178
|
-
" c.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;",
|
|
179
|
-
" c.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;",
|
|
180
|
-
" return c;",
|
|
181
|
-
"}",
|
|
182
|
-
"float blendColour( float a, float b, float t ) {",
|
|
183
|
-
// blend colours
|
|
184
|
-
" if ( blendingMode == BLENDING_LINEAR ) {",
|
|
185
|
-
" return blend( a, b, 1.0 - t );",
|
|
186
|
-
" } else if ( blendingMode == BLENDING_ADD ) {",
|
|
187
|
-
" return blend( a, min( 1.0, a + b ), t );",
|
|
188
|
-
" } else if ( blendingMode == BLENDING_MULTIPLY ) {",
|
|
189
|
-
" return blend( a, max( 0.0, a * b ), t );",
|
|
190
|
-
" } else if ( blendingMode == BLENDING_LIGHTER ) {",
|
|
191
|
-
" return blend( a, max( a, b ), t );",
|
|
192
|
-
" } else if ( blendingMode == BLENDING_DARKER ) {",
|
|
193
|
-
" return blend( a, min( a, b ), t );",
|
|
194
|
-
" } else {",
|
|
195
|
-
" return blend( a, b, 1.0 - t );",
|
|
196
|
-
" }",
|
|
197
|
-
"}",
|
|
198
|
-
"void main() {",
|
|
199
|
-
" if ( ! disable ) {",
|
|
200
|
-
// setup
|
|
201
|
-
" vec2 p = vec2( vUV.x * width, vUV.y * height );",
|
|
202
|
-
" vec2 origin = vec2( 0, 0 );",
|
|
203
|
-
" float aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;",
|
|
204
|
-
// get channel samples
|
|
205
|
-
" Cell cell_r = getReferenceCell( p, origin, rotateR, radius );",
|
|
206
|
-
" Cell cell_g = getReferenceCell( p, origin, rotateG, radius );",
|
|
207
|
-
" Cell cell_b = getReferenceCell( p, origin, rotateB, radius );",
|
|
208
|
-
" float r = getDotColour( cell_r, p, 0, rotateR, aa );",
|
|
209
|
-
" float g = getDotColour( cell_g, p, 1, rotateG, aa );",
|
|
210
|
-
" float b = getDotColour( cell_b, p, 2, rotateB, aa );",
|
|
211
|
-
// blend with original
|
|
212
|
-
" vec4 colour = texture2D( tDiffuse, vUV );",
|
|
213
|
-
" r = blendColour( r, colour.r, blending );",
|
|
214
|
-
" g = blendColour( g, colour.g, blending );",
|
|
215
|
-
" b = blendColour( b, colour.b, blending );",
|
|
216
|
-
" if ( greyscale ) {",
|
|
217
|
-
" r = g = b = (r + b + g) / 3.0;",
|
|
218
|
-
" }",
|
|
219
|
-
" gl_FragColor = vec4( r, g, b, 1.0 );",
|
|
220
|
-
" } else {",
|
|
221
|
-
" gl_FragColor = texture2D( tDiffuse, vUV );",
|
|
222
|
-
" }",
|
|
223
|
-
"}"
|
|
224
|
-
].join("\n")
|
|
225
|
-
};
|
|
226
|
-
export {
|
|
227
|
-
HalftoneShader
|
|
228
|
-
};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const HorizontalBlurShader = {
|
|
4
|
-
uniforms: {
|
|
5
|
-
tDiffuse: { value: null },
|
|
6
|
-
h: { value: 1 / 512 }
|
|
7
|
-
},
|
|
8
|
-
vertexShader: (
|
|
9
|
-
/* glsl */
|
|
10
|
-
`
|
|
11
|
-
varying vec2 vUv;
|
|
12
|
-
|
|
13
|
-
void main() {
|
|
14
|
-
|
|
15
|
-
vUv = uv;
|
|
16
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
`
|
|
20
|
-
),
|
|
21
|
-
fragmentShader: (
|
|
22
|
-
/* glsl */
|
|
23
|
-
`
|
|
24
|
-
uniform sampler2D tDiffuse;
|
|
25
|
-
uniform float h;
|
|
26
|
-
|
|
27
|
-
varying vec2 vUv;
|
|
28
|
-
|
|
29
|
-
void main() {
|
|
30
|
-
|
|
31
|
-
vec4 sum = vec4( 0.0 );
|
|
32
|
-
|
|
33
|
-
sum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;
|
|
34
|
-
sum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;
|
|
35
|
-
sum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;
|
|
36
|
-
sum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;
|
|
37
|
-
sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;
|
|
38
|
-
sum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;
|
|
39
|
-
sum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;
|
|
40
|
-
sum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;
|
|
41
|
-
sum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;
|
|
42
|
-
|
|
43
|
-
gl_FragColor = sum;
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
`
|
|
47
|
-
)
|
|
48
|
-
};
|
|
49
|
-
exports.HorizontalBlurShader = HorizontalBlurShader;
|