super-three 0.152.0 → 0.154.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.cjs +779 -557
- package/build/three.js +779 -557
- package/build/three.min.js +2 -1
- package/build/three.module.js +770 -539
- package/build/three.module.min.js +2 -1
- package/examples/jsm/cameras/CinematicCamera.js +1 -2
- package/examples/jsm/capabilities/WebGPU.js +15 -1
- package/examples/jsm/controls/ArcballControls.js +2 -1
- package/examples/jsm/controls/FlyControls.js +25 -9
- package/examples/jsm/controls/OrbitControls.js +5 -1
- package/examples/jsm/csm/CSM.js +1 -3
- package/examples/jsm/effects/AnaglyphEffect.js +6 -20
- package/examples/jsm/effects/OutlineEffect.js +1 -1
- package/examples/jsm/effects/ParallaxBarrierEffect.js +3 -0
- package/examples/jsm/environments/RoomEnvironment.js +6 -2
- package/examples/jsm/exporters/GLTFExporter.js +74 -2
- package/examples/jsm/exporters/USDZExporter.js +170 -129
- package/examples/jsm/helpers/ViewHelper.js +1 -1
- package/examples/jsm/lines/LineMaterial.js +1 -1
- package/examples/jsm/loaders/3DMLoader.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +5 -1
- package/examples/jsm/loaders/AMFLoader.js +5 -1
- package/examples/jsm/loaders/ColladaLoader.js +4 -1
- package/examples/jsm/loaders/DRACOLoader.js +2 -0
- package/examples/jsm/loaders/FBXLoader.js +9 -2
- package/examples/jsm/loaders/GLTFLoader.js +230 -94
- package/examples/jsm/loaders/KTX2Loader.js +106 -47
- package/examples/jsm/loaders/LDrawLoader.js +4 -7
- package/examples/jsm/loaders/MMDLoader.js +40 -13
- package/examples/jsm/loaders/PCDLoader.js +25 -10
- package/examples/jsm/loaders/PDBLoader.js +7 -2
- package/examples/jsm/loaders/PLYLoader.js +30 -8
- package/examples/jsm/loaders/STLLoader.js +8 -3
- package/examples/jsm/loaders/VRMLLoader.js +55 -7
- package/examples/jsm/loaders/VTKLoader.js +12 -4
- package/examples/jsm/loaders/XYZLoader.js +9 -3
- package/examples/jsm/materials/MeshGouraudMaterial.js +2 -2
- package/examples/jsm/math/Lut.js +5 -4
- package/examples/jsm/math/MeshSurfaceSampler.js +82 -37
- package/examples/jsm/misc/GPUComputationRenderer.js +1 -0
- package/examples/jsm/misc/VolumeSlice.js +3 -1
- package/examples/jsm/nodes/Nodes.js +22 -16
- package/examples/jsm/nodes/accessors/BufferAttributeNode.js +99 -0
- package/examples/jsm/nodes/accessors/BufferNode.js +2 -2
- package/examples/jsm/nodes/accessors/CameraNode.js +25 -4
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +7 -1
- package/examples/jsm/nodes/accessors/InstanceNode.js +29 -12
- package/examples/jsm/nodes/accessors/MaterialNode.js +55 -47
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +2 -2
- package/examples/jsm/nodes/accessors/ModelNode.js +3 -1
- package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +4 -9
- package/examples/jsm/nodes/accessors/MorphNode.js +70 -0
- package/examples/jsm/nodes/accessors/NormalNode.js +3 -2
- package/examples/jsm/nodes/accessors/Object3DNode.js +10 -2
- package/examples/jsm/nodes/accessors/ReferenceNode.js +2 -2
- package/examples/jsm/nodes/accessors/SceneNode.js +46 -0
- package/examples/jsm/nodes/accessors/SkinningNode.js +43 -62
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +2 -2
- package/examples/jsm/nodes/accessors/TangentNode.js +2 -2
- package/examples/jsm/nodes/accessors/TextureBicubicNode.js +94 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +68 -6
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +35 -0
- package/examples/jsm/nodes/accessors/UVNode.js +1 -1
- package/examples/jsm/nodes/code/CodeNode.js +3 -0
- package/examples/jsm/nodes/code/FunctionNode.js +25 -4
- package/examples/jsm/nodes/core/AttributeNode.js +1 -1
- package/examples/jsm/nodes/core/BypassNode.js +2 -2
- package/examples/jsm/nodes/core/ContextNode.js +2 -0
- package/examples/jsm/nodes/core/IndexNode.js +66 -0
- package/examples/jsm/nodes/core/LightingModel.js +2 -1
- package/examples/jsm/nodes/core/Node.js +13 -16
- package/examples/jsm/nodes/core/NodeAttribute.js +2 -1
- package/examples/jsm/nodes/core/NodeBuilder.js +86 -8
- package/examples/jsm/nodes/core/NodeUtils.js +10 -0
- package/examples/jsm/nodes/core/PropertyNode.js +6 -2
- package/examples/jsm/nodes/core/StackNode.js +8 -1
- package/examples/jsm/nodes/core/UniformNode.js +1 -1
- package/examples/jsm/nodes/core/VarNode.js +1 -3
- package/examples/jsm/nodes/display/BlendModeNode.js +9 -9
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +7 -7
- package/examples/jsm/nodes/display/ColorSpaceNode.js +50 -49
- package/examples/jsm/nodes/display/NormalMapNode.js +3 -3
- package/examples/jsm/nodes/display/ToneMappingNode.js +24 -15
- package/examples/jsm/nodes/display/ViewportDepthNode.js +69 -0
- package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +34 -0
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +7 -6
- package/examples/jsm/nodes/display/ViewportTextureNode.js +33 -19
- package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +5 -5
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -8
- package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +43 -0
- package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +4 -4
- package/examples/jsm/nodes/functions/BSDF/D_GGX.js +2 -2
- package/examples/jsm/nodes/functions/BSDF/EnvironmentBRDF.js +13 -0
- package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +2 -4
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
- package/examples/jsm/nodes/functions/PhongLightingModel.js +7 -7
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +132 -19
- package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +2 -2
- package/examples/jsm/nodes/functions/material/getRoughness.js +3 -3
- package/examples/jsm/nodes/geometry/RangeNode.js +33 -51
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +6 -3
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -2
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +107 -62
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +2 -2
- package/examples/jsm/nodes/lighting/LightUtils.js +2 -2
- package/examples/jsm/nodes/lighting/LightingContextNode.js +17 -15
- package/examples/jsm/nodes/lighting/PointLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/SpotLightNode.js +3 -3
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -15
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -15
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -10
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -9
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +41 -0
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +1 -14
- package/examples/jsm/nodes/materials/NodeMaterial.js +119 -29
- package/examples/jsm/nodes/materials/PointsNodeMaterial.js +0 -9
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -7
- package/examples/jsm/nodes/materialx/lib/mx_hsv.js +3 -3
- package/examples/jsm/nodes/materialx/lib/mx_noise.js +14 -14
- package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +4 -4
- package/examples/jsm/nodes/math/MathNode.js +6 -0
- package/examples/jsm/nodes/math/OperatorNode.js +1 -1
- package/examples/jsm/nodes/procedural/CheckerNode.js +3 -3
- package/examples/jsm/nodes/shadernode/ShaderNode.js +60 -33
- package/examples/jsm/nodes/utils/EquirectUVNode.js +2 -3
- package/examples/jsm/nodes/utils/LoopNode.js +186 -0
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +1 -1
- package/examples/jsm/objects/GroundProjectedSkybox.js +1 -1
- package/examples/jsm/objects/Lensflare.js +3 -4
- package/examples/jsm/objects/MarchingCubes.js +5 -1
- package/examples/jsm/objects/Reflector.js +4 -1
- package/examples/jsm/objects/Refractor.js +1 -1
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/Water.js +2 -1
- package/examples/jsm/objects/Water2.js +1 -1
- package/examples/jsm/offscreen/scene.js +1 -0
- package/examples/jsm/physics/RapierPhysics.js +93 -133
- package/examples/jsm/postprocessing/AfterimagePass.js +3 -0
- package/examples/jsm/postprocessing/BloomPass.js +7 -2
- package/examples/jsm/postprocessing/BokehPass.js +3 -2
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
- package/examples/jsm/postprocessing/EffectComposer.js +4 -1
- package/examples/jsm/postprocessing/FilmPass.js +1 -0
- package/examples/jsm/postprocessing/OutlinePass.js +8 -9
- package/examples/jsm/postprocessing/OutputPass.js +72 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +4 -3
- package/examples/jsm/postprocessing/SAOPass.js +4 -2
- package/examples/jsm/postprocessing/SMAAPass.js +5 -2
- package/examples/jsm/postprocessing/SSAARenderPass.js +5 -13
- package/examples/jsm/postprocessing/SSAOPass.js +4 -2
- package/examples/jsm/postprocessing/SSRPass.js +3 -1
- package/examples/jsm/postprocessing/SavePass.js +5 -2
- package/examples/jsm/postprocessing/ShaderPass.js +1 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +17 -4
- package/examples/jsm/postprocessing/TexturePass.js +2 -1
- package/examples/jsm/postprocessing/UnrealBloomPass.js +13 -13
- package/examples/jsm/renderers/{webgpu/WebGPUAnimation.js → common/Animation.js} +2 -2
- package/examples/jsm/renderers/common/Attributes.js +75 -0
- package/examples/jsm/renderers/common/Backend.js +162 -0
- package/examples/jsm/renderers/common/Background.js +134 -0
- package/examples/jsm/renderers/common/Binding.js +11 -0
- package/examples/jsm/renderers/common/Bindings.js +169 -0
- package/examples/jsm/renderers/common/Buffer.js +38 -0
- package/examples/jsm/renderers/{webgpu/WebGPUBufferUtils.js → common/BufferUtils.js} +2 -2
- package/examples/jsm/renderers/{webgpu/WebGPUWeakMap.js → common/ChainMap.js} +11 -5
- package/examples/jsm/renderers/common/ComputePipeline.js +17 -0
- package/examples/jsm/renderers/common/Constants.js +14 -0
- package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -0
- package/examples/jsm/renderers/common/DataMap.js +54 -0
- package/examples/jsm/renderers/{webgpu/WebGPUGeometries.js → common/Geometries.js} +38 -37
- package/examples/jsm/renderers/{webgpu/WebGPUInfo.js → common/Info.js} +2 -3
- package/examples/jsm/renderers/common/Pipeline.js +13 -0
- package/examples/jsm/renderers/common/Pipelines.js +321 -0
- package/examples/jsm/renderers/common/ProgrammableStage.js +18 -0
- package/examples/jsm/renderers/common/RenderContext.js +37 -0
- package/examples/jsm/renderers/common/RenderContexts.js +38 -0
- package/examples/jsm/renderers/{webgpu/WebGPURenderLists.js → common/RenderList.js} +2 -39
- package/examples/jsm/renderers/common/RenderLists.js +38 -0
- package/examples/jsm/renderers/common/RenderObject.js +113 -0
- package/examples/jsm/renderers/common/RenderObjects.js +92 -0
- package/examples/jsm/renderers/common/RenderPipeline.js +16 -0
- package/examples/jsm/renderers/{webgpu/WebGPURenderTarget.js → common/RenderTarget.js} +2 -2
- package/examples/jsm/renderers/common/Renderer.js +864 -0
- package/examples/jsm/renderers/common/SampledTexture.js +80 -0
- package/examples/jsm/renderers/common/Sampler.js +18 -0
- package/examples/jsm/renderers/common/StorageBuffer.js +17 -0
- package/examples/jsm/renderers/common/Textures.js +206 -0
- package/examples/jsm/renderers/{webgpu/WebGPUUniform.js → common/Uniform.js} +13 -9
- package/examples/jsm/renderers/common/UniformBuffer.js +15 -0
- package/examples/jsm/renderers/{webgpu/WebGPUUniformsGroup.js → common/UniformsGroup.js} +13 -13
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodes.js → common/nodes/NodeRender.js} +3 -3
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampledTexture.js → common/nodes/NodeSampledTexture.js} +4 -4
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampler.js → common/nodes/NodeSampler.js} +3 -3
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeUniform.js → common/nodes/NodeUniform.js} +1 -1
- package/examples/jsm/renderers/common/nodes/Nodes.js +319 -0
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +340 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +23 -19
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +847 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +15 -1131
- package/examples/jsm/renderers/webgpu/nodes/{WebGPUNodeBuilder.js → WGSLNodeBuilder.js} +75 -45
- package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeFunction.js +2 -2
- package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeParser.js +1 -1
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +255 -0
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +145 -0
- package/examples/jsm/renderers/webgpu/{constants.js → utils/WebGPUConstants.js} +6 -7
- package/examples/jsm/renderers/webgpu/{WebGPURenderPipeline.js → utils/WebGPUPipelineUtils.js} +154 -247
- package/examples/jsm/renderers/webgpu/{WebGPUTextureUtils.js → utils/WebGPUTextureMipmapUtils.js} +3 -25
- package/examples/jsm/renderers/webgpu/{WebGPUTextures.js → utils/WebGPUTextureUtils.js} +392 -505
- package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +92 -0
- package/examples/jsm/shaders/BleachBypassShader.js +2 -0
- package/examples/jsm/shaders/BlendShader.js +1 -2
- package/examples/jsm/shaders/BokehShader2.js +3 -0
- package/examples/jsm/shaders/ColorifyShader.js +2 -0
- package/examples/jsm/shaders/ConvolutionShader.js +2 -0
- package/examples/jsm/shaders/CopyShader.js +4 -2
- package/examples/jsm/shaders/DotScreenShader.js +2 -0
- package/examples/jsm/shaders/ExposureShader.js +44 -0
- package/examples/jsm/shaders/FilmShader.js +2 -0
- package/examples/jsm/shaders/GammaCorrectionShader.js +2 -0
- package/examples/jsm/shaders/HorizontalBlurShader.js +2 -0
- package/examples/jsm/shaders/OutputShader.js +61 -0
- package/examples/jsm/shaders/RGBShiftShader.js +2 -0
- package/examples/jsm/shaders/SepiaShader.js +2 -0
- package/examples/jsm/shaders/ToonShader.js +13 -5
- package/examples/jsm/shaders/VerticalBlurShader.js +2 -0
- package/examples/jsm/shaders/VignetteShader.js +2 -0
- package/examples/jsm/shaders/WaterRefractionShader.js +5 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +17 -1
- package/examples/jsm/utils/TextureUtils.js +86 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +34 -13
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +1 -0
- package/examples/jsm/webxr/XRPlanes.js +100 -0
- package/package.json +3 -1
- package/src/Three.Legacy.js +0 -228
- package/src/audio/PositionalAudio.js +8 -0
- package/src/cameras/Camera.js +5 -0
- package/src/cameras/CubeCamera.js +76 -13
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/constants.js +13 -1
- package/src/core/BufferAttribute.js +3 -25
- package/src/core/BufferGeometry.js +1 -8
- package/src/core/Object3D.js +1 -1
- package/src/extras/core/Curve.js +1 -1
- package/src/loaders/CubeTextureLoader.js +2 -0
- package/src/loaders/Loader.js +2 -0
- package/src/loaders/MaterialLoader.js +5 -0
- package/src/loaders/ObjectLoader.js +1 -0
- package/src/materials/Material.js +13 -1
- package/src/materials/MeshPhysicalMaterial.js +32 -6
- package/src/math/Color.js +16 -11
- package/src/math/Frustum.js +16 -2
- package/src/math/MathUtils.js +16 -0
- package/src/math/Matrix3.js +26 -6
- package/src/math/Matrix4.js +74 -19
- package/src/objects/InstancedMesh.js +3 -0
- package/src/objects/Mesh.js +14 -10
- package/src/objects/Skeleton.js +1 -3
- package/src/objects/SkinnedMesh.js +36 -8
- package/src/renderers/WebGLRenderer.js +126 -21
- package/src/renderers/shaders/ShaderChunk/alphahash_fragment.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/alphahash_pars_fragment.glsl.js +68 -0
- package/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +26 -3
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +9 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +26 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +10 -2
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/{output_fragment.glsl.js → opaque_fragment.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +10 -5
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +6 -1
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +7 -1
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +6 -1
- package/src/renderers/shaders/ShaderChunk.js +10 -6
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/cube.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -2
- package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +12 -2
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/points.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/sprite.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib.js +4 -1
- package/src/renderers/shaders/UniformsLib.js +2 -0
- package/src/renderers/webgl/WebGLBindingStates.js +13 -5
- package/src/renderers/webgl/WebGLGeometries.js +12 -0
- package/src/renderers/webgl/WebGLInfo.js +0 -1
- package/src/renderers/webgl/WebGLMaterials.js +18 -0
- package/src/renderers/webgl/WebGLObjects.js +23 -3
- package/src/renderers/webgl/WebGLProgram.js +43 -5
- package/src/renderers/webgl/WebGLPrograms.js +19 -7
- package/src/renderers/webgl/WebGLTextures.js +19 -1
- package/src/renderers/webvr/WebVRManager.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +39 -99
- package/src/scenes/Scene.js +0 -14
- package/src/textures/DepthTexture.js +22 -0
- package/src/textures/FramebufferTexture.js +1 -3
- package/src/textures/Source.js +4 -0
- package/src/textures/Texture.js +1 -1
- package/examples/jsm/exporters/ColladaExporter.js +0 -725
- package/examples/jsm/geometries/LightningStrike.js +0 -1017
- package/examples/jsm/loaders/PRWMLoader.js +0 -299
- package/examples/jsm/nodes/core/InstanceIndexNode.js +0 -26
- package/examples/jsm/objects/LightningStorm.js +0 -245
- package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -361
- package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +0 -197
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +0 -190
- package/examples/jsm/renderers/webgpu/WebGPUBinding.js +0 -22
- package/examples/jsm/renderers/webgpu/WebGPUBindings.js +0 -270
- package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +0 -43
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +0 -78
- package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +0 -22
- package/examples/jsm/renderers/webgpu/WebGPUProperties.js +0 -44
- package/examples/jsm/renderers/webgpu/WebGPURenderObject.js +0 -40
- package/examples/jsm/renderers/webgpu/WebGPURenderObjects.js +0 -50
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +0 -274
- package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +0 -54
- package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +0 -75
- package/examples/jsm/renderers/webgpu/WebGPUSampler.js +0 -29
- package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +0 -20
- package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +0 -38
- package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +0 -18
- package/examples/jsm/renderers/webgpu/WebGPUUtils.js +0 -88
- package/examples/jsm/shaders/ToneMapShader.js +0 -73
- /package/src/renderers/shaders/ShaderChunk/{encodings_fragment.glsl.js → colorspace_fragment.glsl.js} +0 -0
- /package/src/renderers/shaders/ShaderChunk/{encodings_pars_fragment.glsl.js → colorspace_pars_fragment.glsl.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default /* glsl */`
|
|
2
|
-
#
|
|
2
|
+
#if defined( USE_UV ) || defined( USE_ANISOTROPY )
|
|
3
3
|
|
|
4
4
|
varying vec2 vUv;
|
|
5
5
|
|
|
@@ -63,6 +63,12 @@ export default /* glsl */`
|
|
|
63
63
|
uniform mat3 roughnessMapTransform;
|
|
64
64
|
varying vec2 vRoughnessMapUv;
|
|
65
65
|
|
|
66
|
+
#endif
|
|
67
|
+
#ifdef USE_ANISOTROPYMAP
|
|
68
|
+
|
|
69
|
+
uniform mat3 anisotropyMapTransform;
|
|
70
|
+
varying vec2 vAnisotropyMapUv;
|
|
71
|
+
|
|
66
72
|
#endif
|
|
67
73
|
#ifdef USE_CLEARCOATMAP
|
|
68
74
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default /* glsl */`
|
|
2
|
-
#
|
|
2
|
+
#if defined( USE_UV ) || defined( USE_ANISOTROPY )
|
|
3
3
|
|
|
4
4
|
vUv = vec3( uv, 1 ).xy;
|
|
5
5
|
|
|
@@ -53,6 +53,11 @@ export default /* glsl */`
|
|
|
53
53
|
|
|
54
54
|
vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
|
|
55
55
|
|
|
56
|
+
#endif
|
|
57
|
+
#ifdef USE_ANISOTROPYMAP
|
|
58
|
+
|
|
59
|
+
vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
|
|
60
|
+
|
|
56
61
|
#endif
|
|
57
62
|
#ifdef USE_CLEARCOATMAP
|
|
58
63
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import alphahash_fragment from './ShaderChunk/alphahash_fragment.glsl.js';
|
|
2
|
+
import alphahash_pars_fragment from './ShaderChunk/alphahash_pars_fragment.glsl.js';
|
|
1
3
|
import alphamap_fragment from './ShaderChunk/alphamap_fragment.glsl.js';
|
|
2
4
|
import alphamap_pars_fragment from './ShaderChunk/alphamap_pars_fragment.glsl.js';
|
|
3
5
|
import alphatest_fragment from './ShaderChunk/alphatest_fragment.glsl.js';
|
|
@@ -24,8 +26,8 @@ import displacementmap_pars_vertex from './ShaderChunk/displacementmap_pars_vert
|
|
|
24
26
|
import displacementmap_vertex from './ShaderChunk/displacementmap_vertex.glsl.js';
|
|
25
27
|
import emissivemap_fragment from './ShaderChunk/emissivemap_fragment.glsl.js';
|
|
26
28
|
import emissivemap_pars_fragment from './ShaderChunk/emissivemap_pars_fragment.glsl.js';
|
|
27
|
-
import
|
|
28
|
-
import
|
|
29
|
+
import colorspace_fragment from './ShaderChunk/colorspace_fragment.glsl.js';
|
|
30
|
+
import colorspace_pars_fragment from './ShaderChunk/colorspace_pars_fragment.glsl.js';
|
|
29
31
|
import envmap_fragment from './ShaderChunk/envmap_fragment.glsl.js';
|
|
30
32
|
import envmap_common_pars_fragment from './ShaderChunk/envmap_common_pars_fragment.glsl.js';
|
|
31
33
|
import envmap_pars_fragment from './ShaderChunk/envmap_pars_fragment.glsl.js';
|
|
@@ -75,7 +77,7 @@ import clearcoat_normal_fragment_begin from './ShaderChunk/clearcoat_normal_frag
|
|
|
75
77
|
import clearcoat_normal_fragment_maps from './ShaderChunk/clearcoat_normal_fragment_maps.glsl.js';
|
|
76
78
|
import clearcoat_pars_fragment from './ShaderChunk/clearcoat_pars_fragment.glsl.js';
|
|
77
79
|
import iridescence_pars_fragment from './ShaderChunk/iridescence_pars_fragment.glsl.js';
|
|
78
|
-
import
|
|
80
|
+
import opaque_fragment from './ShaderChunk/opaque_fragment.glsl.js';
|
|
79
81
|
import packing from './ShaderChunk/packing.glsl.js';
|
|
80
82
|
import premultiplied_alpha_fragment from './ShaderChunk/premultiplied_alpha_fragment.glsl.js';
|
|
81
83
|
import project_vertex from './ShaderChunk/project_vertex.glsl.js';
|
|
@@ -121,6 +123,8 @@ import * as shadow from './ShaderLib/shadow.glsl.js';
|
|
|
121
123
|
import * as sprite from './ShaderLib/sprite.glsl.js';
|
|
122
124
|
|
|
123
125
|
export const ShaderChunk = {
|
|
126
|
+
alphahash_fragment: alphahash_fragment,
|
|
127
|
+
alphahash_pars_fragment: alphahash_pars_fragment,
|
|
124
128
|
alphamap_fragment: alphamap_fragment,
|
|
125
129
|
alphamap_pars_fragment: alphamap_pars_fragment,
|
|
126
130
|
alphatest_fragment: alphatest_fragment,
|
|
@@ -147,8 +151,8 @@ export const ShaderChunk = {
|
|
|
147
151
|
displacementmap_vertex: displacementmap_vertex,
|
|
148
152
|
emissivemap_fragment: emissivemap_fragment,
|
|
149
153
|
emissivemap_pars_fragment: emissivemap_pars_fragment,
|
|
150
|
-
|
|
151
|
-
|
|
154
|
+
colorspace_fragment: colorspace_fragment,
|
|
155
|
+
colorspace_pars_fragment: colorspace_pars_fragment,
|
|
152
156
|
envmap_fragment: envmap_fragment,
|
|
153
157
|
envmap_common_pars_fragment: envmap_common_pars_fragment,
|
|
154
158
|
envmap_pars_fragment: envmap_pars_fragment,
|
|
@@ -198,7 +202,7 @@ export const ShaderChunk = {
|
|
|
198
202
|
clearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,
|
|
199
203
|
clearcoat_pars_fragment: clearcoat_pars_fragment,
|
|
200
204
|
iridescence_pars_fragment: iridescence_pars_fragment,
|
|
201
|
-
|
|
205
|
+
opaque_fragment: opaque_fragment,
|
|
202
206
|
packing: packing,
|
|
203
207
|
premultiplied_alpha_fragment: premultiplied_alpha_fragment,
|
|
204
208
|
project_vertex: project_vertex,
|
|
@@ -52,6 +52,7 @@ export const fragment = /* glsl */`
|
|
|
52
52
|
#include <map_pars_fragment>
|
|
53
53
|
#include <alphamap_pars_fragment>
|
|
54
54
|
#include <alphatest_pars_fragment>
|
|
55
|
+
#include <alphahash_pars_fragment>
|
|
55
56
|
#include <logdepthbuf_pars_fragment>
|
|
56
57
|
#include <clipping_planes_pars_fragment>
|
|
57
58
|
|
|
@@ -72,6 +73,7 @@ void main() {
|
|
|
72
73
|
#include <map_fragment>
|
|
73
74
|
#include <alphamap_fragment>
|
|
74
75
|
#include <alphatest_fragment>
|
|
76
|
+
#include <alphahash_fragment>
|
|
75
77
|
|
|
76
78
|
#include <logdepthbuf_fragment>
|
|
77
79
|
|
|
@@ -51,6 +51,7 @@ varying vec3 vWorldPosition;
|
|
|
51
51
|
#include <map_pars_fragment>
|
|
52
52
|
#include <alphamap_pars_fragment>
|
|
53
53
|
#include <alphatest_pars_fragment>
|
|
54
|
+
#include <alphahash_pars_fragment>
|
|
54
55
|
#include <clipping_planes_pars_fragment>
|
|
55
56
|
|
|
56
57
|
void main () {
|
|
@@ -62,6 +63,7 @@ void main () {
|
|
|
62
63
|
#include <map_fragment>
|
|
63
64
|
#include <alphamap_fragment>
|
|
64
65
|
#include <alphatest_fragment>
|
|
66
|
+
#include <alphahash_fragment>
|
|
65
67
|
|
|
66
68
|
float dist = length( vWorldPosition - referencePosition );
|
|
67
69
|
dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
|
|
@@ -65,9 +65,9 @@ void main() {
|
|
|
65
65
|
|
|
66
66
|
outgoingLight = diffuseColor.rgb; // simple shader
|
|
67
67
|
|
|
68
|
-
#include <
|
|
68
|
+
#include <opaque_fragment>
|
|
69
69
|
#include <tonemapping_fragment>
|
|
70
|
-
#include <
|
|
70
|
+
#include <colorspace_fragment>
|
|
71
71
|
#include <fog_fragment>
|
|
72
72
|
#include <premultiplied_alpha_fragment>
|
|
73
73
|
|
|
@@ -56,6 +56,7 @@ uniform float opacity;
|
|
|
56
56
|
#include <map_pars_fragment>
|
|
57
57
|
#include <alphamap_pars_fragment>
|
|
58
58
|
#include <alphatest_pars_fragment>
|
|
59
|
+
#include <alphahash_pars_fragment>
|
|
59
60
|
#include <aomap_pars_fragment>
|
|
60
61
|
#include <lightmap_pars_fragment>
|
|
61
62
|
#include <envmap_common_pars_fragment>
|
|
@@ -76,6 +77,7 @@ void main() {
|
|
|
76
77
|
#include <color_fragment>
|
|
77
78
|
#include <alphamap_fragment>
|
|
78
79
|
#include <alphatest_fragment>
|
|
80
|
+
#include <alphahash_fragment>
|
|
79
81
|
#include <specularmap_fragment>
|
|
80
82
|
|
|
81
83
|
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
|
|
@@ -101,9 +103,9 @@ void main() {
|
|
|
101
103
|
|
|
102
104
|
#include <envmap_fragment>
|
|
103
105
|
|
|
104
|
-
#include <
|
|
106
|
+
#include <opaque_fragment>
|
|
105
107
|
#include <tonemapping_fragment>
|
|
106
|
-
#include <
|
|
108
|
+
#include <colorspace_fragment>
|
|
107
109
|
#include <fog_fragment>
|
|
108
110
|
#include <premultiplied_alpha_fragment>
|
|
109
111
|
#include <dithering_fragment>
|
|
@@ -62,6 +62,7 @@ uniform float opacity;
|
|
|
62
62
|
#include <map_pars_fragment>
|
|
63
63
|
#include <alphamap_pars_fragment>
|
|
64
64
|
#include <alphatest_pars_fragment>
|
|
65
|
+
#include <alphahash_pars_fragment>
|
|
65
66
|
#include <aomap_pars_fragment>
|
|
66
67
|
#include <lightmap_pars_fragment>
|
|
67
68
|
#include <emissivemap_pars_fragment>
|
|
@@ -92,6 +93,7 @@ void main() {
|
|
|
92
93
|
#include <color_fragment>
|
|
93
94
|
#include <alphamap_fragment>
|
|
94
95
|
#include <alphatest_fragment>
|
|
96
|
+
#include <alphahash_fragment>
|
|
95
97
|
#include <specularmap_fragment>
|
|
96
98
|
#include <normal_fragment_begin>
|
|
97
99
|
#include <normal_fragment_maps>
|
|
@@ -109,9 +111,9 @@ void main() {
|
|
|
109
111
|
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
|
|
110
112
|
|
|
111
113
|
#include <envmap_fragment>
|
|
112
|
-
#include <
|
|
114
|
+
#include <opaque_fragment>
|
|
113
115
|
#include <tonemapping_fragment>
|
|
114
|
-
#include <
|
|
116
|
+
#include <colorspace_fragment>
|
|
115
117
|
#include <fog_fragment>
|
|
116
118
|
#include <premultiplied_alpha_fragment>
|
|
117
119
|
#include <dithering_fragment>
|
|
@@ -58,6 +58,7 @@ varying vec3 vViewPosition;
|
|
|
58
58
|
#include <map_pars_fragment>
|
|
59
59
|
#include <alphamap_pars_fragment>
|
|
60
60
|
#include <alphatest_pars_fragment>
|
|
61
|
+
#include <alphahash_pars_fragment>
|
|
61
62
|
#include <fog_pars_fragment>
|
|
62
63
|
#include <normal_pars_fragment>
|
|
63
64
|
#include <bumpmap_pars_fragment>
|
|
@@ -76,6 +77,7 @@ void main() {
|
|
|
76
77
|
#include <color_fragment>
|
|
77
78
|
#include <alphamap_fragment>
|
|
78
79
|
#include <alphatest_fragment>
|
|
80
|
+
#include <alphahash_fragment>
|
|
79
81
|
#include <normal_fragment_begin>
|
|
80
82
|
#include <normal_fragment_maps>
|
|
81
83
|
|
|
@@ -96,9 +98,9 @@ void main() {
|
|
|
96
98
|
|
|
97
99
|
vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
|
|
98
100
|
|
|
99
|
-
#include <
|
|
101
|
+
#include <opaque_fragment>
|
|
100
102
|
#include <tonemapping_fragment>
|
|
101
|
-
#include <
|
|
103
|
+
#include <colorspace_fragment>
|
|
102
104
|
#include <fog_fragment>
|
|
103
105
|
#include <premultiplied_alpha_fragment>
|
|
104
106
|
#include <dithering_fragment>
|
|
@@ -64,6 +64,7 @@ uniform float opacity;
|
|
|
64
64
|
#include <map_pars_fragment>
|
|
65
65
|
#include <alphamap_pars_fragment>
|
|
66
66
|
#include <alphatest_pars_fragment>
|
|
67
|
+
#include <alphahash_pars_fragment>
|
|
67
68
|
#include <aomap_pars_fragment>
|
|
68
69
|
#include <lightmap_pars_fragment>
|
|
69
70
|
#include <emissivemap_pars_fragment>
|
|
@@ -94,6 +95,7 @@ void main() {
|
|
|
94
95
|
#include <color_fragment>
|
|
95
96
|
#include <alphamap_fragment>
|
|
96
97
|
#include <alphatest_fragment>
|
|
98
|
+
#include <alphahash_fragment>
|
|
97
99
|
#include <specularmap_fragment>
|
|
98
100
|
#include <normal_fragment_begin>
|
|
99
101
|
#include <normal_fragment_maps>
|
|
@@ -111,9 +113,9 @@ void main() {
|
|
|
111
113
|
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
|
|
112
114
|
|
|
113
115
|
#include <envmap_fragment>
|
|
114
|
-
#include <
|
|
116
|
+
#include <opaque_fragment>
|
|
115
117
|
#include <tonemapping_fragment>
|
|
116
|
-
#include <
|
|
118
|
+
#include <colorspace_fragment>
|
|
117
119
|
#include <fog_fragment>
|
|
118
120
|
#include <premultiplied_alpha_fragment>
|
|
119
121
|
#include <dithering_fragment>
|
|
@@ -112,6 +112,14 @@ uniform float opacity;
|
|
|
112
112
|
#endif
|
|
113
113
|
#endif
|
|
114
114
|
|
|
115
|
+
#ifdef USE_ANISOTROPY
|
|
116
|
+
uniform vec2 anisotropyVector;
|
|
117
|
+
|
|
118
|
+
#ifdef USE_ANISOTROPYMAP
|
|
119
|
+
uniform sampler2D anisotropyMap;
|
|
120
|
+
#endif
|
|
121
|
+
#endif
|
|
122
|
+
|
|
115
123
|
varying vec3 vViewPosition;
|
|
116
124
|
|
|
117
125
|
#include <common>
|
|
@@ -122,6 +130,7 @@ varying vec3 vViewPosition;
|
|
|
122
130
|
#include <map_pars_fragment>
|
|
123
131
|
#include <alphamap_pars_fragment>
|
|
124
132
|
#include <alphatest_pars_fragment>
|
|
133
|
+
#include <alphahash_pars_fragment>
|
|
125
134
|
#include <aomap_pars_fragment>
|
|
126
135
|
#include <lightmap_pars_fragment>
|
|
127
136
|
#include <emissivemap_pars_fragment>
|
|
@@ -157,6 +166,7 @@ void main() {
|
|
|
157
166
|
#include <color_fragment>
|
|
158
167
|
#include <alphamap_fragment>
|
|
159
168
|
#include <alphatest_fragment>
|
|
169
|
+
#include <alphahash_fragment>
|
|
160
170
|
#include <roughnessmap_fragment>
|
|
161
171
|
#include <metalnessmap_fragment>
|
|
162
172
|
#include <normal_fragment_begin>
|
|
@@ -201,9 +211,9 @@ void main() {
|
|
|
201
211
|
|
|
202
212
|
#endif
|
|
203
213
|
|
|
204
|
-
#include <
|
|
214
|
+
#include <opaque_fragment>
|
|
205
215
|
#include <tonemapping_fragment>
|
|
206
|
-
#include <
|
|
216
|
+
#include <colorspace_fragment>
|
|
207
217
|
#include <fog_fragment>
|
|
208
218
|
#include <premultiplied_alpha_fragment>
|
|
209
219
|
#include <dithering_fragment>
|
|
@@ -60,6 +60,7 @@ uniform float opacity;
|
|
|
60
60
|
#include <map_pars_fragment>
|
|
61
61
|
#include <alphamap_pars_fragment>
|
|
62
62
|
#include <alphatest_pars_fragment>
|
|
63
|
+
#include <alphahash_pars_fragment>
|
|
63
64
|
#include <aomap_pars_fragment>
|
|
64
65
|
#include <lightmap_pars_fragment>
|
|
65
66
|
#include <emissivemap_pars_fragment>
|
|
@@ -88,6 +89,7 @@ void main() {
|
|
|
88
89
|
#include <color_fragment>
|
|
89
90
|
#include <alphamap_fragment>
|
|
90
91
|
#include <alphatest_fragment>
|
|
92
|
+
#include <alphahash_fragment>
|
|
91
93
|
#include <normal_fragment_begin>
|
|
92
94
|
#include <normal_fragment_maps>
|
|
93
95
|
#include <emissivemap_fragment>
|
|
@@ -103,9 +105,9 @@ void main() {
|
|
|
103
105
|
|
|
104
106
|
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
|
|
105
107
|
|
|
106
|
-
#include <
|
|
108
|
+
#include <opaque_fragment>
|
|
107
109
|
#include <tonemapping_fragment>
|
|
108
|
-
#include <
|
|
110
|
+
#include <colorspace_fragment>
|
|
109
111
|
#include <fog_fragment>
|
|
110
112
|
#include <premultiplied_alpha_fragment>
|
|
111
113
|
#include <dithering_fragment>
|
|
@@ -56,6 +56,7 @@ uniform float opacity;
|
|
|
56
56
|
#include <color_pars_fragment>
|
|
57
57
|
#include <map_particle_pars_fragment>
|
|
58
58
|
#include <alphatest_pars_fragment>
|
|
59
|
+
#include <alphahash_pars_fragment>
|
|
59
60
|
#include <fog_pars_fragment>
|
|
60
61
|
#include <logdepthbuf_pars_fragment>
|
|
61
62
|
#include <clipping_planes_pars_fragment>
|
|
@@ -71,12 +72,13 @@ void main() {
|
|
|
71
72
|
#include <map_particle_fragment>
|
|
72
73
|
#include <color_fragment>
|
|
73
74
|
#include <alphatest_fragment>
|
|
75
|
+
#include <alphahash_fragment>
|
|
74
76
|
|
|
75
77
|
outgoingLight = diffuseColor.rgb;
|
|
76
78
|
|
|
77
|
-
#include <
|
|
79
|
+
#include <opaque_fragment>
|
|
78
80
|
#include <tonemapping_fragment>
|
|
79
|
-
#include <
|
|
81
|
+
#include <colorspace_fragment>
|
|
80
82
|
#include <fog_fragment>
|
|
81
83
|
#include <premultiplied_alpha_fragment>
|
|
82
84
|
|
|
@@ -52,6 +52,7 @@ uniform float opacity;
|
|
|
52
52
|
#include <map_pars_fragment>
|
|
53
53
|
#include <alphamap_pars_fragment>
|
|
54
54
|
#include <alphatest_pars_fragment>
|
|
55
|
+
#include <alphahash_pars_fragment>
|
|
55
56
|
#include <fog_pars_fragment>
|
|
56
57
|
#include <logdepthbuf_pars_fragment>
|
|
57
58
|
#include <clipping_planes_pars_fragment>
|
|
@@ -67,12 +68,13 @@ void main() {
|
|
|
67
68
|
#include <map_fragment>
|
|
68
69
|
#include <alphamap_fragment>
|
|
69
70
|
#include <alphatest_fragment>
|
|
71
|
+
#include <alphahash_fragment>
|
|
70
72
|
|
|
71
73
|
outgoingLight = diffuseColor.rgb;
|
|
72
74
|
|
|
73
|
-
#include <
|
|
75
|
+
#include <opaque_fragment>
|
|
74
76
|
#include <tonemapping_fragment>
|
|
75
|
-
#include <
|
|
77
|
+
#include <colorspace_fragment>
|
|
76
78
|
#include <fog_fragment>
|
|
77
79
|
|
|
78
80
|
}
|
|
@@ -343,7 +343,10 @@ ShaderLib.physical = {
|
|
|
343
343
|
specularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },
|
|
344
344
|
specularIntensity: { value: 1 },
|
|
345
345
|
specularIntensityMap: { value: null },
|
|
346
|
-
specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() }
|
|
346
|
+
specularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() },
|
|
347
|
+
anisotropyVector: { value: /*@__PURE__*/ new Vector2() },
|
|
348
|
+
anisotropyMap: { value: null },
|
|
349
|
+
anisotropyMapTransform: { value: /*@__PURE__*/ new Matrix3() },
|
|
347
350
|
}
|
|
348
351
|
] ),
|
|
349
352
|
|
|
@@ -205,6 +205,7 @@ const UniformsLib = {
|
|
|
205
205
|
scale: { value: 1.0 },
|
|
206
206
|
map: { value: null },
|
|
207
207
|
alphaMap: { value: null },
|
|
208
|
+
alphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },
|
|
208
209
|
alphaTest: { value: 0 },
|
|
209
210
|
uvTransform: { value: /*@__PURE__*/ new Matrix3() }
|
|
210
211
|
|
|
@@ -219,6 +220,7 @@ const UniformsLib = {
|
|
|
219
220
|
map: { value: null },
|
|
220
221
|
mapTransform: { value: /*@__PURE__*/ new Matrix3() },
|
|
221
222
|
alphaMap: { value: null },
|
|
223
|
+
alphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },
|
|
222
224
|
alphaTest: { value: 0 }
|
|
223
225
|
|
|
224
226
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { IntType } from '../../constants.js';
|
|
2
|
+
|
|
3
|
+
function WebGLBindingStates( gl, extensions, attributes, capabilities ) {
|
|
2
4
|
|
|
3
5
|
const maxVertexAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );
|
|
4
6
|
|
|
@@ -315,9 +317,9 @@
|
|
|
315
317
|
|
|
316
318
|
}
|
|
317
319
|
|
|
318
|
-
function vertexAttribPointer( index, size, type, normalized, stride, offset ) {
|
|
320
|
+
function vertexAttribPointer( index, size, type, normalized, stride, offset, integer ) {
|
|
319
321
|
|
|
320
|
-
if (
|
|
322
|
+
if ( integer === true ) {
|
|
321
323
|
|
|
322
324
|
gl.vertexAttribIPointer( index, size, type, stride, offset );
|
|
323
325
|
|
|
@@ -375,6 +377,10 @@
|
|
|
375
377
|
const type = attribute.type;
|
|
376
378
|
const bytesPerElement = attribute.bytesPerElement;
|
|
377
379
|
|
|
380
|
+
// check for integer attributes (WebGL 2 only)
|
|
381
|
+
|
|
382
|
+
const integer = ( capabilities.isWebGL2 === true && ( type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType ) );
|
|
383
|
+
|
|
378
384
|
if ( geometryAttribute.isInterleavedBufferAttribute ) {
|
|
379
385
|
|
|
380
386
|
const data = geometryAttribute.data;
|
|
@@ -415,7 +421,8 @@
|
|
|
415
421
|
type,
|
|
416
422
|
normalized,
|
|
417
423
|
stride * bytesPerElement,
|
|
418
|
-
( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement
|
|
424
|
+
( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement,
|
|
425
|
+
integer
|
|
419
426
|
);
|
|
420
427
|
|
|
421
428
|
}
|
|
@@ -456,7 +463,8 @@
|
|
|
456
463
|
type,
|
|
457
464
|
normalized,
|
|
458
465
|
size * bytesPerElement,
|
|
459
|
-
( size / programAttribute.locationSize ) * i * bytesPerElement
|
|
466
|
+
( size / programAttribute.locationSize ) * i * bytesPerElement,
|
|
467
|
+
integer
|
|
460
468
|
);
|
|
461
469
|
|
|
462
470
|
}
|
|
@@ -22,6 +22,18 @@ function WebGLGeometries( gl, attributes, info, bindingStates ) {
|
|
|
22
22
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
for ( const name in geometry.morphAttributes ) {
|
|
26
|
+
|
|
27
|
+
const array = geometry.morphAttributes[ name ];
|
|
28
|
+
|
|
29
|
+
for ( let i = 0, l = array.length; i < l; i ++ ) {
|
|
30
|
+
|
|
31
|
+
attributes.remove( array[ i ] );
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
25
37
|
geometry.removeEventListener( 'dispose', onGeometryDispose );
|
|
26
38
|
|
|
27
39
|
delete geometries[ geometry.id ];
|
|
@@ -289,6 +289,8 @@ function WebGLMaterials( renderer, properties ) {
|
|
|
289
289
|
|
|
290
290
|
uniforms.alphaMap.value = material.alphaMap;
|
|
291
291
|
|
|
292
|
+
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
|
|
293
|
+
|
|
292
294
|
}
|
|
293
295
|
|
|
294
296
|
if ( material.alphaTest > 0 ) {
|
|
@@ -317,6 +319,8 @@ function WebGLMaterials( renderer, properties ) {
|
|
|
317
319
|
|
|
318
320
|
uniforms.alphaMap.value = material.alphaMap;
|
|
319
321
|
|
|
322
|
+
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
|
|
323
|
+
|
|
320
324
|
}
|
|
321
325
|
|
|
322
326
|
if ( material.alphaTest > 0 ) {
|
|
@@ -498,6 +502,20 @@ function WebGLMaterials( renderer, properties ) {
|
|
|
498
502
|
|
|
499
503
|
}
|
|
500
504
|
|
|
505
|
+
if ( material.anisotropy > 0 ) {
|
|
506
|
+
|
|
507
|
+
uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) );
|
|
508
|
+
|
|
509
|
+
if ( material.anisotropyMap ) {
|
|
510
|
+
|
|
511
|
+
uniforms.anisotropyMap.value = material.anisotropyMap;
|
|
512
|
+
|
|
513
|
+
refreshTransformUniform( material.anisotropyMap, uniforms.anisotropyMapTransform );
|
|
514
|
+
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
}
|
|
518
|
+
|
|
501
519
|
uniforms.specularIntensity.value = material.specularIntensity;
|
|
502
520
|
uniforms.specularColor.value.copy( material.specularColor );
|
|
503
521
|
|
|
@@ -27,11 +27,31 @@ function WebGLObjects( gl, geometries, attributes, info ) {
|
|
|
27
27
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
if ( updateMap.get( object ) !== frame ) {
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
attributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
if ( object.instanceColor !== null ) {
|
|
35
|
+
|
|
36
|
+
attributes.update( object.instanceColor, gl.ARRAY_BUFFER );
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
updateMap.set( object, frame );
|
|
41
|
+
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if ( object.isSkinnedMesh ) {
|
|
47
|
+
|
|
48
|
+
const skeleton = object.skeleton;
|
|
49
|
+
|
|
50
|
+
if ( updateMap.get( skeleton ) !== frame ) {
|
|
51
|
+
|
|
52
|
+
skeleton.update();
|
|
53
|
+
|
|
54
|
+
updateMap.set( skeleton, frame );
|
|
35
55
|
|
|
36
56
|
}
|
|
37
57
|
|