three-stdlib 2.24.2 → 2.25.1
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 +2 -0
- package/index.cjs +116401 -611
- package/index.js +116037 -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 -787
- package/controls/OrbitControls.js +0 -787
- 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/objects/Sky.js
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => {
|
|
4
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
return value;
|
|
6
|
-
};
|
|
7
|
-
import { Vector3, REVISION, ShaderMaterial, UniformsUtils, BackSide, Mesh, BoxGeometry } from "three";
|
|
8
|
-
const SkyShader = {
|
|
9
|
-
uniforms: {
|
|
10
|
-
turbidity: { value: 2 },
|
|
11
|
-
rayleigh: { value: 1 },
|
|
12
|
-
mieCoefficient: { value: 5e-3 },
|
|
13
|
-
mieDirectionalG: { value: 0.8 },
|
|
14
|
-
sunPosition: { value: /* @__PURE__ */ new Vector3() },
|
|
15
|
-
up: { value: /* @__PURE__ */ new Vector3(0, 1, 0) }
|
|
16
|
-
},
|
|
17
|
-
vertexShader: (
|
|
18
|
-
/* glsl */
|
|
19
|
-
`
|
|
20
|
-
uniform vec3 sunPosition;
|
|
21
|
-
uniform float rayleigh;
|
|
22
|
-
uniform float turbidity;
|
|
23
|
-
uniform float mieCoefficient;
|
|
24
|
-
uniform vec3 up;
|
|
25
|
-
|
|
26
|
-
varying vec3 vWorldPosition;
|
|
27
|
-
varying vec3 vSunDirection;
|
|
28
|
-
varying float vSunfade;
|
|
29
|
-
varying vec3 vBetaR;
|
|
30
|
-
varying vec3 vBetaM;
|
|
31
|
-
varying float vSunE;
|
|
32
|
-
|
|
33
|
-
// constants for atmospheric scattering
|
|
34
|
-
const float e = 2.71828182845904523536028747135266249775724709369995957;
|
|
35
|
-
const float pi = 3.141592653589793238462643383279502884197169;
|
|
36
|
-
|
|
37
|
-
// wavelength of used primaries, according to preetham
|
|
38
|
-
const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );
|
|
39
|
-
// this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function:
|
|
40
|
-
// (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn))
|
|
41
|
-
const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );
|
|
42
|
-
|
|
43
|
-
// mie stuff
|
|
44
|
-
// K coefficient for the primaries
|
|
45
|
-
const float v = 4.0;
|
|
46
|
-
const vec3 K = vec3( 0.686, 0.678, 0.666 );
|
|
47
|
-
// MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K
|
|
48
|
-
const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );
|
|
49
|
-
|
|
50
|
-
// earth shadow hack
|
|
51
|
-
// cutoffAngle = pi / 1.95;
|
|
52
|
-
const float cutoffAngle = 1.6110731556870734;
|
|
53
|
-
const float steepness = 1.5;
|
|
54
|
-
const float EE = 1000.0;
|
|
55
|
-
|
|
56
|
-
float sunIntensity( float zenithAngleCos ) {
|
|
57
|
-
zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );
|
|
58
|
-
return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
vec3 totalMie( float T ) {
|
|
62
|
-
float c = ( 0.2 * T ) * 10E-18;
|
|
63
|
-
return 0.434 * c * MieConst;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
void main() {
|
|
67
|
-
|
|
68
|
-
vec4 worldPosition = modelMatrix * vec4( position, 1.0 );
|
|
69
|
-
vWorldPosition = worldPosition.xyz;
|
|
70
|
-
|
|
71
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
72
|
-
gl_Position.z = gl_Position.w; // set z to camera.far
|
|
73
|
-
|
|
74
|
-
vSunDirection = normalize( sunPosition );
|
|
75
|
-
|
|
76
|
-
vSunE = sunIntensity( dot( vSunDirection, up ) );
|
|
77
|
-
|
|
78
|
-
vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );
|
|
79
|
-
|
|
80
|
-
float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );
|
|
81
|
-
|
|
82
|
-
// extinction (absorbtion + out scattering)
|
|
83
|
-
// rayleigh coefficients
|
|
84
|
-
vBetaR = totalRayleigh * rayleighCoefficient;
|
|
85
|
-
|
|
86
|
-
// mie coefficients
|
|
87
|
-
vBetaM = totalMie( turbidity ) * mieCoefficient;
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
`
|
|
91
|
-
),
|
|
92
|
-
fragmentShader: (
|
|
93
|
-
/* glsl */
|
|
94
|
-
`
|
|
95
|
-
varying vec3 vWorldPosition;
|
|
96
|
-
varying vec3 vSunDirection;
|
|
97
|
-
varying float vSunfade;
|
|
98
|
-
varying vec3 vBetaR;
|
|
99
|
-
varying vec3 vBetaM;
|
|
100
|
-
varying float vSunE;
|
|
101
|
-
|
|
102
|
-
uniform float mieDirectionalG;
|
|
103
|
-
uniform vec3 up;
|
|
104
|
-
|
|
105
|
-
const vec3 cameraPos = vec3( 0.0, 0.0, 0.0 );
|
|
106
|
-
|
|
107
|
-
// constants for atmospheric scattering
|
|
108
|
-
const float pi = 3.141592653589793238462643383279502884197169;
|
|
109
|
-
|
|
110
|
-
const float n = 1.0003; // refractive index of air
|
|
111
|
-
const float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius)
|
|
112
|
-
|
|
113
|
-
// optical length at zenith for molecules
|
|
114
|
-
const float rayleighZenithLength = 8.4E3;
|
|
115
|
-
const float mieZenithLength = 1.25E3;
|
|
116
|
-
// 66 arc seconds -> degrees, and the cosine of that
|
|
117
|
-
const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;
|
|
118
|
-
|
|
119
|
-
// 3.0 / ( 16.0 * pi )
|
|
120
|
-
const float THREE_OVER_SIXTEENPI = 0.05968310365946075;
|
|
121
|
-
// 1.0 / ( 4.0 * pi )
|
|
122
|
-
const float ONE_OVER_FOURPI = 0.07957747154594767;
|
|
123
|
-
|
|
124
|
-
float rayleighPhase( float cosTheta ) {
|
|
125
|
-
return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
float hgPhase( float cosTheta, float g ) {
|
|
129
|
-
float g2 = pow( g, 2.0 );
|
|
130
|
-
float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );
|
|
131
|
-
return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
void main() {
|
|
135
|
-
|
|
136
|
-
vec3 direction = normalize( vWorldPosition - cameraPos );
|
|
137
|
-
|
|
138
|
-
// optical length
|
|
139
|
-
// cutoff angle at 90 to avoid singularity in next formula.
|
|
140
|
-
float zenithAngle = acos( max( 0.0, dot( up, direction ) ) );
|
|
141
|
-
float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );
|
|
142
|
-
float sR = rayleighZenithLength * inverse;
|
|
143
|
-
float sM = mieZenithLength * inverse;
|
|
144
|
-
|
|
145
|
-
// combined extinction factor
|
|
146
|
-
vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );
|
|
147
|
-
|
|
148
|
-
// in scattering
|
|
149
|
-
float cosTheta = dot( direction, vSunDirection );
|
|
150
|
-
|
|
151
|
-
float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );
|
|
152
|
-
vec3 betaRTheta = vBetaR * rPhase;
|
|
153
|
-
|
|
154
|
-
float mPhase = hgPhase( cosTheta, mieDirectionalG );
|
|
155
|
-
vec3 betaMTheta = vBetaM * mPhase;
|
|
156
|
-
|
|
157
|
-
vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );
|
|
158
|
-
Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );
|
|
159
|
-
|
|
160
|
-
// nightsky
|
|
161
|
-
float theta = acos( direction.y ); // elevation --> y-axis, [-pi/2, pi/2]
|
|
162
|
-
float phi = atan( direction.z, direction.x ); // azimuth --> x-axis [-pi/2, pi/2]
|
|
163
|
-
vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );
|
|
164
|
-
vec3 L0 = vec3( 0.1 ) * Fex;
|
|
165
|
-
|
|
166
|
-
// composition + solar disc
|
|
167
|
-
float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );
|
|
168
|
-
L0 += ( vSunE * 19000.0 * Fex ) * sundisk;
|
|
169
|
-
|
|
170
|
-
vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );
|
|
171
|
-
|
|
172
|
-
vec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );
|
|
173
|
-
|
|
174
|
-
gl_FragColor = vec4( retColor, 1.0 );
|
|
175
|
-
|
|
176
|
-
#include <tonemapping_fragment>
|
|
177
|
-
#include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
`
|
|
181
|
-
)
|
|
182
|
-
};
|
|
183
|
-
const material = /* @__PURE__ */ new ShaderMaterial({
|
|
184
|
-
name: "SkyShader",
|
|
185
|
-
fragmentShader: SkyShader.fragmentShader,
|
|
186
|
-
vertexShader: SkyShader.vertexShader,
|
|
187
|
-
uniforms: /* @__PURE__ */ UniformsUtils.clone(SkyShader.uniforms),
|
|
188
|
-
side: BackSide,
|
|
189
|
-
depthWrite: false
|
|
190
|
-
});
|
|
191
|
-
class Sky extends Mesh {
|
|
192
|
-
constructor() {
|
|
193
|
-
super(new BoxGeometry(1, 1, 1), material);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
__publicField(Sky, "SkyShader", SkyShader);
|
|
197
|
-
__publicField(Sky, "material", material);
|
|
198
|
-
export {
|
|
199
|
-
Sky
|
|
200
|
-
};
|
package/objects/Water.cjs
DELETED
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const THREE = require("three");
|
|
4
|
-
class Water extends THREE.Mesh {
|
|
5
|
-
constructor(geometry, options = {}) {
|
|
6
|
-
super(geometry);
|
|
7
|
-
this.isWater = true;
|
|
8
|
-
const scope = this;
|
|
9
|
-
const textureWidth = options.textureWidth !== void 0 ? options.textureWidth : 512;
|
|
10
|
-
const textureHeight = options.textureHeight !== void 0 ? options.textureHeight : 512;
|
|
11
|
-
const clipBias = options.clipBias !== void 0 ? options.clipBias : 0;
|
|
12
|
-
const alpha = options.alpha !== void 0 ? options.alpha : 1;
|
|
13
|
-
const time = options.time !== void 0 ? options.time : 0;
|
|
14
|
-
const normalSampler = options.waterNormals !== void 0 ? options.waterNormals : null;
|
|
15
|
-
const sunDirection = options.sunDirection !== void 0 ? options.sunDirection : new THREE.Vector3(0.70707, 0.70707, 0);
|
|
16
|
-
const sunColor = new THREE.Color(options.sunColor !== void 0 ? options.sunColor : 16777215);
|
|
17
|
-
const waterColor = new THREE.Color(options.waterColor !== void 0 ? options.waterColor : 8355711);
|
|
18
|
-
const eye = options.eye !== void 0 ? options.eye : new THREE.Vector3(0, 0, 0);
|
|
19
|
-
const distortionScale = options.distortionScale !== void 0 ? options.distortionScale : 20;
|
|
20
|
-
const side = options.side !== void 0 ? options.side : THREE.FrontSide;
|
|
21
|
-
const fog = options.fog !== void 0 ? options.fog : false;
|
|
22
|
-
const mirrorPlane = new THREE.Plane();
|
|
23
|
-
const normal = new THREE.Vector3();
|
|
24
|
-
const mirrorWorldPosition = new THREE.Vector3();
|
|
25
|
-
const cameraWorldPosition = new THREE.Vector3();
|
|
26
|
-
const rotationMatrix = new THREE.Matrix4();
|
|
27
|
-
const lookAtPosition = new THREE.Vector3(0, 0, -1);
|
|
28
|
-
const clipPlane = new THREE.Vector4();
|
|
29
|
-
const view = new THREE.Vector3();
|
|
30
|
-
const target = new THREE.Vector3();
|
|
31
|
-
const q = new THREE.Vector4();
|
|
32
|
-
const textureMatrix = new THREE.Matrix4();
|
|
33
|
-
const mirrorCamera = new THREE.PerspectiveCamera();
|
|
34
|
-
const renderTarget = new THREE.WebGLRenderTarget(textureWidth, textureHeight);
|
|
35
|
-
const mirrorShader = {
|
|
36
|
-
uniforms: THREE.UniformsUtils.merge([
|
|
37
|
-
THREE.UniformsLib["fog"],
|
|
38
|
-
THREE.UniformsLib["lights"],
|
|
39
|
-
{
|
|
40
|
-
normalSampler: { value: null },
|
|
41
|
-
mirrorSampler: { value: null },
|
|
42
|
-
alpha: { value: 1 },
|
|
43
|
-
time: { value: 0 },
|
|
44
|
-
size: { value: 1 },
|
|
45
|
-
distortionScale: { value: 20 },
|
|
46
|
-
textureMatrix: { value: new THREE.Matrix4() },
|
|
47
|
-
sunColor: { value: new THREE.Color(8355711) },
|
|
48
|
-
sunDirection: { value: new THREE.Vector3(0.70707, 0.70707, 0) },
|
|
49
|
-
eye: { value: new THREE.Vector3() },
|
|
50
|
-
waterColor: { value: new THREE.Color(5592405) }
|
|
51
|
-
}
|
|
52
|
-
]),
|
|
53
|
-
vertexShader: (
|
|
54
|
-
/* glsl */
|
|
55
|
-
`
|
|
56
|
-
uniform mat4 textureMatrix;
|
|
57
|
-
uniform float time;
|
|
58
|
-
|
|
59
|
-
varying vec4 mirrorCoord;
|
|
60
|
-
varying vec4 worldPosition;
|
|
61
|
-
|
|
62
|
-
#include <common>
|
|
63
|
-
#include <fog_pars_vertex>
|
|
64
|
-
#include <shadowmap_pars_vertex>
|
|
65
|
-
#include <logdepthbuf_pars_vertex>
|
|
66
|
-
|
|
67
|
-
void main() {
|
|
68
|
-
mirrorCoord = modelMatrix * vec4( position, 1.0 );
|
|
69
|
-
worldPosition = mirrorCoord.xyzw;
|
|
70
|
-
mirrorCoord = textureMatrix * mirrorCoord;
|
|
71
|
-
vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
|
|
72
|
-
gl_Position = projectionMatrix * mvPosition;
|
|
73
|
-
|
|
74
|
-
#include <beginnormal_vertex>
|
|
75
|
-
#include <defaultnormal_vertex>
|
|
76
|
-
#include <logdepthbuf_vertex>
|
|
77
|
-
#include <fog_vertex>
|
|
78
|
-
#include <shadowmap_vertex>
|
|
79
|
-
}`
|
|
80
|
-
),
|
|
81
|
-
fragmentShader: (
|
|
82
|
-
/* glsl */
|
|
83
|
-
`
|
|
84
|
-
uniform sampler2D mirrorSampler;
|
|
85
|
-
uniform float alpha;
|
|
86
|
-
uniform float time;
|
|
87
|
-
uniform float size;
|
|
88
|
-
uniform float distortionScale;
|
|
89
|
-
uniform sampler2D normalSampler;
|
|
90
|
-
uniform vec3 sunColor;
|
|
91
|
-
uniform vec3 sunDirection;
|
|
92
|
-
uniform vec3 eye;
|
|
93
|
-
uniform vec3 waterColor;
|
|
94
|
-
|
|
95
|
-
varying vec4 mirrorCoord;
|
|
96
|
-
varying vec4 worldPosition;
|
|
97
|
-
|
|
98
|
-
vec4 getNoise( vec2 uv ) {
|
|
99
|
-
vec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0);
|
|
100
|
-
vec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 );
|
|
101
|
-
vec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 );
|
|
102
|
-
vec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 );
|
|
103
|
-
vec4 noise = texture2D( normalSampler, uv0 ) +
|
|
104
|
-
texture2D( normalSampler, uv1 ) +
|
|
105
|
-
texture2D( normalSampler, uv2 ) +
|
|
106
|
-
texture2D( normalSampler, uv3 );
|
|
107
|
-
return noise * 0.5 - 1.0;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
void sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) {
|
|
111
|
-
vec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) );
|
|
112
|
-
float direction = max( 0.0, dot( eyeDirection, reflection ) );
|
|
113
|
-
specularColor += pow( direction, shiny ) * sunColor * spec;
|
|
114
|
-
diffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
#include <common>
|
|
118
|
-
#include <packing>
|
|
119
|
-
#include <bsdfs>
|
|
120
|
-
#include <fog_pars_fragment>
|
|
121
|
-
#include <logdepthbuf_pars_fragment>
|
|
122
|
-
#include <lights_pars_begin>
|
|
123
|
-
#include <shadowmap_pars_fragment>
|
|
124
|
-
#include <shadowmask_pars_fragment>
|
|
125
|
-
|
|
126
|
-
void main() {
|
|
127
|
-
|
|
128
|
-
#include <logdepthbuf_fragment>
|
|
129
|
-
vec4 noise = getNoise( worldPosition.xz * size );
|
|
130
|
-
vec3 surfaceNormal = normalize( noise.xzy * vec3( 1.5, 1.0, 1.5 ) );
|
|
131
|
-
|
|
132
|
-
vec3 diffuseLight = vec3(0.0);
|
|
133
|
-
vec3 specularLight = vec3(0.0);
|
|
134
|
-
|
|
135
|
-
vec3 worldToEye = eye-worldPosition.xyz;
|
|
136
|
-
vec3 eyeDirection = normalize( worldToEye );
|
|
137
|
-
sunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight );
|
|
138
|
-
|
|
139
|
-
float distance = length(worldToEye);
|
|
140
|
-
|
|
141
|
-
vec2 distortion = surfaceNormal.xz * ( 0.001 + 1.0 / distance ) * distortionScale;
|
|
142
|
-
vec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) );
|
|
143
|
-
|
|
144
|
-
float theta = max( dot( eyeDirection, surfaceNormal ), 0.0 );
|
|
145
|
-
float rf0 = 0.3;
|
|
146
|
-
float reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 );
|
|
147
|
-
vec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor;
|
|
148
|
-
vec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance);
|
|
149
|
-
vec3 outgoingLight = albedo;
|
|
150
|
-
gl_FragColor = vec4( outgoingLight, alpha );
|
|
151
|
-
|
|
152
|
-
#include <tonemapping_fragment>
|
|
153
|
-
#include <${parseInt(THREE.REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
|
|
154
|
-
#include <fog_fragment>
|
|
155
|
-
}`
|
|
156
|
-
)
|
|
157
|
-
};
|
|
158
|
-
const material = new THREE.ShaderMaterial({
|
|
159
|
-
fragmentShader: mirrorShader.fragmentShader,
|
|
160
|
-
vertexShader: mirrorShader.vertexShader,
|
|
161
|
-
uniforms: THREE.UniformsUtils.clone(mirrorShader.uniforms),
|
|
162
|
-
lights: true,
|
|
163
|
-
side,
|
|
164
|
-
fog
|
|
165
|
-
});
|
|
166
|
-
material.uniforms["mirrorSampler"].value = renderTarget.texture;
|
|
167
|
-
material.uniforms["textureMatrix"].value = textureMatrix;
|
|
168
|
-
material.uniforms["alpha"].value = alpha;
|
|
169
|
-
material.uniforms["time"].value = time;
|
|
170
|
-
material.uniforms["normalSampler"].value = normalSampler;
|
|
171
|
-
material.uniforms["sunColor"].value = sunColor;
|
|
172
|
-
material.uniforms["waterColor"].value = waterColor;
|
|
173
|
-
material.uniforms["sunDirection"].value = sunDirection;
|
|
174
|
-
material.uniforms["distortionScale"].value = distortionScale;
|
|
175
|
-
material.uniforms["eye"].value = eye;
|
|
176
|
-
scope.material = material;
|
|
177
|
-
scope.onBeforeRender = function(renderer, scene, camera) {
|
|
178
|
-
mirrorWorldPosition.setFromMatrixPosition(scope.matrixWorld);
|
|
179
|
-
cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);
|
|
180
|
-
rotationMatrix.extractRotation(scope.matrixWorld);
|
|
181
|
-
normal.set(0, 0, 1);
|
|
182
|
-
normal.applyMatrix4(rotationMatrix);
|
|
183
|
-
view.subVectors(mirrorWorldPosition, cameraWorldPosition);
|
|
184
|
-
if (view.dot(normal) > 0)
|
|
185
|
-
return;
|
|
186
|
-
view.reflect(normal).negate();
|
|
187
|
-
view.add(mirrorWorldPosition);
|
|
188
|
-
rotationMatrix.extractRotation(camera.matrixWorld);
|
|
189
|
-
lookAtPosition.set(0, 0, -1);
|
|
190
|
-
lookAtPosition.applyMatrix4(rotationMatrix);
|
|
191
|
-
lookAtPosition.add(cameraWorldPosition);
|
|
192
|
-
target.subVectors(mirrorWorldPosition, lookAtPosition);
|
|
193
|
-
target.reflect(normal).negate();
|
|
194
|
-
target.add(mirrorWorldPosition);
|
|
195
|
-
mirrorCamera.position.copy(view);
|
|
196
|
-
mirrorCamera.up.set(0, 1, 0);
|
|
197
|
-
mirrorCamera.up.applyMatrix4(rotationMatrix);
|
|
198
|
-
mirrorCamera.up.reflect(normal);
|
|
199
|
-
mirrorCamera.lookAt(target);
|
|
200
|
-
mirrorCamera.far = camera.far;
|
|
201
|
-
mirrorCamera.updateMatrixWorld();
|
|
202
|
-
mirrorCamera.projectionMatrix.copy(camera.projectionMatrix);
|
|
203
|
-
textureMatrix.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1);
|
|
204
|
-
textureMatrix.multiply(mirrorCamera.projectionMatrix);
|
|
205
|
-
textureMatrix.multiply(mirrorCamera.matrixWorldInverse);
|
|
206
|
-
mirrorPlane.setFromNormalAndCoplanarPoint(normal, mirrorWorldPosition);
|
|
207
|
-
mirrorPlane.applyMatrix4(mirrorCamera.matrixWorldInverse);
|
|
208
|
-
clipPlane.set(mirrorPlane.normal.x, mirrorPlane.normal.y, mirrorPlane.normal.z, mirrorPlane.constant);
|
|
209
|
-
const projectionMatrix = mirrorCamera.projectionMatrix;
|
|
210
|
-
q.x = (Math.sign(clipPlane.x) + projectionMatrix.elements[8]) / projectionMatrix.elements[0];
|
|
211
|
-
q.y = (Math.sign(clipPlane.y) + projectionMatrix.elements[9]) / projectionMatrix.elements[5];
|
|
212
|
-
q.z = -1;
|
|
213
|
-
q.w = (1 + projectionMatrix.elements[10]) / projectionMatrix.elements[14];
|
|
214
|
-
clipPlane.multiplyScalar(2 / clipPlane.dot(q));
|
|
215
|
-
projectionMatrix.elements[2] = clipPlane.x;
|
|
216
|
-
projectionMatrix.elements[6] = clipPlane.y;
|
|
217
|
-
projectionMatrix.elements[10] = clipPlane.z + 1 - clipBias;
|
|
218
|
-
projectionMatrix.elements[14] = clipPlane.w;
|
|
219
|
-
eye.setFromMatrixPosition(camera.matrixWorld);
|
|
220
|
-
const currentRenderTarget = renderer.getRenderTarget();
|
|
221
|
-
const currentXrEnabled = renderer.xr.enabled;
|
|
222
|
-
const currentShadowAutoUpdate = renderer.shadowMap.autoUpdate;
|
|
223
|
-
scope.visible = false;
|
|
224
|
-
renderer.xr.enabled = false;
|
|
225
|
-
renderer.shadowMap.autoUpdate = false;
|
|
226
|
-
renderer.setRenderTarget(renderTarget);
|
|
227
|
-
renderer.state.buffers.depth.setMask(true);
|
|
228
|
-
if (renderer.autoClear === false)
|
|
229
|
-
renderer.clear();
|
|
230
|
-
renderer.render(scene, mirrorCamera);
|
|
231
|
-
scope.visible = true;
|
|
232
|
-
renderer.xr.enabled = currentXrEnabled;
|
|
233
|
-
renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;
|
|
234
|
-
renderer.setRenderTarget(currentRenderTarget);
|
|
235
|
-
const viewport = camera.viewport;
|
|
236
|
-
if (viewport !== void 0) {
|
|
237
|
-
renderer.state.viewport(viewport);
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
exports.Water = Water;
|
package/objects/Water.js
DELETED
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import { Mesh, Vector3, Color, FrontSide, Plane, Matrix4, Vector4, PerspectiveCamera, WebGLRenderTarget, UniformsUtils, UniformsLib, REVISION, ShaderMaterial } from "three";
|
|
2
|
-
class Water extends Mesh {
|
|
3
|
-
constructor(geometry, options = {}) {
|
|
4
|
-
super(geometry);
|
|
5
|
-
this.isWater = true;
|
|
6
|
-
const scope = this;
|
|
7
|
-
const textureWidth = options.textureWidth !== void 0 ? options.textureWidth : 512;
|
|
8
|
-
const textureHeight = options.textureHeight !== void 0 ? options.textureHeight : 512;
|
|
9
|
-
const clipBias = options.clipBias !== void 0 ? options.clipBias : 0;
|
|
10
|
-
const alpha = options.alpha !== void 0 ? options.alpha : 1;
|
|
11
|
-
const time = options.time !== void 0 ? options.time : 0;
|
|
12
|
-
const normalSampler = options.waterNormals !== void 0 ? options.waterNormals : null;
|
|
13
|
-
const sunDirection = options.sunDirection !== void 0 ? options.sunDirection : new Vector3(0.70707, 0.70707, 0);
|
|
14
|
-
const sunColor = new Color(options.sunColor !== void 0 ? options.sunColor : 16777215);
|
|
15
|
-
const waterColor = new Color(options.waterColor !== void 0 ? options.waterColor : 8355711);
|
|
16
|
-
const eye = options.eye !== void 0 ? options.eye : new Vector3(0, 0, 0);
|
|
17
|
-
const distortionScale = options.distortionScale !== void 0 ? options.distortionScale : 20;
|
|
18
|
-
const side = options.side !== void 0 ? options.side : FrontSide;
|
|
19
|
-
const fog = options.fog !== void 0 ? options.fog : false;
|
|
20
|
-
const mirrorPlane = new Plane();
|
|
21
|
-
const normal = new Vector3();
|
|
22
|
-
const mirrorWorldPosition = new Vector3();
|
|
23
|
-
const cameraWorldPosition = new Vector3();
|
|
24
|
-
const rotationMatrix = new Matrix4();
|
|
25
|
-
const lookAtPosition = new Vector3(0, 0, -1);
|
|
26
|
-
const clipPlane = new Vector4();
|
|
27
|
-
const view = new Vector3();
|
|
28
|
-
const target = new Vector3();
|
|
29
|
-
const q = new Vector4();
|
|
30
|
-
const textureMatrix = new Matrix4();
|
|
31
|
-
const mirrorCamera = new PerspectiveCamera();
|
|
32
|
-
const renderTarget = new WebGLRenderTarget(textureWidth, textureHeight);
|
|
33
|
-
const mirrorShader = {
|
|
34
|
-
uniforms: UniformsUtils.merge([
|
|
35
|
-
UniformsLib["fog"],
|
|
36
|
-
UniformsLib["lights"],
|
|
37
|
-
{
|
|
38
|
-
normalSampler: { value: null },
|
|
39
|
-
mirrorSampler: { value: null },
|
|
40
|
-
alpha: { value: 1 },
|
|
41
|
-
time: { value: 0 },
|
|
42
|
-
size: { value: 1 },
|
|
43
|
-
distortionScale: { value: 20 },
|
|
44
|
-
textureMatrix: { value: new Matrix4() },
|
|
45
|
-
sunColor: { value: new Color(8355711) },
|
|
46
|
-
sunDirection: { value: new Vector3(0.70707, 0.70707, 0) },
|
|
47
|
-
eye: { value: new Vector3() },
|
|
48
|
-
waterColor: { value: new Color(5592405) }
|
|
49
|
-
}
|
|
50
|
-
]),
|
|
51
|
-
vertexShader: (
|
|
52
|
-
/* glsl */
|
|
53
|
-
`
|
|
54
|
-
uniform mat4 textureMatrix;
|
|
55
|
-
uniform float time;
|
|
56
|
-
|
|
57
|
-
varying vec4 mirrorCoord;
|
|
58
|
-
varying vec4 worldPosition;
|
|
59
|
-
|
|
60
|
-
#include <common>
|
|
61
|
-
#include <fog_pars_vertex>
|
|
62
|
-
#include <shadowmap_pars_vertex>
|
|
63
|
-
#include <logdepthbuf_pars_vertex>
|
|
64
|
-
|
|
65
|
-
void main() {
|
|
66
|
-
mirrorCoord = modelMatrix * vec4( position, 1.0 );
|
|
67
|
-
worldPosition = mirrorCoord.xyzw;
|
|
68
|
-
mirrorCoord = textureMatrix * mirrorCoord;
|
|
69
|
-
vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
|
|
70
|
-
gl_Position = projectionMatrix * mvPosition;
|
|
71
|
-
|
|
72
|
-
#include <beginnormal_vertex>
|
|
73
|
-
#include <defaultnormal_vertex>
|
|
74
|
-
#include <logdepthbuf_vertex>
|
|
75
|
-
#include <fog_vertex>
|
|
76
|
-
#include <shadowmap_vertex>
|
|
77
|
-
}`
|
|
78
|
-
),
|
|
79
|
-
fragmentShader: (
|
|
80
|
-
/* glsl */
|
|
81
|
-
`
|
|
82
|
-
uniform sampler2D mirrorSampler;
|
|
83
|
-
uniform float alpha;
|
|
84
|
-
uniform float time;
|
|
85
|
-
uniform float size;
|
|
86
|
-
uniform float distortionScale;
|
|
87
|
-
uniform sampler2D normalSampler;
|
|
88
|
-
uniform vec3 sunColor;
|
|
89
|
-
uniform vec3 sunDirection;
|
|
90
|
-
uniform vec3 eye;
|
|
91
|
-
uniform vec3 waterColor;
|
|
92
|
-
|
|
93
|
-
varying vec4 mirrorCoord;
|
|
94
|
-
varying vec4 worldPosition;
|
|
95
|
-
|
|
96
|
-
vec4 getNoise( vec2 uv ) {
|
|
97
|
-
vec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0);
|
|
98
|
-
vec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 );
|
|
99
|
-
vec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 );
|
|
100
|
-
vec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 );
|
|
101
|
-
vec4 noise = texture2D( normalSampler, uv0 ) +
|
|
102
|
-
texture2D( normalSampler, uv1 ) +
|
|
103
|
-
texture2D( normalSampler, uv2 ) +
|
|
104
|
-
texture2D( normalSampler, uv3 );
|
|
105
|
-
return noise * 0.5 - 1.0;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
void sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) {
|
|
109
|
-
vec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) );
|
|
110
|
-
float direction = max( 0.0, dot( eyeDirection, reflection ) );
|
|
111
|
-
specularColor += pow( direction, shiny ) * sunColor * spec;
|
|
112
|
-
diffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
#include <common>
|
|
116
|
-
#include <packing>
|
|
117
|
-
#include <bsdfs>
|
|
118
|
-
#include <fog_pars_fragment>
|
|
119
|
-
#include <logdepthbuf_pars_fragment>
|
|
120
|
-
#include <lights_pars_begin>
|
|
121
|
-
#include <shadowmap_pars_fragment>
|
|
122
|
-
#include <shadowmask_pars_fragment>
|
|
123
|
-
|
|
124
|
-
void main() {
|
|
125
|
-
|
|
126
|
-
#include <logdepthbuf_fragment>
|
|
127
|
-
vec4 noise = getNoise( worldPosition.xz * size );
|
|
128
|
-
vec3 surfaceNormal = normalize( noise.xzy * vec3( 1.5, 1.0, 1.5 ) );
|
|
129
|
-
|
|
130
|
-
vec3 diffuseLight = vec3(0.0);
|
|
131
|
-
vec3 specularLight = vec3(0.0);
|
|
132
|
-
|
|
133
|
-
vec3 worldToEye = eye-worldPosition.xyz;
|
|
134
|
-
vec3 eyeDirection = normalize( worldToEye );
|
|
135
|
-
sunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight );
|
|
136
|
-
|
|
137
|
-
float distance = length(worldToEye);
|
|
138
|
-
|
|
139
|
-
vec2 distortion = surfaceNormal.xz * ( 0.001 + 1.0 / distance ) * distortionScale;
|
|
140
|
-
vec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) );
|
|
141
|
-
|
|
142
|
-
float theta = max( dot( eyeDirection, surfaceNormal ), 0.0 );
|
|
143
|
-
float rf0 = 0.3;
|
|
144
|
-
float reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 );
|
|
145
|
-
vec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor;
|
|
146
|
-
vec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance);
|
|
147
|
-
vec3 outgoingLight = albedo;
|
|
148
|
-
gl_FragColor = vec4( outgoingLight, alpha );
|
|
149
|
-
|
|
150
|
-
#include <tonemapping_fragment>
|
|
151
|
-
#include <${parseInt(REVISION.replace(/\D+/g, "")) >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
|
|
152
|
-
#include <fog_fragment>
|
|
153
|
-
}`
|
|
154
|
-
)
|
|
155
|
-
};
|
|
156
|
-
const material = new ShaderMaterial({
|
|
157
|
-
fragmentShader: mirrorShader.fragmentShader,
|
|
158
|
-
vertexShader: mirrorShader.vertexShader,
|
|
159
|
-
uniforms: UniformsUtils.clone(mirrorShader.uniforms),
|
|
160
|
-
lights: true,
|
|
161
|
-
side,
|
|
162
|
-
fog
|
|
163
|
-
});
|
|
164
|
-
material.uniforms["mirrorSampler"].value = renderTarget.texture;
|
|
165
|
-
material.uniforms["textureMatrix"].value = textureMatrix;
|
|
166
|
-
material.uniforms["alpha"].value = alpha;
|
|
167
|
-
material.uniforms["time"].value = time;
|
|
168
|
-
material.uniforms["normalSampler"].value = normalSampler;
|
|
169
|
-
material.uniforms["sunColor"].value = sunColor;
|
|
170
|
-
material.uniforms["waterColor"].value = waterColor;
|
|
171
|
-
material.uniforms["sunDirection"].value = sunDirection;
|
|
172
|
-
material.uniforms["distortionScale"].value = distortionScale;
|
|
173
|
-
material.uniforms["eye"].value = eye;
|
|
174
|
-
scope.material = material;
|
|
175
|
-
scope.onBeforeRender = function(renderer, scene, camera) {
|
|
176
|
-
mirrorWorldPosition.setFromMatrixPosition(scope.matrixWorld);
|
|
177
|
-
cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);
|
|
178
|
-
rotationMatrix.extractRotation(scope.matrixWorld);
|
|
179
|
-
normal.set(0, 0, 1);
|
|
180
|
-
normal.applyMatrix4(rotationMatrix);
|
|
181
|
-
view.subVectors(mirrorWorldPosition, cameraWorldPosition);
|
|
182
|
-
if (view.dot(normal) > 0)
|
|
183
|
-
return;
|
|
184
|
-
view.reflect(normal).negate();
|
|
185
|
-
view.add(mirrorWorldPosition);
|
|
186
|
-
rotationMatrix.extractRotation(camera.matrixWorld);
|
|
187
|
-
lookAtPosition.set(0, 0, -1);
|
|
188
|
-
lookAtPosition.applyMatrix4(rotationMatrix);
|
|
189
|
-
lookAtPosition.add(cameraWorldPosition);
|
|
190
|
-
target.subVectors(mirrorWorldPosition, lookAtPosition);
|
|
191
|
-
target.reflect(normal).negate();
|
|
192
|
-
target.add(mirrorWorldPosition);
|
|
193
|
-
mirrorCamera.position.copy(view);
|
|
194
|
-
mirrorCamera.up.set(0, 1, 0);
|
|
195
|
-
mirrorCamera.up.applyMatrix4(rotationMatrix);
|
|
196
|
-
mirrorCamera.up.reflect(normal);
|
|
197
|
-
mirrorCamera.lookAt(target);
|
|
198
|
-
mirrorCamera.far = camera.far;
|
|
199
|
-
mirrorCamera.updateMatrixWorld();
|
|
200
|
-
mirrorCamera.projectionMatrix.copy(camera.projectionMatrix);
|
|
201
|
-
textureMatrix.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1);
|
|
202
|
-
textureMatrix.multiply(mirrorCamera.projectionMatrix);
|
|
203
|
-
textureMatrix.multiply(mirrorCamera.matrixWorldInverse);
|
|
204
|
-
mirrorPlane.setFromNormalAndCoplanarPoint(normal, mirrorWorldPosition);
|
|
205
|
-
mirrorPlane.applyMatrix4(mirrorCamera.matrixWorldInverse);
|
|
206
|
-
clipPlane.set(mirrorPlane.normal.x, mirrorPlane.normal.y, mirrorPlane.normal.z, mirrorPlane.constant);
|
|
207
|
-
const projectionMatrix = mirrorCamera.projectionMatrix;
|
|
208
|
-
q.x = (Math.sign(clipPlane.x) + projectionMatrix.elements[8]) / projectionMatrix.elements[0];
|
|
209
|
-
q.y = (Math.sign(clipPlane.y) + projectionMatrix.elements[9]) / projectionMatrix.elements[5];
|
|
210
|
-
q.z = -1;
|
|
211
|
-
q.w = (1 + projectionMatrix.elements[10]) / projectionMatrix.elements[14];
|
|
212
|
-
clipPlane.multiplyScalar(2 / clipPlane.dot(q));
|
|
213
|
-
projectionMatrix.elements[2] = clipPlane.x;
|
|
214
|
-
projectionMatrix.elements[6] = clipPlane.y;
|
|
215
|
-
projectionMatrix.elements[10] = clipPlane.z + 1 - clipBias;
|
|
216
|
-
projectionMatrix.elements[14] = clipPlane.w;
|
|
217
|
-
eye.setFromMatrixPosition(camera.matrixWorld);
|
|
218
|
-
const currentRenderTarget = renderer.getRenderTarget();
|
|
219
|
-
const currentXrEnabled = renderer.xr.enabled;
|
|
220
|
-
const currentShadowAutoUpdate = renderer.shadowMap.autoUpdate;
|
|
221
|
-
scope.visible = false;
|
|
222
|
-
renderer.xr.enabled = false;
|
|
223
|
-
renderer.shadowMap.autoUpdate = false;
|
|
224
|
-
renderer.setRenderTarget(renderTarget);
|
|
225
|
-
renderer.state.buffers.depth.setMask(true);
|
|
226
|
-
if (renderer.autoClear === false)
|
|
227
|
-
renderer.clear();
|
|
228
|
-
renderer.render(scene, mirrorCamera);
|
|
229
|
-
scope.visible = true;
|
|
230
|
-
renderer.xr.enabled = currentXrEnabled;
|
|
231
|
-
renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;
|
|
232
|
-
renderer.setRenderTarget(currentRenderTarget);
|
|
233
|
-
const viewport = camera.viewport;
|
|
234
|
-
if (viewport !== void 0) {
|
|
235
|
-
renderer.state.viewport(viewport);
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
export {
|
|
241
|
-
Water
|
|
242
|
-
};
|