three-stdlib 2.35.4 → 2.35.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
package/shaders/SSRShader.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SSRShader.js","sources":["../../src/shaders/SSRShader.ts"],"sourcesContent":["import { Matrix4, Vector2 } from 'three'\n/**\n * References:\n * https://lettier.github.io/3d-game-shaders-for-beginners/screen-space-reflection.html\n */\n\nexport const SSRShader = {\n defines: {\n MAX_STEP: 0,\n isPerspectiveCamera: true,\n isDistanceAttenuation: true,\n isFresnel: true,\n isInfiniteThick: false,\n isSelective: false,\n },\n\n uniforms: {\n tDiffuse: { value: null },\n tNormal: { value: null },\n tMetalness: { value: null },\n tDepth: { value: null },\n cameraNear: { value: null },\n cameraFar: { value: null },\n resolution: { value: /* @__PURE__ */ new Vector2() },\n cameraProjectionMatrix: { value: /* @__PURE__ */ new Matrix4() },\n cameraInverseProjectionMatrix: { value: /* @__PURE__ */ new Matrix4() },\n opacity: { value: 0.5 },\n maxDistance: { value: 180 },\n cameraRange: { value: 0 },\n surfDist: { value: 0.007 },\n thickTolerance: { value: 0.03 },\n },\n\n vertexShader: /* glsl */ `\n\n varying vec2 vUv;\n\n void main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n `,\n\n fragmentShader: /* glsl */ `\n\t\t// precision highp float;\n\t\tprecision highp sampler2D;\n\t\tvarying vec2 vUv;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tMetalness;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float cameraRange;\n\t\tuniform vec2 resolution;\n\t\tuniform float opacity;\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float maxDistance;\n\t\tuniform float surfDist;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\t\tuniform float thickTolerance;\n\t\t#include <packing>\n\t\tfloat pointToLineDistance(vec3 x0, vec3 x1, vec3 x2) {\n\t\t\t//x0: point, x1: linePointA, x2: linePointB\n\t\t\t//https://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html\n\t\t\treturn length(cross(x0-x1,x0-x2))/length(x2-x1);\n\t\t}\n\t\tfloat pointPlaneDistance(vec3 point,vec3 planePoint,vec3 planeNormal){\n\t\t\t// https://mathworld.wolfram.com/Point-PlaneDistance.html\n\t\t\t//// https://en.wikipedia.org/wiki/Plane_(geometry)\n\t\t\t//// http://paulbourke.net/geometry/pointlineplane/\n\t\t\tfloat a=planeNormal.x,b=planeNormal.y,c=planeNormal.z;\n\t\t\tfloat x0=point.x,y0=point.y,z0=point.z;\n\t\t\tfloat x=planePoint.x,y=planePoint.y,z=planePoint.z;\n\t\t\tfloat d=-(a*x+b*y+c*z);\n\t\t\tfloat distance=(a*x0+b*y0+c*z0+d)/sqrt(a*a+b*b+c*c);\n\t\t\treturn distance;\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;//view\n\t\t}\n\t\tvec3 getViewNormal( const in vec2 uv ) {\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, uv ).xyz );\n\t\t}\n\t\tvec2 viewPositionToXY(vec3 viewPosition){\n\t\t\tvec2 xy;\n\t\t\tvec4 clip=cameraProjectionMatrix*vec4(viewPosition,1);\n\t\t\txy=clip.xy;//clip\n\t\t\tfloat clipW=clip.w;\n\t\t\txy/=clipW;//NDC\n\t\t\txy=(xy+1.)/2.;//uv\n\t\t\txy*=resolution;//screen\n\t\t\treturn xy;\n\t\t}\n\t\tvoid main(){\n\t\t\t#ifdef isSelective\n\t\t\t\tfloat metalness=texture2D(tMetalness,vUv).r;\n\t\t\t\tif(metalness==0.) return;\n\t\t\t#endif\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\tif(-viewZ>=cameraFar) return;\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ+cameraProjectionMatrix[3][3];\n\t\t\tvec3 viewPosition=getViewPosition( vUv, depth, clipW );\n\n\t\t\tvec2 d0=gl_FragCoord.xy;\n\t\t\tvec2 d1;\n\n\t\t\tvec3 viewNormal=getViewNormal( vUv );\n\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tvec3 viewIncidenceDir=normalize(viewPosition);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#else\n\t\t\t\tvec3 viewIncidenceDir=vec3(0,0,-1);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#endif\n\n\t\t\tfloat maxReflectRayLen=maxDistance/dot(-viewIncidenceDir,viewNormal);\n\t\t\t// dot(a,b)==length(a)*length(b)*cos(theta) // https://www.mathsisfun.com/algebra/vectors-dot-product.html\n\t\t\t// if(a.isNormalized&&b.isNormalized) dot(a,b)==cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen=cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen==dot(a,b)\n\t\t\t// maxReflectRayLen==maxDistance/dot(a,b)\n\n\t\t\tvec3 d1viewPosition=viewPosition+viewReflectDir*maxReflectRayLen;\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tif(d1viewPosition.z>-cameraNear){\n\t\t\t\t\t//https://tutorial.math.lamar.edu/Classes/CalcIII/EqnsOfLines.aspx\n\t\t\t\t\tfloat t=(-cameraNear-viewPosition.z)/viewReflectDir.z;\n\t\t\t\t\td1viewPosition=viewPosition+viewReflectDir*t;\n\t\t\t\t}\n\t\t\t#endif\n\t\t\td1=viewPositionToXY(d1viewPosition);\n\n\t\t\tfloat totalLen=length(d1-d0);\n\t\t\tfloat xLen=d1.x-d0.x;\n\t\t\tfloat yLen=d1.y-d0.y;\n\t\t\tfloat totalStep=max(abs(xLen),abs(yLen));\n\t\t\tfloat xSpan=xLen/totalStep;\n\t\t\tfloat ySpan=yLen/totalStep;\n\t\t\tfor(float i=0.;i<MAX_STEP;i++){\n\t\t\t\tif(i>=totalStep) break;\n\t\t\t\tvec2 xy=vec2(d0.x+i*xSpan,d0.y+i*ySpan);\n\t\t\t\tif(xy.x<0.||xy.x>resolution.x||xy.y<0.||xy.y>resolution.y) break;\n\t\t\t\tfloat s=length(xy-d0)/totalLen;\n\t\t\t\tvec2 uv=xy/resolution;\n\n\t\t\t\tfloat d = getDepth(uv);\n\t\t\t\tfloat vZ = getViewZ( d );\n\t\t\t\tif(-vZ>=cameraFar) continue;\n\t\t\t\tfloat cW = cameraProjectionMatrix[2][3] * vZ+cameraProjectionMatrix[3][3];\n\t\t\t\tvec3 vP=getViewPosition( uv, d, cW );\n\n\t\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\t\t// https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf\n\t\t\t\t\tfloat recipVPZ=1./viewPosition.z;\n\t\t\t\t\tfloat viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));\n\t\t\t\t\tfloat sD=surfDist*cW;\n\t\t\t\t#else\n\t\t\t\t\tfloat viewReflectRayZ=viewPosition.z+s*(d1viewPosition.z-viewPosition.z);\n\t\t\t\t\tfloat sD=surfDist;\n\t\t\t\t#endif\n\t\t\t\tif(viewReflectRayZ-sD>vZ) continue;\n\n\t\t\t\t#ifdef isInfiniteThick\n\t\t\t\t\tif(viewReflectRayZ+thickTolerance*clipW<vP.z) break;\n\t\t\t\t#endif\n\t\t\t\tfloat away=pointToLineDistance(vP,viewPosition,d1viewPosition);\n\n\t\t\t\tfloat op=opacity;\n\n\t\t\t\tif(away<sD){\n\t\t\t\t\tvec3 vN=getViewNormal( uv );\n\t\t\t\t\tif(dot(viewReflectDir,vN)>=0.) continue;\n\t\t\t\t\tfloat distance=pointPlaneDistance(vP,viewPosition,viewNormal);\n\t\t\t\t\tif(distance>maxDistance) break;\n\t\t\t\t\t#ifdef isDistanceAttenuation\n\t\t\t\t\t\tfloat ratio=1.-(distance/maxDistance);\n\t\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t\t#endif\n\t\t\t\t\t#ifdef isFresnel\n\t\t\t\t\t\tfloat fresnel=(dot(viewIncidenceDir,viewReflectDir)+1.)/2.;\n\t\t\t\t\t\top*=fresnel;\n\t\t\t\t\t#endif\n\t\t\t\t\tvec4 reflectColor=texture2D(tDiffuse,uv);\n\t\t\t\t\tgl_FragColor.xyz=reflectColor.xyz;\n\t\t\t\t\tgl_FragColor.a=op;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t`,\n}\n\nexport const SSRDepthShader = {\n defines: {\n PERSPECTIVE_CAMERA: 1,\n },\n\n uniforms: {\n tDepth: { value: null },\n cameraNear: { value: null },\n cameraFar: { value: null },\n },\n\n vertexShader: /* glsl */ `\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n `,\n\n fragmentShader: /* glsl */ `\n\n uniform sampler2D tDepth;\n\n uniform float cameraNear;\n uniform float cameraFar;\n\n varying vec2 vUv;\n\n #include <packing>\n\n\t\tfloat getLinearDepth( const in vec2 uv ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, uv ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, uv ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n void main() {\n\n \tfloat depth = getLinearDepth( vUv );\n\t\t\tfloat d = 1.0 - depth;\n\t\t\t// d=(d-.999)*1000.;\n \tgl_FragColor = vec4( vec3( d ), 1.0 );\n\n }\n\n `,\n}\n\nexport const SSRBlurShader = {\n uniforms: {\n tDiffuse: { value: null },\n resolution: { value: /* @__PURE__ */ new Vector2() },\n opacity: { value: 0.5 },\n },\n\n vertexShader: /* glsl */ `\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n `,\n\n fragmentShader: /* glsl */ `\n\n uniform sampler2D tDiffuse;\n uniform vec2 resolution;\n varying vec2 vUv;\n void main() {\n\t\t\t//reverse engineering from PhotoShop blur filter, then change coefficient\n\n \tvec2 texelSize = ( 1.0 / resolution );\n\n\t\t\tvec4 c=texture2D(tDiffuse,vUv);\n\n\t\t\tvec2 offset;\n\n\t\t\toffset=(vec2(-1,0))*texelSize;\n\t\t\tvec4 cl=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(1,0))*texelSize;\n\t\t\tvec4 cr=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,-1))*texelSize;\n\t\t\tvec4 cb=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,1))*texelSize;\n\t\t\tvec4 ct=texture2D(tDiffuse,vUv+offset);\n\n\t\t\t// float coeCenter=.5;\n\t\t\t// float coeSide=.125;\n\t\t\tfloat coeCenter=.2;\n\t\t\tfloat coeSide=.2;\n\t\t\tfloat a=c.a*coeCenter+cl.a*coeSide+cr.a*coeSide+cb.a*coeSide+ct.a*coeSide;\n\t\t\tvec3 rgb=(c.rgb*c.a*coeCenter+cl.rgb*cl.a*coeSide+cr.rgb*cr.a*coeSide+cb.rgb*cb.a*coeSide+ct.rgb*ct.a*coeSide)/a;\n\t\t\tgl_FragColor=vec4(rgb,a);\n\n\t\t}\n\t`,\n}\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"SSRShader.js","sources":["../../src/shaders/SSRShader.ts"],"sourcesContent":["import { Matrix4, Vector2 } from 'three'\n/**\n * References:\n * https://lettier.github.io/3d-game-shaders-for-beginners/screen-space-reflection.html\n */\n\nexport const SSRShader = {\n defines: {\n MAX_STEP: 0,\n isPerspectiveCamera: true,\n isDistanceAttenuation: true,\n isFresnel: true,\n isInfiniteThick: false,\n isSelective: false,\n },\n\n uniforms: {\n tDiffuse: { value: null },\n tNormal: { value: null },\n tMetalness: { value: null },\n tDepth: { value: null },\n cameraNear: { value: null },\n cameraFar: { value: null },\n resolution: { value: new Vector2() },\n cameraProjectionMatrix: { value: new Matrix4() },\n cameraInverseProjectionMatrix: { value: new Matrix4() },\n opacity: { value: 0.5 },\n maxDistance: { value: 180 },\n cameraRange: { value: 0 },\n surfDist: { value: 0.007 },\n thickTolerance: { value: 0.03 },\n },\n\n vertexShader: /* glsl */ `\n\n varying vec2 vUv;\n\n void main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n `,\n\n fragmentShader: /* glsl */ `\n\t\t// precision highp float;\n\t\tprecision highp sampler2D;\n\t\tvarying vec2 vUv;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tMetalness;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float cameraRange;\n\t\tuniform vec2 resolution;\n\t\tuniform float opacity;\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float maxDistance;\n\t\tuniform float surfDist;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\t\tuniform float thickTolerance;\n\t\t#include <packing>\n\t\tfloat pointToLineDistance(vec3 x0, vec3 x1, vec3 x2) {\n\t\t\t//x0: point, x1: linePointA, x2: linePointB\n\t\t\t//https://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html\n\t\t\treturn length(cross(x0-x1,x0-x2))/length(x2-x1);\n\t\t}\n\t\tfloat pointPlaneDistance(vec3 point,vec3 planePoint,vec3 planeNormal){\n\t\t\t// https://mathworld.wolfram.com/Point-PlaneDistance.html\n\t\t\t//// https://en.wikipedia.org/wiki/Plane_(geometry)\n\t\t\t//// http://paulbourke.net/geometry/pointlineplane/\n\t\t\tfloat a=planeNormal.x,b=planeNormal.y,c=planeNormal.z;\n\t\t\tfloat x0=point.x,y0=point.y,z0=point.z;\n\t\t\tfloat x=planePoint.x,y=planePoint.y,z=planePoint.z;\n\t\t\tfloat d=-(a*x+b*y+c*z);\n\t\t\tfloat distance=(a*x0+b*y0+c*z0+d)/sqrt(a*a+b*b+c*c);\n\t\t\treturn distance;\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;//view\n\t\t}\n\t\tvec3 getViewNormal( const in vec2 uv ) {\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, uv ).xyz );\n\t\t}\n\t\tvec2 viewPositionToXY(vec3 viewPosition){\n\t\t\tvec2 xy;\n\t\t\tvec4 clip=cameraProjectionMatrix*vec4(viewPosition,1);\n\t\t\txy=clip.xy;//clip\n\t\t\tfloat clipW=clip.w;\n\t\t\txy/=clipW;//NDC\n\t\t\txy=(xy+1.)/2.;//uv\n\t\t\txy*=resolution;//screen\n\t\t\treturn xy;\n\t\t}\n\t\tvoid main(){\n\t\t\t#ifdef isSelective\n\t\t\t\tfloat metalness=texture2D(tMetalness,vUv).r;\n\t\t\t\tif(metalness==0.) return;\n\t\t\t#endif\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\tif(-viewZ>=cameraFar) return;\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ+cameraProjectionMatrix[3][3];\n\t\t\tvec3 viewPosition=getViewPosition( vUv, depth, clipW );\n\n\t\t\tvec2 d0=gl_FragCoord.xy;\n\t\t\tvec2 d1;\n\n\t\t\tvec3 viewNormal=getViewNormal( vUv );\n\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tvec3 viewIncidenceDir=normalize(viewPosition);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#else\n\t\t\t\tvec3 viewIncidenceDir=vec3(0,0,-1);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#endif\n\n\t\t\tfloat maxReflectRayLen=maxDistance/dot(-viewIncidenceDir,viewNormal);\n\t\t\t// dot(a,b)==length(a)*length(b)*cos(theta) // https://www.mathsisfun.com/algebra/vectors-dot-product.html\n\t\t\t// if(a.isNormalized&&b.isNormalized) dot(a,b)==cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen=cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen==dot(a,b)\n\t\t\t// maxReflectRayLen==maxDistance/dot(a,b)\n\n\t\t\tvec3 d1viewPosition=viewPosition+viewReflectDir*maxReflectRayLen;\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tif(d1viewPosition.z>-cameraNear){\n\t\t\t\t\t//https://tutorial.math.lamar.edu/Classes/CalcIII/EqnsOfLines.aspx\n\t\t\t\t\tfloat t=(-cameraNear-viewPosition.z)/viewReflectDir.z;\n\t\t\t\t\td1viewPosition=viewPosition+viewReflectDir*t;\n\t\t\t\t}\n\t\t\t#endif\n\t\t\td1=viewPositionToXY(d1viewPosition);\n\n\t\t\tfloat totalLen=length(d1-d0);\n\t\t\tfloat xLen=d1.x-d0.x;\n\t\t\tfloat yLen=d1.y-d0.y;\n\t\t\tfloat totalStep=max(abs(xLen),abs(yLen));\n\t\t\tfloat xSpan=xLen/totalStep;\n\t\t\tfloat ySpan=yLen/totalStep;\n\t\t\tfor(float i=0.;i<MAX_STEP;i++){\n\t\t\t\tif(i>=totalStep) break;\n\t\t\t\tvec2 xy=vec2(d0.x+i*xSpan,d0.y+i*ySpan);\n\t\t\t\tif(xy.x<0.||xy.x>resolution.x||xy.y<0.||xy.y>resolution.y) break;\n\t\t\t\tfloat s=length(xy-d0)/totalLen;\n\t\t\t\tvec2 uv=xy/resolution;\n\n\t\t\t\tfloat d = getDepth(uv);\n\t\t\t\tfloat vZ = getViewZ( d );\n\t\t\t\tif(-vZ>=cameraFar) continue;\n\t\t\t\tfloat cW = cameraProjectionMatrix[2][3] * vZ+cameraProjectionMatrix[3][3];\n\t\t\t\tvec3 vP=getViewPosition( uv, d, cW );\n\n\t\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\t\t// https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf\n\t\t\t\t\tfloat recipVPZ=1./viewPosition.z;\n\t\t\t\t\tfloat viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));\n\t\t\t\t\tfloat sD=surfDist*cW;\n\t\t\t\t#else\n\t\t\t\t\tfloat viewReflectRayZ=viewPosition.z+s*(d1viewPosition.z-viewPosition.z);\n\t\t\t\t\tfloat sD=surfDist;\n\t\t\t\t#endif\n\t\t\t\tif(viewReflectRayZ-sD>vZ) continue;\n\n\t\t\t\t#ifdef isInfiniteThick\n\t\t\t\t\tif(viewReflectRayZ+thickTolerance*clipW<vP.z) break;\n\t\t\t\t#endif\n\t\t\t\tfloat away=pointToLineDistance(vP,viewPosition,d1viewPosition);\n\n\t\t\t\tfloat op=opacity;\n\n\t\t\t\tif(away<sD){\n\t\t\t\t\tvec3 vN=getViewNormal( uv );\n\t\t\t\t\tif(dot(viewReflectDir,vN)>=0.) continue;\n\t\t\t\t\tfloat distance=pointPlaneDistance(vP,viewPosition,viewNormal);\n\t\t\t\t\tif(distance>maxDistance) break;\n\t\t\t\t\t#ifdef isDistanceAttenuation\n\t\t\t\t\t\tfloat ratio=1.-(distance/maxDistance);\n\t\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t\t#endif\n\t\t\t\t\t#ifdef isFresnel\n\t\t\t\t\t\tfloat fresnel=(dot(viewIncidenceDir,viewReflectDir)+1.)/2.;\n\t\t\t\t\t\top*=fresnel;\n\t\t\t\t\t#endif\n\t\t\t\t\tvec4 reflectColor=texture2D(tDiffuse,uv);\n\t\t\t\t\tgl_FragColor.xyz=reflectColor.xyz;\n\t\t\t\t\tgl_FragColor.a=op;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t`,\n}\n\nexport const SSRDepthShader = {\n defines: {\n PERSPECTIVE_CAMERA: 1,\n },\n\n uniforms: {\n tDepth: { value: null },\n cameraNear: { value: null },\n cameraFar: { value: null },\n },\n\n vertexShader: /* glsl */ `\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n `,\n\n fragmentShader: /* glsl */ `\n\n uniform sampler2D tDepth;\n\n uniform float cameraNear;\n uniform float cameraFar;\n\n varying vec2 vUv;\n\n #include <packing>\n\n\t\tfloat getLinearDepth( const in vec2 uv ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, uv ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, uv ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n void main() {\n\n \tfloat depth = getLinearDepth( vUv );\n\t\t\tfloat d = 1.0 - depth;\n\t\t\t// d=(d-.999)*1000.;\n \tgl_FragColor = vec4( vec3( d ), 1.0 );\n\n }\n\n `,\n}\n\nexport const SSRBlurShader = {\n uniforms: {\n tDiffuse: { value: null },\n resolution: { value: new Vector2() },\n opacity: { value: 0.5 },\n },\n\n vertexShader: /* glsl */ `\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n `,\n\n fragmentShader: /* glsl */ `\n\n uniform sampler2D tDiffuse;\n uniform vec2 resolution;\n varying vec2 vUv;\n void main() {\n\t\t\t//reverse engineering from PhotoShop blur filter, then change coefficient\n\n \tvec2 texelSize = ( 1.0 / resolution );\n\n\t\t\tvec4 c=texture2D(tDiffuse,vUv);\n\n\t\t\tvec2 offset;\n\n\t\t\toffset=(vec2(-1,0))*texelSize;\n\t\t\tvec4 cl=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(1,0))*texelSize;\n\t\t\tvec4 cr=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,-1))*texelSize;\n\t\t\tvec4 cb=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,1))*texelSize;\n\t\t\tvec4 ct=texture2D(tDiffuse,vUv+offset);\n\n\t\t\t// float coeCenter=.5;\n\t\t\t// float coeSide=.125;\n\t\t\tfloat coeCenter=.2;\n\t\t\tfloat coeSide=.2;\n\t\t\tfloat a=c.a*coeCenter+cl.a*coeSide+cr.a*coeSide+cb.a*coeSide+ct.a*coeSide;\n\t\t\tvec3 rgb=(c.rgb*c.a*coeCenter+cl.rgb*cl.a*coeSide+cr.rgb*cr.a*coeSide+cb.rgb*cb.a*coeSide+ct.rgb*ct.a*coeSide)/a;\n\t\t\tgl_FragColor=vec4(rgb,a);\n\n\t\t}\n\t`,\n}\n"],"names":[],"mappings":"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"}
|
package/shaders/SepiaShader.cjs
CHANGED
@@ -5,42 +5,26 @@ const SepiaShader = {
|
|
5
5
|
tDiffuse: { value: null },
|
6
6
|
amount: { value: 1 }
|
7
7
|
},
|
8
|
-
vertexShader:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
varying vec2 vUv;
|
29
|
-
|
30
|
-
void main() {
|
31
|
-
|
32
|
-
vec4 color = texture2D( tDiffuse, vUv );
|
33
|
-
vec3 c = color.rgb;
|
34
|
-
|
35
|
-
color.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );
|
36
|
-
color.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );
|
37
|
-
color.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );
|
38
|
-
|
39
|
-
gl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );
|
40
|
-
|
41
|
-
}
|
42
|
-
`
|
43
|
-
)
|
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
|
+
"uniform float amount;",
|
17
|
+
"uniform sampler2D tDiffuse;",
|
18
|
+
"varying vec2 vUv;",
|
19
|
+
"void main() {",
|
20
|
+
" vec4 color = texture2D( tDiffuse, vUv );",
|
21
|
+
" vec3 c = color.rgb;",
|
22
|
+
" color.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );",
|
23
|
+
" color.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );",
|
24
|
+
" color.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );",
|
25
|
+
" gl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );",
|
26
|
+
"}"
|
27
|
+
].join("\n")
|
44
28
|
};
|
45
29
|
exports.SepiaShader = SepiaShader;
|
46
30
|
//# sourceMappingURL=SepiaShader.cjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SepiaShader.cjs","sources":["../../src/shaders/SepiaShader.ts"],"sourcesContent":["/**\n * Sepia tone shader\n * based on glfx.js sepia shader\n * https://github.com/evanw/glfx.js\n */\n\nexport const SepiaShader = {\n uniforms: {\n tDiffuse: { value: null },\n amount: { value: 1.0 },\n },\n\n vertexShader:
|
1
|
+
{"version":3,"file":"SepiaShader.cjs","sources":["../../src/shaders/SepiaShader.ts"],"sourcesContent":["/**\n * Sepia tone shader\n * based on glfx.js sepia shader\n * https://github.com/evanw/glfx.js\n */\n\nexport const SepiaShader = {\n uniforms: {\n tDiffuse: { value: null },\n amount: { value: 1.0 },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float amount;',\n\n 'uniform sampler2D tDiffuse;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 color = texture2D( tDiffuse, vUv );',\n '\tvec3 c = color.rgb;',\n\n '\tcolor.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );',\n '\tcolor.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );',\n '\tcolor.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );',\n\n '\tgl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":";;AAMO,MAAM,cAAc;AAAA,EACzB,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,QAAQ,EAAE,OAAO,EAAI;AAAA,EACvB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;;"}
|
package/shaders/SepiaShader.js
CHANGED
@@ -3,42 +3,26 @@ const SepiaShader = {
|
|
3
3
|
tDiffuse: { value: null },
|
4
4
|
amount: { value: 1 }
|
5
5
|
},
|
6
|
-
vertexShader:
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
varying vec2 vUv;
|
27
|
-
|
28
|
-
void main() {
|
29
|
-
|
30
|
-
vec4 color = texture2D( tDiffuse, vUv );
|
31
|
-
vec3 c = color.rgb;
|
32
|
-
|
33
|
-
color.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );
|
34
|
-
color.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );
|
35
|
-
color.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );
|
36
|
-
|
37
|
-
gl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );
|
38
|
-
|
39
|
-
}
|
40
|
-
`
|
41
|
-
)
|
6
|
+
vertexShader: [
|
7
|
+
"varying vec2 vUv;",
|
8
|
+
"void main() {",
|
9
|
+
" vUv = uv;",
|
10
|
+
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
11
|
+
"}"
|
12
|
+
].join("\n"),
|
13
|
+
fragmentShader: [
|
14
|
+
"uniform float amount;",
|
15
|
+
"uniform sampler2D tDiffuse;",
|
16
|
+
"varying vec2 vUv;",
|
17
|
+
"void main() {",
|
18
|
+
" vec4 color = texture2D( tDiffuse, vUv );",
|
19
|
+
" vec3 c = color.rgb;",
|
20
|
+
" color.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );",
|
21
|
+
" color.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );",
|
22
|
+
" color.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );",
|
23
|
+
" gl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );",
|
24
|
+
"}"
|
25
|
+
].join("\n")
|
42
26
|
};
|
43
27
|
export {
|
44
28
|
SepiaShader
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SepiaShader.js","sources":["../../src/shaders/SepiaShader.ts"],"sourcesContent":["/**\n * Sepia tone shader\n * based on glfx.js sepia shader\n * https://github.com/evanw/glfx.js\n */\n\nexport const SepiaShader = {\n uniforms: {\n tDiffuse: { value: null },\n amount: { value: 1.0 },\n },\n\n vertexShader:
|
1
|
+
{"version":3,"file":"SepiaShader.js","sources":["../../src/shaders/SepiaShader.ts"],"sourcesContent":["/**\n * Sepia tone shader\n * based on glfx.js sepia shader\n * https://github.com/evanw/glfx.js\n */\n\nexport const SepiaShader = {\n uniforms: {\n tDiffuse: { value: null },\n amount: { value: 1.0 },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform float amount;',\n\n 'uniform sampler2D tDiffuse;',\n\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 color = texture2D( tDiffuse, vUv );',\n '\tvec3 c = color.rgb;',\n\n '\tcolor.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );',\n '\tcolor.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );',\n '\tcolor.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );',\n\n '\tgl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":"AAMO,MAAM,cAAc;AAAA,EACzB,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,QAAQ,EAAE,OAAO,EAAI;AAAA,EACvB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;"}
|
@@ -4,79 +4,52 @@ const THREE = require("three");
|
|
4
4
|
const SobelOperatorShader = {
|
5
5
|
uniforms: {
|
6
6
|
tDiffuse: { value: null },
|
7
|
-
resolution: { value:
|
7
|
+
resolution: { value: new THREE.Vector2() }
|
8
8
|
},
|
9
|
-
vertexShader:
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
),
|
23
|
-
fragmentShader: (
|
24
|
-
/* glsl */
|
25
|
-
`
|
26
|
-
uniform sampler2D tDiffuse;
|
27
|
-
uniform vec2 resolution;
|
28
|
-
varying vec2 vUv;
|
29
|
-
|
30
|
-
void main() {
|
31
|
-
|
32
|
-
vec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );
|
33
|
-
|
9
|
+
vertexShader: [
|
10
|
+
"varying vec2 vUv;",
|
11
|
+
"void main() {",
|
12
|
+
" vUv = uv;",
|
13
|
+
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
14
|
+
"}"
|
15
|
+
].join("\n"),
|
16
|
+
fragmentShader: [
|
17
|
+
"uniform sampler2D tDiffuse;",
|
18
|
+
"uniform vec2 resolution;",
|
19
|
+
"varying vec2 vUv;",
|
20
|
+
"void main() {",
|
21
|
+
" vec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );",
|
34
22
|
// kernel definition (in glsl matrices are filled in column-major order)
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
23
|
+
" const mat3 Gx = mat3( -1, -2, -1, 0, 0, 0, 1, 2, 1 );",
|
24
|
+
// x direction kernel
|
25
|
+
" const mat3 Gy = mat3( -1, 0, 1, -2, 0, 2, -1, 0, 1 );",
|
26
|
+
// y direction kernel
|
39
27
|
// fetch the 3x3 neighbourhood of a fragment
|
40
|
-
|
41
28
|
// first column
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
float tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;
|
46
|
-
|
29
|
+
" float tx0y0 = texture2D( tDiffuse, vUv + texel * vec2( -1, -1 ) ).r;",
|
30
|
+
" float tx0y1 = texture2D( tDiffuse, vUv + texel * vec2( -1, 0 ) ).r;",
|
31
|
+
" float tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;",
|
47
32
|
// second column
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
float tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;
|
52
|
-
|
33
|
+
" float tx1y0 = texture2D( tDiffuse, vUv + texel * vec2( 0, -1 ) ).r;",
|
34
|
+
" float tx1y1 = texture2D( tDiffuse, vUv + texel * vec2( 0, 0 ) ).r;",
|
35
|
+
" float tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;",
|
53
36
|
// third column
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
float tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;
|
58
|
-
|
37
|
+
" float tx2y0 = texture2D( tDiffuse, vUv + texel * vec2( 1, -1 ) ).r;",
|
38
|
+
" float tx2y1 = texture2D( tDiffuse, vUv + texel * vec2( 1, 0 ) ).r;",
|
39
|
+
" float tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;",
|
59
40
|
// gradient value in x direction
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
Gx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2;
|
64
|
-
|
41
|
+
" float valueGx = Gx[0][0] * tx0y0 + Gx[1][0] * tx1y0 + Gx[2][0] * tx2y0 + ",
|
42
|
+
" Gx[0][1] * tx0y1 + Gx[1][1] * tx1y1 + Gx[2][1] * tx2y1 + ",
|
43
|
+
" Gx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2; ",
|
65
44
|
// gradient value in y direction
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
Gy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2;
|
70
|
-
|
45
|
+
" float valueGy = Gy[0][0] * tx0y0 + Gy[1][0] * tx1y0 + Gy[2][0] * tx2y0 + ",
|
46
|
+
" Gy[0][1] * tx0y1 + Gy[1][1] * tx1y1 + Gy[2][1] * tx2y1 + ",
|
47
|
+
" Gy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2; ",
|
71
48
|
// magnitute of the total gradient
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
}
|
78
|
-
`
|
79
|
-
)
|
49
|
+
" float G = sqrt( ( valueGx * valueGx ) + ( valueGy * valueGy ) );",
|
50
|
+
" gl_FragColor = vec4( vec3( G ), 1 );",
|
51
|
+
"}"
|
52
|
+
].join("\n")
|
80
53
|
};
|
81
54
|
exports.SobelOperatorShader = SobelOperatorShader;
|
82
55
|
//# sourceMappingURL=SobelOperatorShader.cjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SobelOperatorShader.cjs","sources":["../../src/shaders/SobelOperatorShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Sobel Edge Detection (see https://youtu.be/uihBwtPIBxM)\n *\n * As mentioned in the video the Sobel operator expects a grayscale image as input.\n *\n */\n\nexport const SobelOperatorShader = {\n uniforms: {\n tDiffuse: { value: null },\n resolution: { value:
|
1
|
+
{"version":3,"file":"SobelOperatorShader.cjs","sources":["../../src/shaders/SobelOperatorShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Sobel Edge Detection (see https://youtu.be/uihBwtPIBxM)\n *\n * As mentioned in the video the Sobel operator expects a grayscale image as input.\n *\n */\n\nexport const SobelOperatorShader = {\n uniforms: {\n tDiffuse: { value: null },\n resolution: { value: new Vector2() },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform sampler2D tDiffuse;',\n 'uniform vec2 resolution;',\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );',\n\n // kernel definition (in glsl matrices are filled in column-major order)\n\n '\tconst mat3 Gx = mat3( -1, -2, -1, 0, 0, 0, 1, 2, 1 );', // x direction kernel\n '\tconst mat3 Gy = mat3( -1, 0, 1, -2, 0, 2, -1, 0, 1 );', // y direction kernel\n\n // fetch the 3x3 neighbourhood of a fragment\n\n // first column\n\n '\tfloat tx0y0 = texture2D( tDiffuse, vUv + texel * vec2( -1, -1 ) ).r;',\n '\tfloat tx0y1 = texture2D( tDiffuse, vUv + texel * vec2( -1, 0 ) ).r;',\n '\tfloat tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;',\n\n // second column\n\n '\tfloat tx1y0 = texture2D( tDiffuse, vUv + texel * vec2( 0, -1 ) ).r;',\n '\tfloat tx1y1 = texture2D( tDiffuse, vUv + texel * vec2( 0, 0 ) ).r;',\n '\tfloat tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;',\n\n // third column\n\n '\tfloat tx2y0 = texture2D( tDiffuse, vUv + texel * vec2( 1, -1 ) ).r;',\n '\tfloat tx2y1 = texture2D( tDiffuse, vUv + texel * vec2( 1, 0 ) ).r;',\n '\tfloat tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;',\n\n // gradient value in x direction\n\n '\tfloat valueGx = Gx[0][0] * tx0y0 + Gx[1][0] * tx1y0 + Gx[2][0] * tx2y0 + ',\n '\t\tGx[0][1] * tx0y1 + Gx[1][1] * tx1y1 + Gx[2][1] * tx2y1 + ',\n '\t\tGx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2; ',\n\n // gradient value in y direction\n\n '\tfloat valueGy = Gy[0][0] * tx0y0 + Gy[1][0] * tx1y0 + Gy[2][0] * tx2y0 + ',\n '\t\tGy[0][1] * tx0y1 + Gy[1][1] * tx1y1 + Gy[2][1] * tx2y1 + ',\n '\t\tGy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2; ',\n\n // magnitute of the total gradient\n\n '\tfloat G = sqrt( ( valueGx * valueGx ) + ( valueGy * valueGy ) );',\n\n '\tgl_FragColor = vec4( vec3( G ), 1 );',\n\n '}',\n ].join('\\n'),\n}\n"],"names":["Vector2"],"mappings":";;;AASO,MAAM,sBAAsB;AAAA,EACjC,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,YAAY,EAAE,OAAO,IAAIA,MAAAA,UAAU;AAAA,EACrC;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAIA;AAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;;"}
|
@@ -2,79 +2,52 @@ import { Vector2 } from "three";
|
|
2
2
|
const SobelOperatorShader = {
|
3
3
|
uniforms: {
|
4
4
|
tDiffuse: { value: null },
|
5
|
-
resolution: { value:
|
5
|
+
resolution: { value: new Vector2() }
|
6
6
|
},
|
7
|
-
vertexShader:
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
),
|
21
|
-
fragmentShader: (
|
22
|
-
/* glsl */
|
23
|
-
`
|
24
|
-
uniform sampler2D tDiffuse;
|
25
|
-
uniform vec2 resolution;
|
26
|
-
varying vec2 vUv;
|
27
|
-
|
28
|
-
void main() {
|
29
|
-
|
30
|
-
vec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );
|
31
|
-
|
7
|
+
vertexShader: [
|
8
|
+
"varying vec2 vUv;",
|
9
|
+
"void main() {",
|
10
|
+
" vUv = uv;",
|
11
|
+
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
12
|
+
"}"
|
13
|
+
].join("\n"),
|
14
|
+
fragmentShader: [
|
15
|
+
"uniform sampler2D tDiffuse;",
|
16
|
+
"uniform vec2 resolution;",
|
17
|
+
"varying vec2 vUv;",
|
18
|
+
"void main() {",
|
19
|
+
" vec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );",
|
32
20
|
// kernel definition (in glsl matrices are filled in column-major order)
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
21
|
+
" const mat3 Gx = mat3( -1, -2, -1, 0, 0, 0, 1, 2, 1 );",
|
22
|
+
// x direction kernel
|
23
|
+
" const mat3 Gy = mat3( -1, 0, 1, -2, 0, 2, -1, 0, 1 );",
|
24
|
+
// y direction kernel
|
37
25
|
// fetch the 3x3 neighbourhood of a fragment
|
38
|
-
|
39
26
|
// first column
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
float tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;
|
44
|
-
|
27
|
+
" float tx0y0 = texture2D( tDiffuse, vUv + texel * vec2( -1, -1 ) ).r;",
|
28
|
+
" float tx0y1 = texture2D( tDiffuse, vUv + texel * vec2( -1, 0 ) ).r;",
|
29
|
+
" float tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;",
|
45
30
|
// second column
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
float tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;
|
50
|
-
|
31
|
+
" float tx1y0 = texture2D( tDiffuse, vUv + texel * vec2( 0, -1 ) ).r;",
|
32
|
+
" float tx1y1 = texture2D( tDiffuse, vUv + texel * vec2( 0, 0 ) ).r;",
|
33
|
+
" float tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;",
|
51
34
|
// third column
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
float tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;
|
56
|
-
|
35
|
+
" float tx2y0 = texture2D( tDiffuse, vUv + texel * vec2( 1, -1 ) ).r;",
|
36
|
+
" float tx2y1 = texture2D( tDiffuse, vUv + texel * vec2( 1, 0 ) ).r;",
|
37
|
+
" float tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;",
|
57
38
|
// gradient value in x direction
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
Gx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2;
|
62
|
-
|
39
|
+
" float valueGx = Gx[0][0] * tx0y0 + Gx[1][0] * tx1y0 + Gx[2][0] * tx2y0 + ",
|
40
|
+
" Gx[0][1] * tx0y1 + Gx[1][1] * tx1y1 + Gx[2][1] * tx2y1 + ",
|
41
|
+
" Gx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2; ",
|
63
42
|
// gradient value in y direction
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
Gy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2;
|
68
|
-
|
43
|
+
" float valueGy = Gy[0][0] * tx0y0 + Gy[1][0] * tx1y0 + Gy[2][0] * tx2y0 + ",
|
44
|
+
" Gy[0][1] * tx0y1 + Gy[1][1] * tx1y1 + Gy[2][1] * tx2y1 + ",
|
45
|
+
" Gy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2; ",
|
69
46
|
// magnitute of the total gradient
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
}
|
76
|
-
`
|
77
|
-
)
|
47
|
+
" float G = sqrt( ( valueGx * valueGx ) + ( valueGy * valueGy ) );",
|
48
|
+
" gl_FragColor = vec4( vec3( G ), 1 );",
|
49
|
+
"}"
|
50
|
+
].join("\n")
|
78
51
|
};
|
79
52
|
export {
|
80
53
|
SobelOperatorShader
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SobelOperatorShader.js","sources":["../../src/shaders/SobelOperatorShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Sobel Edge Detection (see https://youtu.be/uihBwtPIBxM)\n *\n * As mentioned in the video the Sobel operator expects a grayscale image as input.\n *\n */\n\nexport const SobelOperatorShader = {\n uniforms: {\n tDiffuse: { value: null },\n resolution: { value:
|
1
|
+
{"version":3,"file":"SobelOperatorShader.js","sources":["../../src/shaders/SobelOperatorShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Sobel Edge Detection (see https://youtu.be/uihBwtPIBxM)\n *\n * As mentioned in the video the Sobel operator expects a grayscale image as input.\n *\n */\n\nexport const SobelOperatorShader = {\n uniforms: {\n tDiffuse: { value: null },\n resolution: { value: new Vector2() },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform sampler2D tDiffuse;',\n 'uniform vec2 resolution;',\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );',\n\n // kernel definition (in glsl matrices are filled in column-major order)\n\n '\tconst mat3 Gx = mat3( -1, -2, -1, 0, 0, 0, 1, 2, 1 );', // x direction kernel\n '\tconst mat3 Gy = mat3( -1, 0, 1, -2, 0, 2, -1, 0, 1 );', // y direction kernel\n\n // fetch the 3x3 neighbourhood of a fragment\n\n // first column\n\n '\tfloat tx0y0 = texture2D( tDiffuse, vUv + texel * vec2( -1, -1 ) ).r;',\n '\tfloat tx0y1 = texture2D( tDiffuse, vUv + texel * vec2( -1, 0 ) ).r;',\n '\tfloat tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;',\n\n // second column\n\n '\tfloat tx1y0 = texture2D( tDiffuse, vUv + texel * vec2( 0, -1 ) ).r;',\n '\tfloat tx1y1 = texture2D( tDiffuse, vUv + texel * vec2( 0, 0 ) ).r;',\n '\tfloat tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;',\n\n // third column\n\n '\tfloat tx2y0 = texture2D( tDiffuse, vUv + texel * vec2( 1, -1 ) ).r;',\n '\tfloat tx2y1 = texture2D( tDiffuse, vUv + texel * vec2( 1, 0 ) ).r;',\n '\tfloat tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;',\n\n // gradient value in x direction\n\n '\tfloat valueGx = Gx[0][0] * tx0y0 + Gx[1][0] * tx1y0 + Gx[2][0] * tx2y0 + ',\n '\t\tGx[0][1] * tx0y1 + Gx[1][1] * tx1y1 + Gx[2][1] * tx2y1 + ',\n '\t\tGx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2; ',\n\n // gradient value in y direction\n\n '\tfloat valueGy = Gy[0][0] * tx0y0 + Gy[1][0] * tx1y0 + Gy[2][0] * tx2y0 + ',\n '\t\tGy[0][1] * tx0y1 + Gy[1][1] * tx1y1 + Gy[2][1] * tx2y1 + ',\n '\t\tGy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2; ',\n\n // magnitute of the total gradient\n\n '\tfloat G = sqrt( ( valueGx * valueGx ) + ( valueGy * valueGy ) );',\n\n '\tgl_FragColor = vec4( vec3( G ), 1 );',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":";AASO,MAAM,sBAAsB;AAAA,EACjC,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,YAAY,EAAE,OAAO,IAAI,UAAU;AAAA,EACrC;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA;AAAA,IAIA;AAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAIA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;"}
|
@@ -4,35 +4,22 @@ const TechnicolorShader = {
|
|
4
4
|
uniforms: {
|
5
5
|
tDiffuse: { value: null }
|
6
6
|
},
|
7
|
-
vertexShader:
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
uniform sampler2D tDiffuse;
|
24
|
-
varying vec2 vUv;
|
25
|
-
|
26
|
-
void main() {
|
27
|
-
|
28
|
-
vec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );
|
29
|
-
vec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);
|
30
|
-
|
31
|
-
gl_FragColor = newTex;
|
32
|
-
|
33
|
-
}
|
34
|
-
`
|
35
|
-
)
|
7
|
+
vertexShader: [
|
8
|
+
"varying vec2 vUv;",
|
9
|
+
"void main() {",
|
10
|
+
" vUv = uv;",
|
11
|
+
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
12
|
+
"}"
|
13
|
+
].join("\n"),
|
14
|
+
fragmentShader: [
|
15
|
+
"uniform sampler2D tDiffuse;",
|
16
|
+
"varying vec2 vUv;",
|
17
|
+
"void main() {",
|
18
|
+
" vec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );",
|
19
|
+
" vec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);",
|
20
|
+
" gl_FragColor = newTex;",
|
21
|
+
"}"
|
22
|
+
].join("\n")
|
36
23
|
};
|
37
24
|
exports.TechnicolorShader = TechnicolorShader;
|
38
25
|
//# sourceMappingURL=TechnicolorShader.cjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TechnicolorShader.cjs","sources":["../../src/shaders/TechnicolorShader.ts"],"sourcesContent":["/**\n * Technicolor Shader\n * Simulates the look of the two-strip technicolor process popular in early 20th century films.\n * More historical info here: http://www.widescreenmuseum.com/oldcolor/technicolor1.htm\n * Demo here: http://charliehoey.com/technicolor_shader/shader_test.html\n */\n\nexport const TechnicolorShader = {\n uniforms: {\n tDiffuse: { value: null },\n },\n\n vertexShader:
|
1
|
+
{"version":3,"file":"TechnicolorShader.cjs","sources":["../../src/shaders/TechnicolorShader.ts"],"sourcesContent":["/**\n * Technicolor Shader\n * Simulates the look of the two-strip technicolor process popular in early 20th century films.\n * More historical info here: http://www.widescreenmuseum.com/oldcolor/technicolor1.htm\n * Demo here: http://charliehoey.com/technicolor_shader/shader_test.html\n */\n\nexport const TechnicolorShader = {\n uniforms: {\n tDiffuse: { value: null },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform sampler2D tDiffuse;',\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );',\n '\tvec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);',\n\n '\tgl_FragColor = newTex;',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":";;AAOO,MAAM,oBAAoB;AAAA,EAC/B,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,EAC1B;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;;"}
|
@@ -2,35 +2,22 @@ const TechnicolorShader = {
|
|
2
2
|
uniforms: {
|
3
3
|
tDiffuse: { value: null }
|
4
4
|
},
|
5
|
-
vertexShader:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
uniform sampler2D tDiffuse;
|
22
|
-
varying vec2 vUv;
|
23
|
-
|
24
|
-
void main() {
|
25
|
-
|
26
|
-
vec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );
|
27
|
-
vec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);
|
28
|
-
|
29
|
-
gl_FragColor = newTex;
|
30
|
-
|
31
|
-
}
|
32
|
-
`
|
33
|
-
)
|
5
|
+
vertexShader: [
|
6
|
+
"varying vec2 vUv;",
|
7
|
+
"void main() {",
|
8
|
+
" vUv = uv;",
|
9
|
+
" gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
10
|
+
"}"
|
11
|
+
].join("\n"),
|
12
|
+
fragmentShader: [
|
13
|
+
"uniform sampler2D tDiffuse;",
|
14
|
+
"varying vec2 vUv;",
|
15
|
+
"void main() {",
|
16
|
+
" vec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );",
|
17
|
+
" vec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);",
|
18
|
+
" gl_FragColor = newTex;",
|
19
|
+
"}"
|
20
|
+
].join("\n")
|
34
21
|
};
|
35
22
|
export {
|
36
23
|
TechnicolorShader
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TechnicolorShader.js","sources":["../../src/shaders/TechnicolorShader.ts"],"sourcesContent":["/**\n * Technicolor Shader\n * Simulates the look of the two-strip technicolor process popular in early 20th century films.\n * More historical info here: http://www.widescreenmuseum.com/oldcolor/technicolor1.htm\n * Demo here: http://charliehoey.com/technicolor_shader/shader_test.html\n */\n\nexport const TechnicolorShader = {\n uniforms: {\n tDiffuse: { value: null },\n },\n\n vertexShader:
|
1
|
+
{"version":3,"file":"TechnicolorShader.js","sources":["../../src/shaders/TechnicolorShader.ts"],"sourcesContent":["/**\n * Technicolor Shader\n * Simulates the look of the two-strip technicolor process popular in early 20th century films.\n * More historical info here: http://www.widescreenmuseum.com/oldcolor/technicolor1.htm\n * Demo here: http://charliehoey.com/technicolor_shader/shader_test.html\n */\n\nexport const TechnicolorShader = {\n uniforms: {\n tDiffuse: { value: null },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform sampler2D tDiffuse;',\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );',\n '\tvec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);',\n\n '\tgl_FragColor = newTex;',\n\n '}',\n ].join('\\n'),\n}\n"],"names":[],"mappings":"AAOO,MAAM,oBAAoB;AAAA,EAC/B,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,EAC1B;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;"}
|