@plastic-software/three 0.174.0 → 0.175.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/build/three.cjs +10744 -1476
- package/build/three.core.js +9633 -1096
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +918 -189
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +4 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +2658 -1697
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +2654 -1709
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +93 -39
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +171 -48
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +71 -29
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +41 -3
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +35 -0
- package/examples/jsm/loaders/DDSLoader.js +24 -0
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +42 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +218 -5
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +86 -18
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +38 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +81 -61
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +79 -2
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +108 -72
- package/examples/jsm/misc/VolumeSlice.js +88 -45
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +70 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +131 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +266 -133
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +1 -1
- package/examples/jsm/tsl/display/BloomNode.js +1 -1
- package/examples/jsm/tsl/display/PixelationPassNode.js +4 -4
- package/examples/jsm/tsl/display/SSRNode.js +1 -1
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +29 -3
- package/examples/jsm/tsl/math/Bayer.js +14 -1
- package/examples/jsm/tsl/utils/Raymarching.js +4 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +1 -1
- package/src/Three.TSL.js +3 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +168 -18
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/AudioAnalyser.js +1 -1
- package/src/audio/AudioListener.js +2 -2
- package/src/audio/PositionalAudio.js +5 -5
- package/src/constants.js +1432 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +23 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +166 -7
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +16 -1
- package/src/extras/Earcut.js +3 -781
- package/src/extras/ImageUtils.js +3 -2
- package/src/extras/PMREMGenerator.js +22 -17
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/core/Path.js +1 -1
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/ConeGeometry.js +2 -2
- package/src/geometries/CylinderGeometry.js +2 -2
- package/src/geometries/ExtrudeGeometry.js +71 -39
- package/src/geometries/LatheGeometry.js +1 -1
- package/src/lights/LightShadow.js +1 -1
- package/src/lights/webgpu/IESSpotLight.js +1 -1
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +4 -6
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +58 -1
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +6 -2
- package/src/loaders/nodes/NodeMaterialLoader.js +1 -1
- package/src/loaders/nodes/NodeObjectLoader.js +3 -3
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +1 -1
- package/src/materials/nodes/LineBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/LineDashedNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshLambertNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshToonNodeMaterial.js +2 -2
- package/src/materials/nodes/NodeMaterial.js +7 -3
- package/src/materials/nodes/PointsNodeMaterial.js +1 -1
- package/src/materials/nodes/ShadowNodeMaterial.js +11 -2
- package/src/materials/nodes/SpriteNodeMaterial.js +1 -1
- package/src/materials/nodes/VolumeNodeMaterial.js +10 -1
- package/src/math/Color.js +1 -1
- package/src/math/MathUtils.js +223 -0
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/accessors/BatchNode.js +8 -8
- package/src/nodes/accessors/BuiltinNode.js +1 -1
- package/src/nodes/accessors/CubeTextureNode.js +1 -1
- package/src/nodes/accessors/InstanceNode.js +5 -5
- package/src/nodes/accessors/InstancedMeshNode.js +1 -1
- package/src/nodes/accessors/MorphNode.js +27 -23
- package/src/nodes/accessors/Normal.js +1 -1
- package/src/nodes/accessors/Object3DNode.js +12 -12
- package/src/nodes/accessors/ReferenceBaseNode.js +2 -2
- package/src/nodes/accessors/ReferenceNode.js +1 -1
- package/src/nodes/accessors/SkinningNode.js +46 -37
- package/src/nodes/accessors/StorageBufferNode.js +1 -1
- package/src/nodes/accessors/StorageTextureNode.js +3 -3
- package/src/nodes/accessors/Texture3DNode.js +1 -1
- package/src/nodes/accessors/TextureNode.js +25 -5
- package/src/nodes/accessors/TextureSizeNode.js +1 -1
- package/src/nodes/accessors/UniformArrayNode.js +2 -2
- package/src/nodes/code/CodeNode.js +4 -4
- package/src/nodes/code/ExpressionNode.js +4 -4
- package/src/nodes/code/FunctionCallNode.js +23 -3
- package/src/nodes/code/ScriptableNode.js +4 -4
- package/src/nodes/code/ScriptableValueNode.js +2 -2
- package/src/nodes/core/AssignNode.js +1 -1
- package/src/nodes/core/AttributeNode.js +1 -1
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/CacheNode.js +1 -1
- package/src/nodes/core/ContextNode.js +1 -1
- package/src/nodes/core/InputNode.js +2 -2
- package/src/nodes/core/Node.js +14 -2
- package/src/nodes/core/NodeBuilder.js +86 -14
- package/src/nodes/core/StackNode.js +5 -5
- package/src/nodes/core/StructNode.js +1 -1
- package/src/nodes/core/StructTypeNode.js +2 -2
- package/src/nodes/core/VarNode.js +2 -8
- package/src/nodes/core/VaryingNode.js +3 -3
- package/src/nodes/display/BlendModes.js +4 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/NormalMapNode.js +1 -1
- package/src/nodes/display/PosterizeNode.js +1 -1
- package/src/nodes/display/ScreenNode.js +3 -3
- package/src/nodes/display/ViewportDepthNode.js +2 -2
- package/src/nodes/display/ViewportDepthTextureNode.js +2 -2
- package/src/nodes/display/ViewportSharedTextureNode.js +2 -2
- package/src/nodes/display/ViewportTextureNode.js +4 -4
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +6 -6
- package/src/nodes/geometry/RangeNode.js +1 -1
- package/src/nodes/gpgpu/AtomicFunctionNode.js +16 -40
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -1
- package/src/nodes/gpgpu/ComputeNode.js +30 -2
- package/src/nodes/lighting/AnalyticLightNode.js +9 -1
- package/src/nodes/lighting/LightsNode.js +3 -3
- package/src/nodes/lighting/ShadowNode.js +1 -1
- package/src/nodes/math/ConditionalNode.js +20 -3
- package/src/nodes/math/MathNode.js +83 -78
- package/src/nodes/math/OperatorNode.js +171 -82
- package/src/nodes/pmrem/PMREMNode.js +4 -4
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +115 -12
- package/src/nodes/utils/ArrayElementNode.js +3 -1
- package/src/nodes/utils/CubeMapNode.js +3 -3
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/EquirectUVNode.js +2 -2
- package/src/nodes/utils/JoinNode.js +27 -2
- package/src/nodes/utils/LoopNode.js +58 -28
- package/src/nodes/utils/MaxMipLevelNode.js +1 -1
- package/src/nodes/utils/ReflectorNode.js +2 -2
- package/src/nodes/utils/RemapNode.js +6 -6
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUVNode.js +3 -3
- package/src/nodes/utils/StorageArrayElementNode.js +1 -1
- package/src/nodes/utils/TriplanarTexturesNode.js +3 -3
- package/src/objects/BatchedMesh.js +4 -4
- package/src/objects/InstancedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Skeleton.js +1 -1
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +617 -79
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Attributes.js +2 -2
- package/src/renderers/common/Backend.js +12 -3
- package/src/renderers/common/Background.js +1 -0
- package/src/renderers/common/Color4.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/PostProcessing.js +2 -0
- package/src/renderers/common/QuadMesh.js +2 -0
- package/src/renderers/common/RenderList.js +2 -2
- package/src/renderers/common/RenderObject.js +1 -1
- package/src/renderers/common/RenderObjects.js +2 -2
- package/src/renderers/common/Renderer.js +52 -31
- package/src/renderers/common/XRManager.js +333 -10
- package/src/renderers/common/extras/PMREMGenerator.js +6 -0
- package/src/renderers/common/nodes/NodeBuilderState.js +3 -3
- package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +10 -1
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +8 -1
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +82 -0
- package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +22 -2
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +8 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +31 -11
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -1
- package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/triplanar_fragment.glsl.js +20 -0
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +52 -7
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +25 -6
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +19 -7
- package/src/renderers/shaders/ShaderChunk.js +2 -0
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -0
- package/src/renderers/shaders/UniformsLib.js +6 -5
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLMaterials.js +12 -0
- package/src/renderers/webgl/WebGLProgram.js +25 -5
- package/src/renderers/webgl/WebGLPrograms.js +21 -7
- package/src/renderers/webgl/WebGLState.js +9 -9
- package/src/renderers/webgl-fallback/WebGLBackend.js +25 -26
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +3 -12
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +67 -19
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +1 -1
- package/src/renderers/webgpu/WebGPUBackend.js +128 -87
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +1 -11
- package/src/renderers/webgpu/WebGPURenderer.js +17 -11
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +4 -4
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +173 -1
- package/src/scenes/Scene.js +2 -1
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +59 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +5 -5
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -2,8 +2,14 @@ export default /* glsl */`
|
|
|
2
2
|
float metalnessFactor = metalness;
|
|
3
3
|
|
|
4
4
|
#ifdef USE_METALNESSMAP
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
#ifdef USE_METALNESSMAP_TRIPLANAR
|
|
6
|
+
vec4 texelMetalness = texture2DTriplanar( metalnessMap, metalnessMapTransform, triplanarCoords, triplanarWeights );
|
|
7
|
+
#else
|
|
8
|
+
#if defined( USE_METALNESSMAP_CYLINDRICAL )
|
|
9
|
+
vec2 vMetalnessMapUv = ( metalnessMapTransform * vec3( positionBasedUv, 1 ) ).xy;
|
|
10
|
+
#endif
|
|
11
|
+
vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
|
|
12
|
+
#endif
|
|
7
13
|
|
|
8
14
|
// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture
|
|
9
15
|
metalnessFactor *= texelMetalness.b;
|
|
@@ -21,21 +21,35 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
|
|
|
21
21
|
|
|
22
22
|
#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
#if defined( USE_TANGENT )
|
|
25
25
|
|
|
26
26
|
mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
|
|
27
27
|
|
|
28
|
+
#elif defined( USE_NORMALMAP_UV )
|
|
29
|
+
|
|
30
|
+
mat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );
|
|
31
|
+
|
|
32
|
+
#elif defined( USE_NORMALMAP_CYLINDRICAL ) || defined( USE_CLEARCOAT_NORMALMAP_CYLINDRICAL ) || (defined( USE_ANISOTROPY ) && !defined( USE_UV1 ) || !defined( USE_UV2 ) && !defined( USE_UV3 ))
|
|
33
|
+
|
|
34
|
+
#if defined( USE_NORMALMAP_CYLINDRICAL )
|
|
35
|
+
vec2 vNormalMapUv = ( normalMapTransform * vec3( positionBasedUv, 1 ) ).xy;
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
#if defined( USE_CLEARCOAT_NORMALMAP_CYLINDRICAL )
|
|
39
|
+
vec2 vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( positionBasedUv, 1 ) ).xy;
|
|
40
|
+
#endif
|
|
41
|
+
|
|
42
|
+
vec3 tangent = normalize(cross(normal, mat3(modelViewMatrix) * transpose(mat3(texture3DMatrix)) * vec3(0, 1, 0)));
|
|
43
|
+
vec3 bitangent = cross(tangent, normal);
|
|
44
|
+
mat3 tbn = mat3(tangent, bitangent, normal);
|
|
45
|
+
|
|
46
|
+
#elif defined( USE_CLEARCOAT_NORMALMAP_UV )
|
|
47
|
+
|
|
48
|
+
mat3 tbn = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
|
|
49
|
+
|
|
28
50
|
#else
|
|
29
51
|
|
|
30
|
-
|
|
31
|
-
#if defined( USE_NORMALMAP )
|
|
32
|
-
vNormalMapUv
|
|
33
|
-
#elif defined( USE_CLEARCOAT_NORMALMAP )
|
|
34
|
-
vClearcoatNormalMapUv
|
|
35
|
-
#else
|
|
36
|
-
vUv
|
|
37
|
-
#endif
|
|
38
|
-
);
|
|
52
|
+
mat3 tbn = getTangentFrame( - vViewPosition, normal, vUv );
|
|
39
53
|
|
|
40
54
|
#endif
|
|
41
55
|
|
|
@@ -54,7 +68,13 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
|
|
|
54
68
|
|
|
55
69
|
mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
|
|
56
70
|
|
|
57
|
-
|
|
71
|
+
#elif defined( USE_CLEARCOAT_NORMALMAP_CYLINDRICAL )
|
|
72
|
+
|
|
73
|
+
vec3 tangent2 = normalize(cross(normal, mat3(modelViewMatrix) * transpose(mat3(texture3DMatrix)) * vec3(0, 1, 0)));
|
|
74
|
+
vec3 bitangent2 = cross(tangent2, normal);
|
|
75
|
+
mat3 tbn2 = mat3(tangent2, bitangent2, normal);
|
|
76
|
+
|
|
77
|
+
#elif defined( USE_CLEARCOAT_NORMALMAP_UV )
|
|
58
78
|
|
|
59
79
|
mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
|
|
60
80
|
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
export default /* glsl */`
|
|
2
2
|
|
|
3
|
-
#ifdef
|
|
3
|
+
#ifdef USE_NORMALMAP_TRIPLANAR
|
|
4
|
+
|
|
5
|
+
normal = normalize(normalMatrix * transpose(mat3(texture3DMatrix)) * texture2DTriplanarNormal( normalMap, normalMapTransform, normalScale, normalize(mat3(texture3DMatrix) * vModelNormal.xyz), triplanarCoords, triplanarWeights ));
|
|
6
|
+
|
|
7
|
+
#elif defined( USE_NORMALMAP_OBJECTSPACE )
|
|
4
8
|
|
|
5
9
|
normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals
|
|
6
10
|
|
|
@@ -16,7 +16,7 @@ export default /* glsl */`
|
|
|
16
16
|
|
|
17
17
|
// Normal Mapping Without Precomputed Tangents
|
|
18
18
|
// http://www.thetenthplanet.de/archives/1180
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
|
|
21
21
|
|
|
22
22
|
vec3 q0 = dFdx( eye_pos.xyz );
|
|
@@ -40,4 +40,5 @@ export default /* glsl */`
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
#endif
|
|
43
|
+
|
|
43
44
|
`;
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
export default /* glsl */`
|
|
2
2
|
float roughnessFactor = roughness;
|
|
3
3
|
|
|
4
|
-
#ifdef
|
|
4
|
+
#ifdef USE_ROUGHNESSMAP_TRIPLANAR
|
|
5
|
+
|
|
6
|
+
vec4 texelRoughness = texture2DTriplanar( roughnessMap, roughnessMapTransform, triplanarCoords, triplanarWeights );
|
|
7
|
+
|
|
8
|
+
// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture
|
|
9
|
+
roughnessFactor *= texelRoughness.g;
|
|
10
|
+
|
|
11
|
+
#elif defined( USE_ROUGHNESSMAP )
|
|
12
|
+
|
|
13
|
+
#if defined( USE_ROUGHNESSMAP_CYLINDRICAL )
|
|
14
|
+
vec2 vRoughnessMapUv = ( roughnessMapTransform * vec3( positionBasedUv, 1 ) ).xy;
|
|
15
|
+
#endif
|
|
5
16
|
|
|
6
17
|
vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
|
|
7
18
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default /* glsl */`
|
|
2
|
+
#ifdef USE_TRIPLANAR
|
|
3
|
+
|
|
4
|
+
vec3 triplanarWeights = pow(abs(mat3(texture3DMatrix) * vModelNormal), vec3(triplanarHardness, triplanarHardness, triplanarHardness));
|
|
5
|
+
triplanarWeights /= dot(triplanarWeights, vec3(1.0, 1.0, 1.0));
|
|
6
|
+
vec3 triplanarCoords = vModelPosition.xyz;
|
|
7
|
+
|
|
8
|
+
#endif
|
|
9
|
+
|
|
10
|
+
#ifdef USE_CYLINDRICAL
|
|
11
|
+
|
|
12
|
+
// Cylindrical and toroidal parameterizations without vertex seams
|
|
13
|
+
// DOI:10.1080/2151237X.2012.654054
|
|
14
|
+
float positionBasedU1 = fract(atan(vModelPosition.z, vModelPosition.x) * RECIPROCAL_PI2);
|
|
15
|
+
float positionBasedU2 = fract(positionBasedU1 + 0.5) - 0.5;
|
|
16
|
+
vec2 positionBasedUv = vec2(fwidth(positionBasedU1) < fwidth(positionBasedU2) - 1e-3 ? positionBasedU1 : positionBasedU2, vModelPosition.y);
|
|
17
|
+
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
`;
|
|
@@ -4,12 +4,37 @@ export default /* glsl */`
|
|
|
4
4
|
varying vec2 vUv;
|
|
5
5
|
|
|
6
6
|
#endif
|
|
7
|
-
#
|
|
7
|
+
#if defined( USE_TRIPLANAR )
|
|
8
|
+
|
|
9
|
+
uniform float triplanarHardness;
|
|
10
|
+
|
|
11
|
+
#endif
|
|
12
|
+
#if defined( USE_TRIPLANAR ) || defined( USE_CYLINDRICAL )
|
|
13
|
+
|
|
14
|
+
varying vec3 vModelPosition;
|
|
15
|
+
|
|
16
|
+
#endif
|
|
17
|
+
#if defined( USE_TRIPLANAR ) || defined( USE_CYLINDRICAL ) || (defined(USE_ANISOTROPY) && !defined(USE_UV1) && !defined(USE_UV2) && !defined(USE_UV3))
|
|
18
|
+
|
|
19
|
+
varying vec3 vModelNormal;
|
|
20
|
+
uniform mat4 texture3DMatrix;
|
|
21
|
+
uniform mat4 invTexture3DMatrix;
|
|
22
|
+
|
|
23
|
+
#endif
|
|
24
|
+
#if defined( USE_MAP_CYLINDRICAL ) || defined( USE_MAP_TRIPLANAR )
|
|
25
|
+
|
|
26
|
+
uniform mat3 mapTransform;
|
|
27
|
+
|
|
28
|
+
#elif defined( USE_MAP_UV )
|
|
8
29
|
|
|
9
30
|
varying vec2 vMapUv;
|
|
10
31
|
|
|
11
32
|
#endif
|
|
12
|
-
#
|
|
33
|
+
#if defined( USE_ALPHAMAP_CYLINDRICAL ) || defined( USE_ALPHAMAP_TRIPLANAR )
|
|
34
|
+
|
|
35
|
+
uniform mat3 alphaMapTransform;
|
|
36
|
+
|
|
37
|
+
#elif defined( USE_ALPHAMAP_UV )
|
|
13
38
|
|
|
14
39
|
varying vec2 vAlphaMapUv;
|
|
15
40
|
|
|
@@ -19,7 +44,11 @@ export default /* glsl */`
|
|
|
19
44
|
varying vec2 vLightMapUv;
|
|
20
45
|
|
|
21
46
|
#endif
|
|
22
|
-
#
|
|
47
|
+
#if defined( USE_AOMAP_CYLINDRICAL ) || defined( USE_AOMAP_TRIPLANAR )
|
|
48
|
+
|
|
49
|
+
uniform mat3 aoMapTransform;
|
|
50
|
+
|
|
51
|
+
#elif defined( USE_AOMAP_UV )
|
|
23
52
|
|
|
24
53
|
varying vec2 vAoMapUv;
|
|
25
54
|
|
|
@@ -29,7 +58,11 @@ export default /* glsl */`
|
|
|
29
58
|
varying vec2 vBumpMapUv;
|
|
30
59
|
|
|
31
60
|
#endif
|
|
32
|
-
#
|
|
61
|
+
#if defined( USE_NORMALMAP_CYLINDRICAL ) || defined( USE_NORMALMAP_TRIPLANAR )
|
|
62
|
+
|
|
63
|
+
uniform mat3 normalMapTransform;
|
|
64
|
+
|
|
65
|
+
#elif defined( USE_NORMALMAP_UV )
|
|
33
66
|
|
|
34
67
|
varying vec2 vNormalMapUv;
|
|
35
68
|
|
|
@@ -39,12 +72,20 @@ export default /* glsl */`
|
|
|
39
72
|
varying vec2 vEmissiveMapUv;
|
|
40
73
|
|
|
41
74
|
#endif
|
|
42
|
-
#
|
|
75
|
+
#if defined( USE_METALNESSMAP_CYLINDRICAL ) || defined( USE_METALNESSMAP_TRIPLANAR )
|
|
76
|
+
|
|
77
|
+
uniform mat3 metalnessMapTransform;
|
|
78
|
+
|
|
79
|
+
#elif defined( USE_METALNESSMAP_UV )
|
|
43
80
|
|
|
44
81
|
varying vec2 vMetalnessMapUv;
|
|
45
82
|
|
|
46
83
|
#endif
|
|
47
|
-
#
|
|
84
|
+
#if defined( USE_ROUGHNESSMAP_CYLINDRICAL ) || defined( USE_ROUGHNESSMAP_TRIPLANAR )
|
|
85
|
+
|
|
86
|
+
uniform mat3 roughnessMapTransform;
|
|
87
|
+
|
|
88
|
+
#elif defined( USE_ROUGHNESSMAP_UV )
|
|
48
89
|
|
|
49
90
|
varying vec2 vRoughnessMapUv;
|
|
50
91
|
|
|
@@ -59,7 +100,11 @@ export default /* glsl */`
|
|
|
59
100
|
varying vec2 vClearcoatMapUv;
|
|
60
101
|
|
|
61
102
|
#endif
|
|
62
|
-
#
|
|
103
|
+
#if defined( USE_CLEARCOAT_NORMALMAP_CYLINDRICAL ) || defined( USE_CLEARCOAT_NORMALMAP_TRIPLANAR )
|
|
104
|
+
|
|
105
|
+
uniform mat3 clearcoatNormalMapTransform;
|
|
106
|
+
|
|
107
|
+
#elif defined( USE_CLEARCOAT_NORMALMAP_UV )
|
|
63
108
|
|
|
64
109
|
varying vec2 vClearcoatNormalMapUv;
|
|
65
110
|
|
|
@@ -4,13 +4,31 @@ export default /* glsl */`
|
|
|
4
4
|
varying vec2 vUv;
|
|
5
5
|
|
|
6
6
|
#endif
|
|
7
|
-
#
|
|
7
|
+
#if defined( USE_TRIPLANAR ) || defined( USE_CYLINDRICAL ) || ( defined(USE_ANISOTROPY) && !defined(USE_UV1) && !defined(USE_UV2) && !defined(USE_UV3) )
|
|
8
|
+
|
|
9
|
+
uniform mat4 texture3DMatrix;
|
|
10
|
+
|
|
11
|
+
#endif
|
|
12
|
+
#if defined( USE_TRIPLANAR ) || defined( USE_CYLINDRICAL )
|
|
13
|
+
|
|
14
|
+
varying vec3 vModelPosition;
|
|
15
|
+
|
|
16
|
+
#endif
|
|
17
|
+
#if defined( USE_TRIPLANAR ) || ( defined(USE_ANISOTROPY) && !defined(USE_UV1) && !defined(USE_UV2) && !defined(USE_UV3) )
|
|
18
|
+
|
|
19
|
+
varying vec3 vModelNormal;
|
|
20
|
+
|
|
21
|
+
#endif
|
|
22
|
+
#if defined( USE_CYLINDRICAL )
|
|
23
|
+
|
|
24
|
+
#endif
|
|
25
|
+
#if defined( USE_MAP_UV )
|
|
8
26
|
|
|
9
27
|
uniform mat3 mapTransform;
|
|
10
28
|
varying vec2 vMapUv;
|
|
11
29
|
|
|
12
30
|
#endif
|
|
13
|
-
#
|
|
31
|
+
#if defined( USE_ALPHAMAP_UV )
|
|
14
32
|
|
|
15
33
|
uniform mat3 alphaMapTransform;
|
|
16
34
|
varying vec2 vAlphaMapUv;
|
|
@@ -22,7 +40,7 @@ export default /* glsl */`
|
|
|
22
40
|
varying vec2 vLightMapUv;
|
|
23
41
|
|
|
24
42
|
#endif
|
|
25
|
-
#
|
|
43
|
+
#if defined( USE_AOMAP_UV )
|
|
26
44
|
|
|
27
45
|
uniform mat3 aoMapTransform;
|
|
28
46
|
varying vec2 vAoMapUv;
|
|
@@ -34,7 +52,7 @@ export default /* glsl */`
|
|
|
34
52
|
varying vec2 vBumpMapUv;
|
|
35
53
|
|
|
36
54
|
#endif
|
|
37
|
-
#
|
|
55
|
+
#if defined( USE_NORMALMAP_UV )
|
|
38
56
|
|
|
39
57
|
uniform mat3 normalMapTransform;
|
|
40
58
|
varying vec2 vNormalMapUv;
|
|
@@ -52,13 +70,13 @@ export default /* glsl */`
|
|
|
52
70
|
varying vec2 vEmissiveMapUv;
|
|
53
71
|
|
|
54
72
|
#endif
|
|
55
|
-
#
|
|
73
|
+
#if defined( USE_METALNESSMAP_UV )
|
|
56
74
|
|
|
57
75
|
uniform mat3 metalnessMapTransform;
|
|
58
76
|
varying vec2 vMetalnessMapUv;
|
|
59
77
|
|
|
60
78
|
#endif
|
|
61
|
-
#
|
|
79
|
+
#if defined( USE_ROUGHNESSMAP_UV )
|
|
62
80
|
|
|
63
81
|
uniform mat3 roughnessMapTransform;
|
|
64
82
|
varying vec2 vRoughnessMapUv;
|
|
@@ -142,4 +160,5 @@ export default /* glsl */`
|
|
|
142
160
|
varying vec2 vThicknessMapUv;
|
|
143
161
|
|
|
144
162
|
#endif
|
|
163
|
+
|
|
145
164
|
`;
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
export default /* glsl */`
|
|
2
2
|
#if defined( USE_UV ) || defined( USE_ANISOTROPY )
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
#if defined( USE_UV1 ) || defined( USE_UV2 ) || defined( USE_UV3 )
|
|
5
|
+
vUv = vec3( uv, 1 ).xy;
|
|
6
|
+
#endif
|
|
5
7
|
|
|
6
8
|
#endif
|
|
7
|
-
#
|
|
9
|
+
#if defined( USE_TRIPLANAR ) || defined( USE_CYLINDRICAL )
|
|
10
|
+
|
|
11
|
+
vModelPosition = (texture3DMatrix * vec4(position.xyz, 1)).xyz;
|
|
12
|
+
|
|
13
|
+
#endif
|
|
14
|
+
#if defined( USE_TRIPLANAR )
|
|
15
|
+
|
|
16
|
+
vModelNormal = normal.xyz;
|
|
17
|
+
|
|
18
|
+
#endif
|
|
19
|
+
#if defined( USE_MAP_UV )
|
|
8
20
|
|
|
9
21
|
vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
|
|
10
22
|
|
|
11
23
|
#endif
|
|
12
|
-
#
|
|
24
|
+
#if defined( USE_ALPHAMAP_UV )
|
|
13
25
|
|
|
14
26
|
vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
|
|
15
27
|
|
|
@@ -19,7 +31,7 @@ export default /* glsl */`
|
|
|
19
31
|
vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
|
|
20
32
|
|
|
21
33
|
#endif
|
|
22
|
-
#
|
|
34
|
+
#if defined( USE_AOMAP_UV )
|
|
23
35
|
|
|
24
36
|
vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
|
|
25
37
|
|
|
@@ -29,7 +41,7 @@ export default /* glsl */`
|
|
|
29
41
|
vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
|
|
30
42
|
|
|
31
43
|
#endif
|
|
32
|
-
#
|
|
44
|
+
#if defined( USE_NORMALMAP_UV )
|
|
33
45
|
|
|
34
46
|
vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
|
|
35
47
|
|
|
@@ -44,12 +56,12 @@ export default /* glsl */`
|
|
|
44
56
|
vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
|
|
45
57
|
|
|
46
58
|
#endif
|
|
47
|
-
#
|
|
59
|
+
#if defined( USE_METALNESSMAP_UV )
|
|
48
60
|
|
|
49
61
|
vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
|
|
50
62
|
|
|
51
63
|
#endif
|
|
52
|
-
#
|
|
64
|
+
#if defined( USE_ROUGHNESSMAP_UV )
|
|
53
65
|
|
|
54
66
|
vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
|
|
55
67
|
|
|
@@ -59,6 +59,7 @@ import logdepthbuf_pars_fragment from './ShaderChunk/logdepthbuf_pars_fragment.g
|
|
|
59
59
|
import logdepthbuf_pars_vertex from './ShaderChunk/logdepthbuf_pars_vertex.glsl.js';
|
|
60
60
|
import logdepthbuf_vertex from './ShaderChunk/logdepthbuf_vertex.glsl.js';
|
|
61
61
|
import map_fragment from './ShaderChunk/map_fragment.glsl.js';
|
|
62
|
+
import triplanar_fragment from './ShaderChunk/triplanar_fragment.glsl.js';
|
|
62
63
|
import map_pars_fragment from './ShaderChunk/map_pars_fragment.glsl.js';
|
|
63
64
|
import map_particle_fragment from './ShaderChunk/map_particle_fragment.glsl.js';
|
|
64
65
|
import map_particle_pars_fragment from './ShaderChunk/map_particle_pars_fragment.glsl.js';
|
|
@@ -186,6 +187,7 @@ export const ShaderChunk = {
|
|
|
186
187
|
logdepthbuf_pars_vertex: logdepthbuf_pars_vertex,
|
|
187
188
|
logdepthbuf_vertex: logdepthbuf_vertex,
|
|
188
189
|
map_fragment: map_fragment,
|
|
190
|
+
triplanar_fragment: triplanar_fragment,
|
|
189
191
|
map_pars_fragment: map_pars_fragment,
|
|
190
192
|
map_particle_fragment: map_particle_fragment,
|
|
191
193
|
map_particle_pars_fragment: map_particle_pars_fragment,
|
|
@@ -5,6 +5,7 @@ attribute float lineDistance;
|
|
|
5
5
|
varying float vLineDistance;
|
|
6
6
|
|
|
7
7
|
#include <common>
|
|
8
|
+
#include <batching_pars_vertex>
|
|
8
9
|
#include <uv_pars_vertex>
|
|
9
10
|
#include <color_pars_vertex>
|
|
10
11
|
#include <fog_pars_vertex>
|
|
@@ -20,6 +21,7 @@ void main() {
|
|
|
20
21
|
#include <color_vertex>
|
|
21
22
|
#include <morphinstance_vertex>
|
|
22
23
|
#include <morphcolor_vertex>
|
|
24
|
+
#include <batching_vertex>
|
|
23
25
|
#include <begin_vertex>
|
|
24
26
|
#include <morphtarget_vertex>
|
|
25
27
|
#include <project_vertex>
|
|
@@ -168,6 +168,7 @@ void main() {
|
|
|
168
168
|
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
|
|
169
169
|
vec3 totalEmissiveRadiance = emissive;
|
|
170
170
|
|
|
171
|
+
#include <triplanar_fragment>
|
|
171
172
|
#include <logdepthbuf_fragment>
|
|
172
173
|
#include <map_fragment>
|
|
173
174
|
#include <color_fragment>
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { Color } from '../../math/Color.js';
|
|
2
2
|
import { Vector2 } from '../../math/Vector2.js';
|
|
3
3
|
import { Matrix3 } from '../../math/Matrix3.js';
|
|
4
|
+
import { Matrix4 } from '../../math/Matrix4.js';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
* Uniforms library for shared webgl shaders
|
|
7
|
-
*/
|
|
8
|
-
|
|
6
|
+
// Uniforms library for shared webgl shaders
|
|
9
7
|
const UniformsLib = {
|
|
10
8
|
|
|
11
9
|
common: {
|
|
@@ -19,7 +17,10 @@ const UniformsLib = {
|
|
|
19
17
|
alphaMap: { value: null },
|
|
20
18
|
alphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },
|
|
21
19
|
|
|
22
|
-
alphaTest: { value: 0 }
|
|
20
|
+
alphaTest: { value: 0 },
|
|
21
|
+
|
|
22
|
+
texture3DMatrix: { value: /*@__PURE__*/ new Matrix4() },
|
|
23
|
+
triplanarHardness: { value: 16.0 }
|
|
23
24
|
|
|
24
25
|
},
|
|
25
26
|
|
|
@@ -101,7 +101,8 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha,
|
|
|
101
101
|
side: BackSide,
|
|
102
102
|
depthTest: false,
|
|
103
103
|
depthWrite: false,
|
|
104
|
-
fog: false
|
|
104
|
+
fog: false,
|
|
105
|
+
allowOverride: false
|
|
105
106
|
} )
|
|
106
107
|
);
|
|
107
108
|
|
|
@@ -180,7 +181,8 @@ function WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha,
|
|
|
180
181
|
side: FrontSide,
|
|
181
182
|
depthTest: false,
|
|
182
183
|
depthWrite: false,
|
|
183
|
-
fog: false
|
|
184
|
+
fog: false,
|
|
185
|
+
allowOverride: false
|
|
184
186
|
} )
|
|
185
187
|
);
|
|
186
188
|
|
|
@@ -141,6 +141,18 @@ function WebGLMaterials( renderer, properties ) {
|
|
|
141
141
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
+
if ( material.texture3DMatrix ) {
|
|
145
|
+
|
|
146
|
+
uniforms.texture3DMatrix.value.copy( material.texture3DMatrix );
|
|
147
|
+
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if ( material.triplanarHardness ) {
|
|
151
|
+
|
|
152
|
+
uniforms.triplanarHardness.value = material.triplanarHardness;
|
|
153
|
+
|
|
154
|
+
}
|
|
155
|
+
|
|
144
156
|
if ( material.alphaMap ) {
|
|
145
157
|
|
|
146
158
|
uniforms.alphaMap.value = material.alphaMap;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WebGLUniforms } from './WebGLUniforms.js';
|
|
2
2
|
import { WebGLShader } from './WebGLShader.js';
|
|
3
3
|
import { ShaderChunk } from '../shaders/ShaderChunk.js';
|
|
4
|
-
import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, AgXToneMapping, ACESFilmicToneMapping, NeutralToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GLSL3, LinearTransfer, SRGBTransfer } from '../../constants.js';
|
|
4
|
+
import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, AgXToneMapping, ACESFilmicToneMapping, NeutralToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GLSL3, LinearTransfer, SRGBTransfer, TriPlanarMapping, CylindricalMapping, UVMapping } from '../../constants.js';
|
|
5
5
|
import { ColorManagement } from '../../math/ColorManagement.js';
|
|
6
6
|
import { Vector3 } from '../../math/Vector3.js';
|
|
7
7
|
import { Matrix3 } from '../../math/Matrix3.js';
|
|
@@ -552,14 +552,17 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
552
552
|
parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',
|
|
553
553
|
|
|
554
554
|
parameters.map ? '#define USE_MAP' : '',
|
|
555
|
+
parameters.mapMode === TriPlanarMapping ? '#define USE_MAP_TRIPLANAR' : parameters.mapMode === CylindricalMapping ? '#define USE_MAP_CYLINDRICAL' : parameters.mapMode === UVMapping ? '#define USE_MAP_UV' : '',
|
|
555
556
|
parameters.envMap ? '#define USE_ENVMAP' : '',
|
|
556
557
|
parameters.envMap ? '#define ' + envMapModeDefine : '',
|
|
557
558
|
parameters.lightMap ? '#define USE_LIGHTMAP' : '',
|
|
558
559
|
parameters.aoMap ? '#define USE_AOMAP' : '',
|
|
560
|
+
parameters.aoMapMode === TriPlanarMapping ? '#define USE_AOMAP_TRIPLANAR' : parameters.aoMapMode === CylindricalMapping ? '#define USE_AOMAP_CYLINDRICAL' : parameters.aoMapMode == UVMapping ? '#define USE_AOMAP_UV' : '',
|
|
559
561
|
parameters.bumpMap ? '#define USE_BUMPMAP' : '',
|
|
560
562
|
parameters.normalMap ? '#define USE_NORMALMAP' : '',
|
|
561
|
-
parameters.
|
|
562
|
-
parameters.
|
|
563
|
+
parameters.normalMapMode === TriPlanarMapping ? '#define USE_NORMALMAP_TRIPLANAR' : parameters.normalMapMode === CylindricalMapping ? '#define USE_NORMALMAP_CYLINDRICAL' : parameters.normalMapMode === UVMapping ? '#define USE_NORMALMAP_UV' : '',
|
|
564
|
+
parameters.normalMapObjectSpace && [UVMapping, CylindricalMapping].includes( parameters.normalMapMode ) ? '#define USE_NORMALMAP_OBJECTSPACE' : '',
|
|
565
|
+
parameters.normalMapTangentSpace && [UVMapping, CylindricalMapping].includes( parameters.normalMapMode ) ? '#define USE_NORMALMAP_TANGENTSPACE' : '',
|
|
563
566
|
parameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '',
|
|
564
567
|
parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',
|
|
565
568
|
|
|
@@ -569,6 +572,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
569
572
|
parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',
|
|
570
573
|
parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',
|
|
571
574
|
parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',
|
|
575
|
+
parameters.clearcoatNormalMapMode === TriPlanarMapping ? '#define USE_CLEARCOAT_NORMALMAP_TRIPLANAR'
|
|
576
|
+
: parameters.clearcoatNormalMapMode === CylindricalMapping ? '#define USE_CLEARCOAT_NORMALMAP_CYLINDRICAL'
|
|
577
|
+
: parameters.clearcoatNormalMapMode === UVMapping ? '#define USE_CLEARCOAT_NORMALMAP_UV' : '',
|
|
572
578
|
|
|
573
579
|
parameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',
|
|
574
580
|
parameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',
|
|
@@ -578,8 +584,11 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
578
584
|
parameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',
|
|
579
585
|
|
|
580
586
|
parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',
|
|
587
|
+
parameters.roughnessMapMode === TriPlanarMapping ? '#define USE_ROUGHNESSMAP_TRIPLANAR' : parameters.roughnessMapMode === CylindricalMapping ? '#define USE_ROUGHNESSMAP_CYLINDRICAL' : parameters.roughnessMapMode === UVMapping ? '#define USE_ROUGHNESSMAP_UV' : '',
|
|
581
588
|
parameters.metalnessMap ? '#define USE_METALNESSMAP' : '',
|
|
589
|
+
parameters.metalnessMapMode === TriPlanarMapping ? '#define USE_METALNESSMAP_TRIPLANAR' : parameters.metalnessMapMode === CylindricalMapping ? '#define USE_METALNESSMAP_CYLINDRICAL' : parameters.metalnessMapMode === UVMapping ? '#define USE_METALNESSMAP_UV' : '',
|
|
582
590
|
parameters.alphaMap ? '#define USE_ALPHAMAP' : '',
|
|
591
|
+
parameters.alphaMapMode === TriPlanarMapping ? '#define USE_ALPHAMAP_TRIPLANAR' : parameters.alphaMapMode === CylindricalMapping ? '#define USE_ALPHAMAP_CYLINDRICAL' : parameters.alphaMapMode === UVMapping ? '#define USE_ALPHAMAP_UV' : '',
|
|
583
592
|
parameters.alphaHash ? '#define USE_ALPHAHASH' : '',
|
|
584
593
|
|
|
585
594
|
parameters.transmission ? '#define USE_TRANSMISSION' : '',
|
|
@@ -744,6 +753,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
744
753
|
|
|
745
754
|
parameters.alphaToCoverage ? '#define ALPHA_TO_COVERAGE' : '',
|
|
746
755
|
parameters.map ? '#define USE_MAP' : '',
|
|
756
|
+
parameters.mapMode === TriPlanarMapping ? '#define USE_MAP_TRIPLANAR' : parameters.mapMode === CylindricalMapping ? '#define USE_MAP_CYLINDRICAL' : parameters.mapMode === UVMapping ? '#define USE_MAP_UV' : '',
|
|
747
757
|
parameters.matcap ? '#define USE_MATCAP' : '',
|
|
748
758
|
parameters.envMap ? '#define USE_ENVMAP' : '',
|
|
749
759
|
parameters.envMap ? '#define ' + envMapTypeDefine : '',
|
|
@@ -754,10 +764,12 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
754
764
|
envMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '',
|
|
755
765
|
parameters.lightMap ? '#define USE_LIGHTMAP' : '',
|
|
756
766
|
parameters.aoMap ? '#define USE_AOMAP' : '',
|
|
767
|
+
parameters.aoMapMode === TriPlanarMapping ? '#define USE_AOMAP_TRIPLANAR' : parameters.aoMapMode === CylindricalMapping ? '#define USE_AOMAP_CYLINDRICAL' : parameters.aoMapMode == UVMapping ? '#define USE_AOMAP_UV' : '',
|
|
757
768
|
parameters.bumpMap ? '#define USE_BUMPMAP' : '',
|
|
758
769
|
parameters.normalMap ? '#define USE_NORMALMAP' : '',
|
|
759
|
-
parameters.
|
|
760
|
-
parameters.
|
|
770
|
+
parameters.normalMapMode === TriPlanarMapping ? '#define USE_NORMALMAP_TRIPLANAR' : parameters.normalMapMode === CylindricalMapping ? '#define USE_NORMALMAP_CYLINDRICAL' : parameters.normalMapMode === UVMapping ? '#define USE_NORMALMAP_UV' : '',
|
|
771
|
+
parameters.normalMapObjectSpace && [UVMapping, CylindricalMapping].includes( parameters.normalMapMode ) ? '#define USE_NORMALMAP_OBJECTSPACE' : '',
|
|
772
|
+
parameters.normalMapTangentSpace && [UVMapping, CylindricalMapping].includes( parameters.normalMapMode ) ? '#define USE_NORMALMAP_TANGENTSPACE' : '',
|
|
761
773
|
parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',
|
|
762
774
|
|
|
763
775
|
parameters.anisotropy ? '#define USE_ANISOTROPY' : '',
|
|
@@ -767,6 +779,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
767
779
|
parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',
|
|
768
780
|
parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',
|
|
769
781
|
parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',
|
|
782
|
+
parameters.clearcoatNormalMapMode === TriPlanarMapping ? '#define USE_CLEARCOAT_NORMALMAP_TRIPLANAR'
|
|
783
|
+
: parameters.clearcoatNormalMapMode === CylindricalMapping ? '#define USE_CLEARCOAT_NORMALMAP_CYLINDRICAL'
|
|
784
|
+
: parameters.clearcoatNormalMapMode === UVMapping ? '#define USE_CLEARCOAT_NORMALMAP_UV' : '',
|
|
770
785
|
|
|
771
786
|
parameters.dispersion ? '#define USE_DISPERSION' : '',
|
|
772
787
|
|
|
@@ -779,9 +794,12 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
779
794
|
parameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',
|
|
780
795
|
|
|
781
796
|
parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',
|
|
797
|
+
parameters.roughnessMapMode === TriPlanarMapping ? '#define USE_ROUGHNESSMAP_TRIPLANAR' : parameters.roughnessMapMode === CylindricalMapping ? '#define USE_ROUGHNESSMAP_CYLINDRICAL' : parameters.roughnessMapMode === UVMapping ? '#define USE_ROUGHNESSMAP_UV' : '',
|
|
782
798
|
parameters.metalnessMap ? '#define USE_METALNESSMAP' : '',
|
|
799
|
+
parameters.metalnessMapMode === TriPlanarMapping ? '#define USE_METALNESSMAP_TRIPLANAR' : parameters.metalnessMapMode === CylindricalMapping ? '#define USE_METALNESSMAP_CYLINDRICAL' : parameters.metalnessMapMode === UVMapping ? '#define USE_METALNESSMAP_UV' : '',
|
|
783
800
|
|
|
784
801
|
parameters.alphaMap ? '#define USE_ALPHAMAP' : '',
|
|
802
|
+
parameters.alphaMapMode === TriPlanarMapping ? '#define USE_ALPHAMAP_TRIPLANAR' : parameters.alphaMapMode === CylindricalMapping ? '#define USE_ALPHAMAP_CYLINDRICAL' : parameters.alphaMapMode === UVMapping ? '#define USE_ALPHAMAP_UV' : '',
|
|
785
803
|
parameters.alphaTest ? '#define USE_ALPHATEST' : '',
|
|
786
804
|
parameters.alphaHash ? '#define USE_ALPHAHASH' : '',
|
|
787
805
|
|
|
@@ -822,7 +840,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
822
840
|
parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
|
|
823
841
|
parameters.reverseDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',
|
|
824
842
|
|
|
843
|
+
'uniform mat4 modelViewMatrix;',
|
|
825
844
|
'uniform mat4 viewMatrix;',
|
|
845
|
+
'uniform mat3 normalMatrix;',
|
|
826
846
|
'uniform vec3 cameraPosition;',
|
|
827
847
|
'uniform bool isOrthographic;',
|
|
828
848
|
|