@gnsx/three 0.184.20 → 0.185.3
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 +1261 -926
- package/build/three.core.js +1104 -829
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +157 -97
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +11 -4
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +7542 -3371
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +7542 -3370
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +3 -0
- package/examples/jsm/controls/ArcballControls.js +6 -2
- package/examples/jsm/controls/FirstPersonControls.js +79 -42
- package/examples/jsm/controls/TransformControls.js +68 -15
- package/examples/jsm/csm/CSMFrustum.js +31 -6
- package/examples/jsm/csm/CSMShadowNode.js +4 -1
- package/examples/jsm/effects/AsciiEffect.js +14 -1
- package/examples/jsm/exporters/DRACOExporter.js +27 -6
- package/examples/jsm/exporters/GLTFExporter.js +114 -12
- package/examples/jsm/exporters/PLYExporter.js +286 -73
- package/examples/jsm/exporters/USDZExporter.js +347 -112
- package/examples/jsm/generators/CityGenerator.js +346 -0
- package/examples/jsm/generators/ForestGenerator.js +347 -0
- package/examples/jsm/generators/TerrainGenerator.js +504 -0
- package/examples/jsm/generators/TreeGenerator.js +377 -0
- package/examples/jsm/generators/city/SidewalkGenerator.js +253 -0
- package/examples/jsm/generators/city/SkyscraperGenerator.js +1357 -0
- package/examples/jsm/geometries/LoftGeometry.js +355 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +1 -1
- package/examples/jsm/helpers/LightProbeHelper.js +5 -4
- package/examples/jsm/helpers/ViewHelper.js +16 -6
- package/examples/jsm/inspector/Inspector.js +67 -58
- package/examples/jsm/inspector/RendererInspector.js +152 -36
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +1 -1
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +1 -1
- package/examples/jsm/inspector/tabs/Console.js +200 -18
- package/examples/jsm/inspector/tabs/Memory.js +8 -0
- package/examples/jsm/inspector/tabs/Parameters.js +64 -4
- package/examples/jsm/inspector/tabs/Performance.js +21 -6
- package/examples/jsm/inspector/tabs/Settings.js +51 -9
- package/examples/jsm/inspector/tabs/Timeline.js +178 -93
- package/examples/jsm/inspector/tabs/Viewer.js +628 -16
- package/examples/jsm/inspector/ui/Graph.js +162 -25
- package/examples/jsm/inspector/ui/Item.js +92 -13
- package/examples/jsm/inspector/ui/List.js +1 -1
- package/examples/jsm/inspector/ui/Profiler.js +90 -45
- package/examples/jsm/inspector/ui/Style.js +1788 -1401
- package/examples/jsm/inspector/ui/Tab.js +5 -3
- package/examples/jsm/inspector/ui/Values.js +71 -6
- package/examples/jsm/inspector/ui/utils.js +130 -10
- package/examples/jsm/libs/basis/README.md +0 -1
- package/examples/jsm/libs/demuxer_mp4.js +3 -3
- package/examples/jsm/libs/draco/README.md +0 -1
- package/examples/jsm/libs/meshopt_clusterizer.module.js +421 -0
- package/examples/jsm/libs/meshopt_simplifier.module.js +627 -0
- package/examples/jsm/libs/mikktspace.module.js +34 -9
- package/examples/jsm/lighting/ClusteredLighting.js +55 -0
- package/examples/jsm/lighting/LightProbeGrid.js +124 -91
- package/examples/jsm/lines/LineMaterial.js +38 -15
- package/examples/jsm/lines/LineSegments2.js +8 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +8 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +46 -13
- package/examples/jsm/loaders/EXRLoader.js +27 -55
- package/examples/jsm/loaders/HDRLoader.js +6 -28
- package/examples/jsm/loaders/KTX2Loader.js +31 -12
- package/examples/jsm/loaders/LDrawLoader.js +8 -8
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
- package/examples/jsm/loaders/LWOLoader.js +4 -0
- package/examples/jsm/loaders/LottieLoader.js +1 -1
- package/examples/jsm/loaders/MaterialXLoader.js +31 -9
- package/examples/jsm/loaders/NRRDLoader.js +3 -3
- package/examples/jsm/loaders/PCDLoader.js +7 -7
- package/examples/jsm/loaders/PLYLoader.js +218 -55
- package/examples/jsm/loaders/SVGLoader.js +547 -495
- package/examples/jsm/loaders/TTFLoader.js +1 -1
- package/examples/jsm/loaders/USDLoader.js +33 -9
- package/examples/jsm/loaders/VRMLLoader.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +93 -20
- package/examples/jsm/loaders/usd/USDCParser.js +1 -1
- package/examples/jsm/loaders/usd/USDComposer.js +52 -19
- package/examples/jsm/misc/TileCreasedNormalsPlugin.js +270 -0
- package/examples/jsm/misc/Volume.js +2 -2
- package/examples/jsm/objects/GroundedSkybox.js +1 -1
- package/examples/jsm/objects/Reflector.js +2 -3
- package/examples/jsm/objects/Water2Mesh.js +1 -1
- package/examples/jsm/physics/AmmoPhysics.js +15 -8
- package/examples/jsm/physics/RapierPhysics.js +27 -2
- package/examples/jsm/shaders/VolumeShader.js +31 -44
- package/examples/jsm/transpiler/GLSLDecoder.js +6 -6
- package/examples/jsm/transpiler/Linker.js +1 -1
- package/examples/jsm/tsl/display/BloomNode.js +59 -19
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +2 -2
- package/examples/jsm/tsl/display/FXAANode.js +11 -12
- package/examples/jsm/tsl/display/GTAONode.js +34 -13
- package/examples/jsm/tsl/display/GodraysNode.js +1 -1
- package/examples/jsm/tsl/display/ImportanceSampledEnvironment.js +560 -0
- package/examples/jsm/tsl/display/PixelationPassNode.js +2 -2
- package/examples/jsm/tsl/display/RecurrentDenoiseNode.js +912 -0
- package/examples/jsm/tsl/display/SSAAPassNode.js +13 -25
- package/examples/jsm/tsl/display/SSGINode.js +89 -39
- package/examples/jsm/tsl/display/SSRNode.js +829 -132
- package/examples/jsm/tsl/display/SSSNode.js +2 -2
- package/examples/jsm/tsl/display/TemporalReprojectNode.js +1023 -0
- package/examples/jsm/tsl/lighting/ClusteredLightsNode.js +622 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +1 -1
- package/examples/jsm/tsl/math/curlNoise.js +107 -0
- package/examples/jsm/tsl/shadows/TileShadowNode.js +1 -1
- package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +3 -3
- package/examples/jsm/tsl/utils/GroundedSkybox.js +62 -0
- package/examples/jsm/tsl/utils/RNoise.js +51 -0
- package/examples/jsm/tsl/utils/SpecularHelpers.js +325 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +126 -59
- package/examples/jsm/utils/GeometryCompressionUtils.js +1 -1
- package/examples/jsm/utils/SceneOptimizer.js +1 -1
- package/examples/jsm/webxr/ARButton.js +1 -1
- package/examples/jsm/webxr/WebGLXRFallback.js +89 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +2 -2
- package/package.json +7 -7
- package/src/Three.TSL.js +10 -3
- package/src/Three.WebGPU.js +4 -0
- package/src/animation/AnimationAction.js +15 -11
- package/src/animation/AnimationClip.js +0 -139
- package/src/animation/KeyframeTrack.js +2 -2
- package/src/animation/PropertyBinding.js +2 -2
- package/src/cameras/Camera.js +2 -2
- package/src/cameras/StereoCamera.js +5 -2
- package/src/constants.js +1 -1
- package/src/core/BufferGeometry.js +29 -7
- package/src/core/Object3D.js +17 -7
- package/src/core/Raycaster.js +1 -1
- package/src/core/RenderTarget.js +15 -2
- package/src/extras/PMREMGenerator.js +6 -4
- package/src/extras/TextureUtils.js +1 -1
- package/src/extras/core/ShapePath.js +149 -160
- package/src/geometries/SphereGeometry.js +8 -3
- package/src/helpers/DirectionalLightHelper.js +2 -0
- package/src/helpers/HemisphereLightHelper.js +2 -0
- package/src/helpers/PointLightHelper.js +2 -0
- package/src/helpers/SpotLightHelper.js +1 -1
- package/src/loaders/DataTextureLoader.js +69 -38
- package/src/loaders/LoadingManager.js +5 -0
- package/src/loaders/MaterialLoader.js +36 -266
- package/src/loaders/ObjectLoader.js +3 -1
- package/src/materials/LineBasicMaterial.js +4 -0
- package/src/materials/Material.js +196 -1
- package/src/materials/MeshBasicMaterial.js +24 -0
- package/src/materials/MeshDepthMaterial.js +10 -0
- package/src/materials/MeshDistanceMaterial.js +10 -0
- package/src/materials/MeshLambertMaterial.js +40 -1
- package/src/materials/MeshMatcapMaterial.js +25 -1
- package/src/materials/MeshNormalMaterial.js +9 -1
- package/src/materials/MeshPhongMaterial.js +40 -1
- package/src/materials/MeshPhysicalMaterial.js +38 -0
- package/src/materials/MeshStandardMaterial.js +42 -1
- package/src/materials/MeshToonMaterial.js +34 -1
- package/src/materials/PointsMaterial.js +7 -0
- package/src/materials/ShaderMaterial.js +86 -0
- package/src/materials/SpriteMaterial.js +7 -0
- package/src/materials/nodes/Line2NodeMaterial.js +378 -322
- package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +0 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +0 -30
- package/src/materials/nodes/MeshSSSNodeMaterial.js +0 -13
- package/src/materials/nodes/MeshStandardNodeMaterial.js +0 -11
- package/src/materials/nodes/NodeMaterial.js +115 -74
- package/src/materials/nodes/SpriteNodeMaterial.js +0 -10
- package/src/materials/nodes/manager/NodeMaterialObserver.js +49 -20
- package/src/math/Box3.js +5 -0
- package/src/math/FrustumArray.js +103 -133
- package/src/math/Interpolant.js +1 -1
- package/src/math/MathUtils.js +2 -2
- package/src/math/Matrix3.js +11 -0
- package/src/math/Matrix4.js +28 -3
- package/src/math/Vector2.js +2 -2
- package/src/math/Vector3.js +2 -2
- package/src/math/Vector4.js +2 -2
- package/src/math/interpolants/BezierInterpolant.js +4 -6
- package/src/nodes/Nodes.js +2 -5
- package/src/nodes/TSL.js +8 -6
- package/src/nodes/accessors/Arrays.js +4 -4
- package/src/nodes/accessors/Batch.js +108 -0
- package/src/nodes/accessors/Bitangent.js +2 -2
- package/src/nodes/accessors/BufferAttributeNode.js +13 -2
- package/src/nodes/accessors/Camera.js +7 -7
- package/src/nodes/accessors/ClippingNode.js +1 -1
- package/src/nodes/accessors/Instance.js +264 -0
- package/src/nodes/accessors/MaterialNode.js +18 -2
- package/src/nodes/accessors/MaterialProperties.js +4 -3
- package/src/nodes/accessors/{MorphNode.js → Morph.js} +99 -112
- package/src/nodes/accessors/Normal.js +13 -13
- package/src/nodes/accessors/Position.js +5 -1
- package/src/nodes/accessors/ReferenceNode.js +1 -0
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/SceneProperties.js +1 -1
- package/src/nodes/accessors/Skinning.js +263 -0
- package/src/nodes/accessors/StorageBufferNode.js +2 -2
- package/src/nodes/accessors/StorageTexture3DNode.js +100 -0
- package/src/nodes/accessors/StorageTextureNode.js +39 -7
- package/src/nodes/accessors/Tangent.js +4 -4
- package/src/nodes/accessors/TextureNode.js +60 -5
- package/src/nodes/code/FunctionNode.js +2 -16
- package/src/nodes/core/MRTNode.js +7 -2
- package/src/nodes/core/Node.js +39 -2
- package/src/nodes/core/NodeBuilder.js +201 -41
- package/src/nodes/core/NodeUtils.js +13 -13
- package/src/nodes/core/OutputStructNode.js +1 -1
- package/src/nodes/core/OverrideContextNode.js +153 -0
- package/src/nodes/core/PropertyNode.js +51 -5
- package/src/nodes/core/StackNode.js +56 -34
- package/src/nodes/core/StructNode.js +4 -6
- package/src/nodes/core/StructTypeNode.js +6 -6
- package/src/nodes/core/VarNode.js +8 -0
- package/src/nodes/core/VaryingNode.js +12 -2
- package/src/nodes/display/BlendModes.js +1 -41
- package/src/nodes/display/BumpMapNode.js +6 -1
- package/src/nodes/display/ColorAdjustment.js +10 -9
- package/src/nodes/display/FrontFacingNode.js +38 -9
- package/src/nodes/display/NormalMapNode.js +2 -2
- package/src/nodes/display/PassNode.js +35 -43
- package/src/nodes/display/PremultiplyAlphaFunctions.js +39 -0
- package/src/nodes/display/RenderOutputNode.js +12 -3
- package/src/nodes/functions/VolumetricLightingModel.js +40 -7
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +1 -1
- package/src/nodes/lighting/EnvironmentNode.js +2 -2
- package/src/nodes/lighting/IESSpotLightNode.js +40 -2
- package/src/nodes/lighting/LightingContextNode.js +10 -2
- package/src/nodes/lighting/LightsNode.js +92 -37
- package/src/nodes/lighting/PointShadowNode.js +7 -1
- package/src/nodes/lighting/ShadowFilterNode.js +21 -52
- package/src/nodes/lighting/ShadowNode.js +34 -14
- package/src/nodes/materialx/lib/mx_noise.js +2 -2
- package/src/nodes/math/ConditionalNode.js +3 -3
- package/src/nodes/math/MathNode.js +39 -11
- package/src/nodes/math/OperatorNode.js +23 -23
- package/src/nodes/parsers/GLSLNodeFunction.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +33 -2
- package/src/nodes/tsl/TSLCore.js +63 -18
- package/src/nodes/utils/EquirectUV.js +30 -5
- package/src/nodes/utils/FunctionOverloadingNode.js +1 -1
- package/src/nodes/utils/Packing.js +35 -4
- package/src/nodes/utils/RTTNode.js +40 -24
- package/src/nodes/utils/ReflectorNode.js +1 -0
- package/src/nodes/utils/StorageArrayElementNode.js +1 -1
- package/src/objects/BatchedMesh.js +22 -14
- package/src/objects/InstancedMesh.js +0 -11
- package/src/objects/Skeleton.js +0 -9
- package/src/renderers/WebGLRenderer.js +21 -15
- package/src/renderers/common/Backend.js +49 -5
- package/src/renderers/common/Bindings.js +114 -45
- package/src/renderers/common/Buffer.js +9 -0
- package/src/renderers/common/ClippingContext.js +10 -2
- package/src/renderers/common/Info.js +63 -22
- package/src/renderers/common/Lighting.js +53 -5
- package/src/renderers/common/RenderList.js +42 -4
- package/src/renderers/common/RenderObject.js +73 -13
- package/src/renderers/common/Renderer.js +282 -109
- package/src/renderers/common/Sampler.js +16 -48
- package/src/renderers/common/Textures.js +32 -5
- package/src/renderers/common/TimestampQueryPool.js +1 -1
- package/src/renderers/common/UniformsGroup.js +31 -9
- package/src/renderers/common/XRManager.js +340 -22
- package/src/renderers/common/extras/PMREMGenerator.js +15 -38
- package/src/renderers/common/nodes/NodeBuilderState.js +9 -1
- package/src/renderers/common/nodes/NodeLibrary.js +4 -4
- package/src/renderers/common/nodes/NodeManager.js +63 -14
- package/src/renderers/common/nodes/NodeUniformBuffer.js +13 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +13 -4
- package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +0 -6
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/distance.glsl.js +1 -1
- package/src/renderers/webgl/WebGLOutput.js +2 -1
- package/src/renderers/webgl/WebGLProgram.js +5 -4
- package/src/renderers/webgl/WebGLPrograms.js +11 -4
- package/src/renderers/webgl/WebGLRenderLists.js +9 -1
- package/src/renderers/webgl/WebGLShaderCache.js +5 -11
- package/src/renderers/webgl/WebGLTextures.js +20 -7
- package/src/renderers/webgl/WebGLUniformsGroups.js +66 -38
- package/src/renderers/webgl-fallback/WebGLBackend.js +84 -25
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +138 -8
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +1 -1
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +52 -22
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +4 -2
- package/src/renderers/webgpu/WebGPUBackend.js +480 -169
- package/src/renderers/webgpu/descriptors/GPUBindGroupDescriptor.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUBufferDescriptor.js +57 -0
- package/src/renderers/webgpu/descriptors/GPUCommandEncoderDescriptor.js +30 -0
- package/src/renderers/webgpu/descriptors/GPUComputePassDescriptor.js +38 -0
- package/src/renderers/webgpu/descriptors/GPUComputePipelineDescriptor.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUCopyExternalImageDestInfo.js +47 -0
- package/src/renderers/webgpu/descriptors/GPUCopyExternalImageSourceInfo.js +50 -0
- package/src/renderers/webgpu/descriptors/GPUExtent3D.js +51 -0
- package/src/renderers/webgpu/descriptors/GPUPipelineLayoutDescriptor.js +39 -0
- package/src/renderers/webgpu/descriptors/GPUQuerySetDescriptor.js +47 -0
- package/src/renderers/webgpu/descriptors/GPURenderBundleEncoderDescriptor.js +74 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassColorAttachment.js +72 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassDepthStencilAttachment.js +99 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassDescriptor.js +72 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassTimestampWrites.js +49 -0
- package/src/renderers/webgpu/descriptors/GPURenderPipelineDescriptor.js +130 -0
- package/src/renderers/webgpu/descriptors/GPUSamplerDescriptor.js +119 -0
- package/src/renderers/webgpu/descriptors/GPUShaderModuleDescriptor.js +46 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferInfo.js +57 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferLayout.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyTextureInfo.js +61 -0
- package/src/renderers/webgpu/descriptors/GPUTextureDescriptor.js +99 -0
- package/src/renderers/webgpu/descriptors/GPUTextureViewDescriptor.js +108 -0
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +0 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +164 -7
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +98 -38
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +72 -68
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +164 -69
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +158 -95
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +297 -141
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +33 -18
- package/src/renderers/webgpu/utils/WebGPUUtils.js +38 -3
- package/src/textures/DepthTexture.js +1 -1
- package/src/textures/ExternalTexture.js +0 -3
- package/examples/fonts/LICENSE +0 -13
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +0 -91
- package/examples/fonts/README.md +0 -11
- package/examples/fonts/droid/NOTICE +0 -190
- package/examples/fonts/droid/README.txt +0 -18
- package/examples/fonts/droid/droid_sans_bold.typeface.json +0 -1
- package/examples/fonts/droid/droid_sans_mono_regular.typeface.json +0 -1
- package/examples/fonts/droid/droid_sans_regular.typeface.json +0 -1
- package/examples/fonts/droid/droid_serif_bold.typeface.json +0 -1
- package/examples/fonts/droid/droid_serif_regular.typeface.json +0 -1
- package/examples/fonts/gentilis_bold.typeface.json +0 -1
- package/examples/fonts/gentilis_regular.typeface.json +0 -1
- package/examples/fonts/helvetiker_bold.typeface.json +0 -1
- package/examples/fonts/helvetiker_regular.typeface.json +0 -1
- package/examples/fonts/optimer_bold.typeface.json +0 -1
- package/examples/fonts/optimer_regular.typeface.json +0 -1
- package/examples/fonts/ttf/README.md +0 -9
- package/examples/fonts/ttf/kenpixel.ttf +0 -0
- package/examples/jsm/inspector/extensions/extensions.json +0 -6
- package/examples/jsm/libs/ammo.wasm.js +0 -822
- package/examples/jsm/libs/ammo.wasm.wasm +0 -0
- package/examples/jsm/libs/draco/draco_encoder.js +0 -33
- package/examples/jsm/libs/draco/gltf/draco_encoder.js +0 -33
- package/examples/jsm/libs/lottie_canvas.module.js +0 -14849
- package/examples/jsm/libs/opentype.module.js +0 -14506
- package/examples/jsm/libs/rhino3dm/rhino3dm.js +0 -21
- package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +0 -16
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
- package/examples/jsm/lighting/TiledLighting.js +0 -42
- package/examples/jsm/tsl/display/AnamorphicNode.js +0 -293
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +0 -442
- package/src/nodes/accessors/BatchNode.js +0 -163
- package/src/nodes/accessors/InstanceNode.js +0 -349
- package/src/nodes/accessors/InstancedMeshNode.js +0 -50
- package/src/nodes/accessors/SkinningNode.js +0 -328
|
@@ -3,8 +3,8 @@ import ChainMap from '../ChainMap.js';
|
|
|
3
3
|
import NodeBuilderState from './NodeBuilderState.js';
|
|
4
4
|
import NodeMaterial from '../../../materials/nodes/NodeMaterial.js';
|
|
5
5
|
import { cubeMapNode } from '../../../nodes/utils/CubeMapNode.js';
|
|
6
|
-
import { NodeFrame, StackTrace } from '../../../nodes/Nodes.js';
|
|
7
|
-
import { renderGroup, cubeTexture, texture, fog, rangeFogFactor, densityFogFactor, reference, pmremTexture, screenUV } from '../../../nodes/TSL.js';
|
|
6
|
+
import { NodeFrame, NodeUpdateType, StackTrace } from '../../../nodes/Nodes.js';
|
|
7
|
+
import { renderGroup, cubeTexture, texture, fog, rangeFogFactor, densityFogFactor, reference, pmremTexture, screenUV, uniform } from '../../../nodes/TSL.js';
|
|
8
8
|
import { builtin } from '../../../nodes/accessors/BuiltinNode.js';
|
|
9
9
|
|
|
10
10
|
import { CubeUVReflectionMapping, EquirectangularReflectionMapping, EquirectangularRefractionMapping } from '../../../constants.js';
|
|
@@ -14,6 +14,10 @@ import { error } from '../../../utils.js';
|
|
|
14
14
|
const _chainKeys = [];
|
|
15
15
|
const _cacheKeyValues = [];
|
|
16
16
|
|
|
17
|
+
// Dedicated uniform for output pass array layer selection
|
|
18
|
+
// This is separate from cameraIndex to avoid the sharedUniformGroup complexity
|
|
19
|
+
const _outputLayerIndex = /*@__PURE__*/ uniform( 0, 'int' ).setGroup( renderGroup );
|
|
20
|
+
|
|
17
21
|
/**
|
|
18
22
|
* This renderer module manages node-related objects and is the
|
|
19
23
|
* primary interface between the renderer and the node system.
|
|
@@ -111,6 +115,12 @@ class NodeManager extends DataMap {
|
|
|
111
115
|
|
|
112
116
|
const groupNode = nodeUniformsGroup.groupNode;
|
|
113
117
|
|
|
118
|
+
// groups that are updated per object always require an update so no further checks are needed
|
|
119
|
+
|
|
120
|
+
if ( groupNode.updateType === NodeUpdateType.OBJECT ) return true;
|
|
121
|
+
|
|
122
|
+
// check for update
|
|
123
|
+
|
|
114
124
|
_chainKeys[ 0 ] = groupNode;
|
|
115
125
|
_chainKeys[ 1 ] = nodeUniformsGroup;
|
|
116
126
|
|
|
@@ -444,7 +454,7 @@ class NodeManager extends DataMap {
|
|
|
444
454
|
|
|
445
455
|
let nodeBuilderState = computeData.nodeBuilderState;
|
|
446
456
|
|
|
447
|
-
if ( nodeBuilderState === undefined ) {
|
|
457
|
+
if ( nodeBuilderState === undefined || computeData.version !== computeNode.version ) {
|
|
448
458
|
|
|
449
459
|
const nodeBuilder = this.backend.createNodeBuilder( computeNode, this.renderer );
|
|
450
460
|
nodeBuilder.build();
|
|
@@ -452,6 +462,7 @@ class NodeManager extends DataMap {
|
|
|
452
462
|
nodeBuilderState = this._createNodeBuilderState( nodeBuilder );
|
|
453
463
|
|
|
454
464
|
computeData.nodeBuilderState = nodeBuilderState;
|
|
465
|
+
computeData.version = computeNode.version;
|
|
455
466
|
|
|
456
467
|
}
|
|
457
468
|
|
|
@@ -478,6 +489,7 @@ class NodeManager extends DataMap {
|
|
|
478
489
|
nodeBuilder.updateBeforeNodes,
|
|
479
490
|
nodeBuilder.updateAfterNodes,
|
|
480
491
|
nodeBuilder.observer,
|
|
492
|
+
nodeBuilder.hardwareClipping,
|
|
481
493
|
nodeBuilder.transforms
|
|
482
494
|
);
|
|
483
495
|
|
|
@@ -492,6 +504,8 @@ class NodeManager extends DataMap {
|
|
|
492
504
|
*/
|
|
493
505
|
getEnvironmentNode( scene ) {
|
|
494
506
|
|
|
507
|
+
if ( this.renderer.lighting.enabled === false ) return null;
|
|
508
|
+
|
|
495
509
|
this.updateEnvironment( scene );
|
|
496
510
|
|
|
497
511
|
let environmentNode = null;
|
|
@@ -584,16 +598,23 @@ class NodeManager extends DataMap {
|
|
|
584
598
|
|
|
585
599
|
if ( cacheKeyData.callId !== callId ) {
|
|
586
600
|
|
|
587
|
-
|
|
588
|
-
|
|
601
|
+
_cacheKeyValues.push( this.renderer.getOutputRenderTarget() && this.renderer.getOutputRenderTarget().multiview ? 1 : 0 );
|
|
602
|
+
_cacheKeyValues.push( this.renderer.lighting.enabled ? 1 : 0 );
|
|
589
603
|
|
|
590
|
-
if (
|
|
591
|
-
if ( environmentNode ) _cacheKeyValues.push( environmentNode.getCacheKey() );
|
|
592
|
-
if ( fogNode ) _cacheKeyValues.push( fogNode.getCacheKey() );
|
|
604
|
+
if ( this.renderer.lighting.enabled ) {
|
|
593
605
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
606
|
+
_cacheKeyValues.push( lightsNode.getCacheKey( true ) );
|
|
607
|
+
|
|
608
|
+
_cacheKeyValues.push( this.renderer.shadowMap.enabled ? 1 : 0 );
|
|
609
|
+
_cacheKeyValues.push( this.renderer.shadowMap.type );
|
|
610
|
+
|
|
611
|
+
const environmentNode = this.getEnvironmentNode( scene );
|
|
612
|
+
if ( environmentNode ) _cacheKeyValues.push( environmentNode.getCacheKey() );
|
|
613
|
+
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
const fogNode = this.getFogNode( scene );
|
|
617
|
+
if ( fogNode ) _cacheKeyValues.push( fogNode.getCacheKey() );
|
|
597
618
|
|
|
598
619
|
cacheKeyData.callId = callId;
|
|
599
620
|
cacheKeyData.cacheKey = hashArray( _cacheKeyValues );
|
|
@@ -888,14 +909,42 @@ class NodeManager extends DataMap {
|
|
|
888
909
|
|
|
889
910
|
const renderer = this.renderer;
|
|
890
911
|
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
912
|
+
let output;
|
|
913
|
+
|
|
914
|
+
if ( outputTarget.isArrayTexture ) {
|
|
915
|
+
|
|
916
|
+
if ( this.backend.isWebGLBackend ) {
|
|
917
|
+
|
|
918
|
+
output = texture( outputTarget, screenUV ).depth( builtin( 'gl_ViewID_OVR' ) ).renderOutput( renderer.toneMapping, renderer.currentColorSpace );
|
|
919
|
+
|
|
920
|
+
} else {
|
|
921
|
+
|
|
922
|
+
output = texture( outputTarget, screenUV ).depth( _outputLayerIndex ).renderOutput( renderer.toneMapping, renderer.currentColorSpace );
|
|
923
|
+
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
} else {
|
|
927
|
+
|
|
928
|
+
output = texture( outputTarget, screenUV ).renderOutput( renderer.toneMapping, renderer.currentColorSpace );
|
|
929
|
+
|
|
930
|
+
}
|
|
894
931
|
|
|
895
932
|
return output;
|
|
896
933
|
|
|
897
934
|
}
|
|
898
935
|
|
|
936
|
+
/**
|
|
937
|
+
* Sets the output layer index for array texture output pass.
|
|
938
|
+
* This should be called before each layer render during the output pass.
|
|
939
|
+
*
|
|
940
|
+
* @param {number} index - The layer index.
|
|
941
|
+
*/
|
|
942
|
+
setOutputLayerIndex( index ) {
|
|
943
|
+
|
|
944
|
+
_outputLayerIndex.value = index;
|
|
945
|
+
|
|
946
|
+
}
|
|
947
|
+
|
|
899
948
|
/**
|
|
900
949
|
* Triggers the call of `updateBefore()` methods
|
|
901
950
|
* for all nodes of the given render object.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import UniformBuffer from '../UniformBuffer.js';
|
|
2
|
+
import { getFloatLength } from '../BufferUtils.js';
|
|
2
3
|
|
|
3
4
|
let _id = 0;
|
|
4
5
|
|
|
@@ -89,6 +90,18 @@ class NodeUniformBuffer extends UniformBuffer {
|
|
|
89
90
|
|
|
90
91
|
}
|
|
91
92
|
|
|
93
|
+
/**
|
|
94
|
+
* The buffer's byte length.
|
|
95
|
+
*
|
|
96
|
+
* @type {number}
|
|
97
|
+
* @readonly
|
|
98
|
+
*/
|
|
99
|
+
get byteLength() {
|
|
100
|
+
|
|
101
|
+
return getFloatLength( this.buffer.byteLength );
|
|
102
|
+
|
|
103
|
+
}
|
|
104
|
+
|
|
92
105
|
/**
|
|
93
106
|
* The uniform buffer.
|
|
94
107
|
*
|
|
@@ -64,12 +64,21 @@ vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
|
|
|
64
64
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
#define inverseTransformDirection transformDirectionByInverseViewMatrix // @deprecated r185
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
// upper-left 3x3 of matrix is assumed to be orthogonal
|
|
69
|
+
vec3 transformNormalByInverseViewMatrix( in vec3 normal, in mat4 viewMatrix ) {
|
|
71
70
|
|
|
72
|
-
|
|
71
|
+
// upper-left 3x3 of view matrix is assumed to be orthogonal
|
|
72
|
+
|
|
73
|
+
return normalize( ( vec4( normal, 0.0 ) * viewMatrix ).xyz );
|
|
74
|
+
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
vec3 transformDirectionByInverseViewMatrix( in vec3 dir, in mat4 viewMatrix ) {
|
|
78
|
+
|
|
79
|
+
// upper-left 3x3 of view matrix is assumed to be orthogonal
|
|
80
|
+
|
|
81
|
+
return normalize( ( vec4( dir, 0.0 ) * viewMatrix ).xyz );
|
|
73
82
|
|
|
74
83
|
}
|
|
75
84
|
|
|
@@ -16,7 +16,7 @@ export default /* glsl */`
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
// Transforming Normal Vectors with the Inverse Transformation
|
|
19
|
-
vec3 worldNormal =
|
|
19
|
+
vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix );
|
|
20
20
|
|
|
21
21
|
#ifdef ENVMAP_MODE_REFLECTION
|
|
22
22
|
|
|
@@ -5,7 +5,7 @@ export default /* glsl */`
|
|
|
5
5
|
|
|
6
6
|
#ifdef ENVMAP_TYPE_CUBE_UV
|
|
7
7
|
|
|
8
|
-
vec3 worldNormal =
|
|
8
|
+
vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix );
|
|
9
9
|
|
|
10
10
|
vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );
|
|
11
11
|
|
|
@@ -28,7 +28,7 @@ export default /* glsl */`
|
|
|
28
28
|
// Mixing the reflection with the normal is more accurate and keeps rough objects from gathering light from behind their tangent plane.
|
|
29
29
|
reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) );
|
|
30
30
|
|
|
31
|
-
reflectVec =
|
|
31
|
+
reflectVec = transformDirectionByInverseViewMatrix( reflectVec, viewMatrix );
|
|
32
32
|
|
|
33
33
|
vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );
|
|
34
34
|
|
|
@@ -197,7 +197,7 @@ IncidentLight directLight;
|
|
|
197
197
|
#ifdef USE_LIGHT_PROBES_GRID
|
|
198
198
|
|
|
199
199
|
vec3 probeWorldPos = ( ( vec4( geometryPosition, 1.0 ) - viewMatrix[ 3 ] ) * viewMatrix ).xyz;
|
|
200
|
-
vec3 probeWorldNormal =
|
|
200
|
+
vec3 probeWorldNormal = transformNormalByInverseViewMatrix( geometryNormal, viewMatrix );
|
|
201
201
|
irradiance += getLightProbeGridIrradiance( probeWorldPos, probeWorldNormal );
|
|
202
202
|
|
|
203
203
|
#endif
|
|
@@ -37,7 +37,7 @@ vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
|
|
|
37
37
|
|
|
38
38
|
vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
|
|
39
39
|
|
|
40
|
-
vec3 worldNormal =
|
|
40
|
+
vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix );
|
|
41
41
|
|
|
42
42
|
vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
|
|
43
43
|
|
|
@@ -39,7 +39,7 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
|
|
|
39
39
|
|
|
40
40
|
#endif
|
|
41
41
|
|
|
42
|
-
#
|
|
42
|
+
#ifdef DOUBLE_SIDED
|
|
43
43
|
|
|
44
44
|
tbn[0] *= faceDirection;
|
|
45
45
|
tbn[1] *= faceDirection;
|
|
@@ -60,7 +60,7 @@ float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
|
|
|
60
60
|
|
|
61
61
|
#endif
|
|
62
62
|
|
|
63
|
-
#
|
|
63
|
+
#ifdef DOUBLE_SIDED
|
|
64
64
|
|
|
65
65
|
tbn2[0] *= faceDirection;
|
|
66
66
|
tbn2[1] *= faceDirection;
|
|
@@ -6,7 +6,7 @@ export default /* glsl */`
|
|
|
6
6
|
|
|
7
7
|
// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.
|
|
8
8
|
|
|
9
|
-
vec3 shadowWorldNormal =
|
|
9
|
+
vec3 shadowWorldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix );
|
|
10
10
|
|
|
11
11
|
#else
|
|
12
12
|
|
|
@@ -21,7 +21,7 @@ export default /* glsl */`
|
|
|
21
21
|
|
|
22
22
|
vec3 pos = vWorldPosition;
|
|
23
23
|
vec3 v = normalize( cameraPosition - pos );
|
|
24
|
-
vec3 n =
|
|
24
|
+
vec3 n = transformNormalByInverseViewMatrix( normal, viewMatrix );
|
|
25
25
|
|
|
26
26
|
vec4 transmitted = getIBLVolumeRefraction(
|
|
27
27
|
n, v, material.roughness, material.diffuseContribution, material.specularColorBlended, material.specularF90,
|
|
@@ -29,13 +29,14 @@ const toneMappingMap = {
|
|
|
29
29
|
[ CustomToneMapping ]: 'CUSTOM_TONE_MAPPING'
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
function WebGLOutput( type, width, height, depth, stencil ) {
|
|
32
|
+
function WebGLOutput( type, width, height, antialias, depth, stencil ) {
|
|
33
33
|
|
|
34
34
|
// render targets for scene and post-processing
|
|
35
35
|
const targetA = new WebGLRenderTarget( width, height, {
|
|
36
36
|
type: type,
|
|
37
37
|
depthBuffer: depth,
|
|
38
38
|
stencilBuffer: stencil,
|
|
39
|
+
samples: antialias ? 4 : 0,
|
|
39
40
|
depthTexture: depth ? new DepthTexture( width, height ) : undefined
|
|
40
41
|
} );
|
|
41
42
|
|
|
@@ -265,7 +265,7 @@ function includeReplacer( match, include ) {
|
|
|
265
265
|
|
|
266
266
|
} else {
|
|
267
267
|
|
|
268
|
-
throw new Error( 'Can not resolve #include <' + include + '>' );
|
|
268
|
+
throw new Error( 'THREE.WebGLProgram: Can not resolve #include <' + include + '>' );
|
|
269
269
|
|
|
270
270
|
}
|
|
271
271
|
|
|
@@ -847,9 +847,10 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
847
847
|
|
|
848
848
|
gl.bindAttribLocation( program, 0, parameters.index0AttributeName );
|
|
849
849
|
|
|
850
|
-
} else if ( parameters.
|
|
850
|
+
} else if ( parameters.hasPositionAttribute === true ) {
|
|
851
|
+
|
|
852
|
+
// below avoids the "Attribute 0 is disabled" performance penalty
|
|
851
853
|
|
|
852
|
-
// programs with morphTargets displace position out of attribute 0
|
|
853
854
|
gl.bindAttribLocation( program, 0, 'position' );
|
|
854
855
|
|
|
855
856
|
}
|
|
@@ -888,7 +889,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
888
889
|
const fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );
|
|
889
890
|
|
|
890
891
|
error(
|
|
891
|
-
'
|
|
892
|
+
'WebGLProgram: Shader Error ' + gl.getError() + ' - ' +
|
|
892
893
|
'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\n\n' +
|
|
893
894
|
'Material Name: ' + self.name + '\n' +
|
|
894
895
|
'Material Type: ' + self.type + '\n\n' +
|
|
@@ -108,10 +108,13 @@ function WebGLPrograms( renderer, environments, extensions, capabilities, bindin
|
|
|
108
108
|
vertexShader = material.vertexShader;
|
|
109
109
|
fragmentShader = material.fragmentShader;
|
|
110
110
|
|
|
111
|
-
_customShaders.
|
|
111
|
+
const vertexShaderStage = _customShaders.getVertexShaderStage( material );
|
|
112
|
+
const fragmentShaderStage = _customShaders.getFragmentShaderStage( material );
|
|
112
113
|
|
|
113
|
-
|
|
114
|
-
|
|
114
|
+
_customShaders.update( material, vertexShaderStage, fragmentShaderStage );
|
|
115
|
+
|
|
116
|
+
customVertexShaderID = vertexShaderStage.id;
|
|
117
|
+
customFragmentShaderID = fragmentShaderStage.id;
|
|
115
118
|
|
|
116
119
|
}
|
|
117
120
|
|
|
@@ -126,7 +129,7 @@ function WebGLPrograms( renderer, environments, extensions, capabilities, bindin
|
|
|
126
129
|
const HAS_ENVMAP = !! envMap;
|
|
127
130
|
const HAS_AOMAP = !! material.aoMap;
|
|
128
131
|
const HAS_LIGHTMAP = !! material.lightMap;
|
|
129
|
-
const HAS_BUMPMAP = !! material.bumpMap;
|
|
132
|
+
const HAS_BUMPMAP = !! material.bumpMap && material.wireframe === false;
|
|
130
133
|
const HAS_NORMALMAP = !! material.normalMap;
|
|
131
134
|
const HAS_DISPLACEMENTMAP = !! material.displacementMap;
|
|
132
135
|
const HAS_EMISSIVEMAP = !! material.emissiveMap;
|
|
@@ -324,6 +327,8 @@ function WebGLPrograms( renderer, environments, extensions, capabilities, bindin
|
|
|
324
327
|
|
|
325
328
|
skinning: object.isSkinnedMesh === true,
|
|
326
329
|
|
|
330
|
+
hasPositionAttribute: geometry.attributes.position !== undefined,
|
|
331
|
+
|
|
327
332
|
morphTargets: geometry.morphAttributes.position !== undefined,
|
|
328
333
|
morphNormals: geometry.morphAttributes.normal !== undefined,
|
|
329
334
|
morphColors: geometry.morphAttributes.color !== undefined,
|
|
@@ -585,6 +590,8 @@ function WebGLPrograms( renderer, environments, extensions, capabilities, bindin
|
|
|
585
590
|
_programLayers.enable( 21 );
|
|
586
591
|
if ( parameters.numLightProbeGrids > 0 )
|
|
587
592
|
_programLayers.enable( 22 );
|
|
593
|
+
if ( parameters.hasPositionAttribute )
|
|
594
|
+
_programLayers.enable( 23 );
|
|
588
595
|
|
|
589
596
|
array.push( _programLayers.mask );
|
|
590
597
|
|
|
@@ -159,12 +159,20 @@ function WebGLRenderList() {
|
|
|
159
159
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
function sort( customOpaqueSort, customTransparentSort ) {
|
|
162
|
+
function sort( customOpaqueSort, customTransparentSort, reversedDepth ) {
|
|
163
163
|
|
|
164
164
|
if ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );
|
|
165
165
|
if ( transmissive.length > 1 ) transmissive.sort( customTransparentSort || reversePainterSortStable );
|
|
166
166
|
if ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );
|
|
167
167
|
|
|
168
|
+
if ( reversedDepth ) {
|
|
169
|
+
|
|
170
|
+
opaque.reverse();
|
|
171
|
+
transmissive.reverse();
|
|
172
|
+
transparent.reverse();
|
|
173
|
+
|
|
174
|
+
}
|
|
175
|
+
|
|
168
176
|
}
|
|
169
177
|
|
|
170
178
|
function finish() {
|
|
@@ -9,13 +9,7 @@ class WebGLShaderCache {
|
|
|
9
9
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
update( material ) {
|
|
13
|
-
|
|
14
|
-
const vertexShader = material.vertexShader;
|
|
15
|
-
const fragmentShader = material.fragmentShader;
|
|
16
|
-
|
|
17
|
-
const vertexShaderStage = this._getShaderStage( vertexShader );
|
|
18
|
-
const fragmentShaderStage = this._getShaderStage( fragmentShader );
|
|
12
|
+
update( material, vertexShaderStage, fragmentShaderStage ) {
|
|
19
13
|
|
|
20
14
|
const materialShaders = this._getShaderCacheForMaterial( material );
|
|
21
15
|
|
|
@@ -55,15 +49,15 @@ class WebGLShaderCache {
|
|
|
55
49
|
|
|
56
50
|
}
|
|
57
51
|
|
|
58
|
-
|
|
52
|
+
getVertexShaderStage( material ) {
|
|
59
53
|
|
|
60
|
-
return this._getShaderStage( material.vertexShader )
|
|
54
|
+
return this._getShaderStage( material.vertexShader );
|
|
61
55
|
|
|
62
56
|
}
|
|
63
57
|
|
|
64
|
-
|
|
58
|
+
getFragmentShaderStage( material ) {
|
|
65
59
|
|
|
66
|
-
return this._getShaderStage( material.fragmentShader )
|
|
60
|
+
return this._getShaderStage( material.fragmentShader );
|
|
67
61
|
|
|
68
62
|
}
|
|
69
63
|
|
|
@@ -1295,12 +1295,25 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1295
1295
|
|
|
1296
1296
|
}
|
|
1297
1297
|
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1298
|
+
if ( _gl.texElementImage2D.length === 3 ) {
|
|
1299
|
+
|
|
1300
|
+
// Chrome 150+
|
|
1301
|
+
|
|
1302
|
+
_gl.texElementImage2D( _gl.TEXTURE_2D, _gl.RGBA8, image );
|
|
1303
|
+
|
|
1304
|
+
} else {
|
|
1305
|
+
|
|
1306
|
+
// Chrome 138 - 149
|
|
1307
|
+
|
|
1308
|
+
const level = 0;
|
|
1309
|
+
const internalFormat = _gl.RGBA;
|
|
1310
|
+
const srcFormat = _gl.RGBA;
|
|
1311
|
+
const srcType = _gl.UNSIGNED_BYTE;
|
|
1312
|
+
|
|
1313
|
+
_gl.texElementImage2D( _gl.TEXTURE_2D, level, internalFormat, srcFormat, srcType, image );
|
|
1314
|
+
|
|
1315
|
+
}
|
|
1302
1316
|
|
|
1303
|
-
_gl.texElementImage2D( _gl.TEXTURE_2D, level, internalFormat, srcFormat, srcType, image );
|
|
1304
1317
|
_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_MIN_FILTER, _gl.LINEAR );
|
|
1305
1318
|
_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE );
|
|
1306
1319
|
_gl.texParameteri( _gl.TEXTURE_2D, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE );
|
|
@@ -1747,7 +1760,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1747
1760
|
|
|
1748
1761
|
if ( ! ( renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture ) ) {
|
|
1749
1762
|
|
|
1750
|
-
throw new Error( 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' );
|
|
1763
|
+
throw new Error( 'THREE.WebGLTextures: renderTarget.depthTexture must be an instance of THREE.DepthTexture.' );
|
|
1751
1764
|
|
|
1752
1765
|
}
|
|
1753
1766
|
|
|
@@ -1845,7 +1858,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1845
1858
|
|
|
1846
1859
|
} else {
|
|
1847
1860
|
|
|
1848
|
-
throw new Error( 'Unknown depthTexture format' );
|
|
1861
|
+
throw new Error( 'THREE.WebGLTextures: Unknown depthTexture format.' );
|
|
1849
1862
|
|
|
1850
1863
|
}
|
|
1851
1864
|
|