@plastic-software/three 0.179.0 → 0.181.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 +1108 -591
- package/build/three.core.js +616 -345
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +488 -250
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +37 -6
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +6576 -2152
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +6575 -2151
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +8 -8
- package/examples/jsm/controls/DragControls.js +7 -57
- package/examples/jsm/controls/FirstPersonControls.js +3 -3
- package/examples/jsm/controls/FlyControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +1 -1
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +33 -25
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +9 -2
- package/examples/jsm/geometries/DecalGeometry.js +2 -2
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +3 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/ViewHelper.js +43 -5
- package/examples/jsm/inspector/Inspector.js +427 -0
- package/examples/jsm/inspector/RendererInspector.js +415 -0
- package/examples/jsm/inspector/tabs/Console.js +204 -0
- package/examples/jsm/inspector/tabs/Parameters.js +332 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Viewer.js +166 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +170 -0
- package/examples/jsm/inspector/ui/Style.js +654 -0
- package/examples/jsm/inspector/ui/Tab.js +46 -0
- package/examples/jsm/inspector/ui/Values.js +423 -0
- package/examples/jsm/inspector/ui/utils.js +56 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +3 -3
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +5 -5
- package/examples/jsm/loaders/FBXLoader.js +2 -2
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GLTFLoader.js +14 -8
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +486 -0
- package/examples/jsm/loaders/KTX2Loader.js +136 -49
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/UltraHDRLoader.js +2 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/SkyMesh.js +1 -1
- package/examples/jsm/objects/Water.js +3 -3
- package/examples/jsm/objects/WaterMesh.js +6 -6
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
- package/examples/jsm/renderers/SVGRenderer.js +1 -1
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +2 -2
- package/examples/jsm/shaders/GodRaysShader.js +1 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +1 -1
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +22 -19
- package/examples/jsm/transpiler/TSLEncoder.js +9 -10
- package/examples/jsm/transpiler/WGSLEncoder.js +24 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
- package/examples/jsm/tsl/display/AnamorphicNode.js +28 -4
- package/examples/jsm/tsl/display/BloomNode.js +7 -3
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +2 -1
- package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/GTAONode.js +53 -5
- package/examples/jsm/tsl/display/GaussianBlurNode.js +49 -35
- package/examples/jsm/tsl/display/OutlineNode.js +13 -2
- package/examples/jsm/tsl/display/SSGINode.js +654 -0
- package/examples/jsm/tsl/display/SSRNode.js +182 -65
- package/examples/jsm/tsl/display/SSSNode.js +488 -0
- package/examples/jsm/tsl/display/TRAANode.js +124 -7
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewerGPU.js +12 -5
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
- package/package.json +5 -10
- package/src/Three.Core.js +4 -2
- package/src/Three.TSL.js +36 -5
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +2 -0
- package/src/animation/AnimationClip.js +20 -4
- package/src/animation/AnimationMixer.js +3 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/KeyframeTrack.js +7 -6
- package/src/animation/PropertyBinding.js +12 -11
- package/src/audio/Audio.js +10 -9
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +11 -3
- package/src/core/BufferGeometry.js +10 -10
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +3 -2
- package/src/core/Raycaster.js +2 -1
- package/src/core/RenderTarget.js +10 -1
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +268 -55
- package/src/extras/TextureUtils.js +2 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +8 -6
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +1 -0
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +1 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +2 -1
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +2 -2
- package/src/loaders/DataTextureLoader.js +1 -1
- package/src/loaders/FileLoader.js +3 -2
- package/src/loaders/ImageBitmapLoader.js +5 -4
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +3 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +3 -2
- package/src/loaders/ObjectLoader.js +13 -13
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +3 -2
- package/src/materials/Material.js +16 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +2 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +2 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +1 -0
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +2 -2
- package/src/materials/nodes/Line2NodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/NodeMaterial.js +62 -22
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +3 -2
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/MathUtils.js +13 -11
- package/src/math/Matrix2.js +1 -1
- package/src/math/Matrix3.js +2 -2
- package/src/math/Matrix4.js +7 -7
- package/src/math/Plane.js +1 -1
- package/src/math/Quaternion.js +68 -66
- package/src/math/Spherical.js +1 -1
- package/src/nodes/Nodes.js +4 -1
- package/src/nodes/TSL.js +4 -1
- package/src/nodes/accessors/BufferNode.js +1 -1
- package/src/nodes/accessors/Camera.js +133 -7
- package/src/nodes/accessors/ClippingNode.js +6 -5
- package/src/nodes/accessors/CubeTextureNode.js +5 -4
- package/src/nodes/accessors/InstanceNode.js +25 -5
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/Normal.js +5 -4
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/Position.js +18 -2
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +3 -2
- package/src/nodes/accessors/SceneNode.js +2 -1
- package/src/nodes/accessors/StorageBufferNode.js +2 -1
- package/src/nodes/accessors/StorageTextureNode.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +14 -1
- package/src/nodes/accessors/TextureNode.js +130 -44
- package/src/nodes/code/FunctionCallNode.js +24 -4
- package/src/nodes/code/FunctionNode.js +23 -0
- package/src/nodes/core/ArrayNode.js +1 -0
- package/src/nodes/core/AssignNode.js +4 -3
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +29 -10
- package/src/nodes/core/IndexNode.js +2 -2
- package/src/nodes/core/InputNode.js +2 -1
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
- package/src/nodes/core/Node.js +152 -31
- package/src/nodes/core/NodeBuilder.js +183 -35
- package/src/nodes/core/NodeFrame.js +21 -21
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +17 -91
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +43 -16
- package/src/nodes/core/StructNode.js +5 -5
- package/src/nodes/core/StructTypeNode.js +1 -0
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformNode.js +18 -10
- package/src/nodes/core/VarNode.js +70 -33
- package/src/nodes/core/VaryingNode.js +3 -2
- package/src/nodes/display/BlendModes.js +5 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +1 -1
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +2 -1
- package/src/nodes/display/PassNode.js +52 -11
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +44 -14
- package/src/nodes/display/ToneMappingNode.js +31 -4
- package/src/nodes/display/ToonOutlinePassNode.js +8 -0
- package/src/nodes/display/ViewportDepthTextureNode.js +16 -4
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +42 -12
- package/src/nodes/fog/Fog.js +3 -2
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +3 -2
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +40 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
- package/src/nodes/gpgpu/ComputeNode.js +17 -5
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
- package/src/nodes/lighting/EnvironmentNode.js +6 -6
- package/src/nodes/lighting/LightsNode.js +3 -4
- package/src/nodes/lighting/PointShadowNode.js +6 -0
- package/src/nodes/lighting/ShadowFilterNode.js +2 -0
- package/src/nodes/lighting/ShadowNode.js +75 -8
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/ConditionalNode.js +24 -7
- package/src/nodes/math/MathNode.js +25 -19
- package/src/nodes/math/OperatorNode.js +7 -5
- package/src/nodes/pmrem/PMREMUtils.js +117 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +5 -2
- package/src/nodes/tsl/TSLCore.js +460 -159
- package/src/nodes/utils/DebugNode.js +2 -1
- package/src/nodes/utils/EventNode.js +36 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +6 -3
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +59 -7
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +13 -3
- package/src/nodes/utils/ReflectorNode.js +58 -7
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SplitNode.js +11 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/objects/BatchedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +2 -1
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Skeleton.js +3 -2
- package/src/objects/SkinnedMesh.js +3 -1
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +48 -41
- package/src/renderers/common/Animation.js +13 -1
- package/src/renderers/common/Attributes.js +1 -1
- package/src/renderers/common/Backend.js +108 -27
- package/src/renderers/common/Background.js +2 -1
- package/src/renderers/common/Bindings.js +58 -2
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +1 -1
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +26 -0
- package/src/renderers/common/Info.js +4 -2
- package/src/renderers/common/InspectorBase.js +146 -0
- package/src/renderers/common/Pipelines.js +1 -1
- package/src/renderers/common/PostProcessing.js +6 -25
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/RenderContext.js +2 -2
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderObject.js +16 -2
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +473 -245
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +50 -12
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +121 -45
- package/src/renderers/common/TimestampQueryPool.js +65 -3
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +42 -22
- package/src/renderers/common/extras/PMREMGenerator.js +160 -65
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/Nodes.js +38 -16
- package/src/renderers/shaders/DFGLUTData.js +64 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -15
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +1 -1
- package/src/renderers/shaders/UniformsLib.js +1 -0
- package/src/renderers/shaders/UniformsUtils.js +25 -4
- package/src/renderers/webgl/WebGLCapabilities.js +2 -1
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLProgram.js +15 -14
- package/src/renderers/webgl/WebGLPrograms.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +3 -2
- package/src/renderers/webgl/WebGLState.js +15 -14
- package/src/renderers/webgl/WebGLTextures.js +19 -14
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl/WebGLUtils.js +3 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +199 -167
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +181 -25
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +7 -6
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +169 -19
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +51 -22
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -2
- package/src/renderers/webgpu/WebGPUBackend.js +153 -123
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +142 -50
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +7 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +53 -34
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +260 -99
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +32 -9
- package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
- package/src/renderers/webxr/WebXRManager.js +42 -26
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/Source.js +3 -2
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +67 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
|
@@ -5,6 +5,7 @@ import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefra
|
|
|
5
5
|
import { ColorManagement } from '../../math/ColorManagement.js';
|
|
6
6
|
import { Vector3 } from '../../math/Vector3.js';
|
|
7
7
|
import { Matrix3 } from '../../math/Matrix3.js';
|
|
8
|
+
import { warn, error } from '../../utils.js';
|
|
8
9
|
|
|
9
10
|
// From https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/
|
|
10
11
|
const COMPLETION_STATUS_KHR = 0x91B1;
|
|
@@ -47,7 +48,7 @@ function getEncodingComponents( colorSpace ) {
|
|
|
47
48
|
return [ encodingMatrix, 'sRGBTransferOETF' ];
|
|
48
49
|
|
|
49
50
|
default:
|
|
50
|
-
|
|
51
|
+
warn( 'WebGLProgram: Unsupported color space: ', colorSpace );
|
|
51
52
|
return [ encodingMatrix, 'LinearTransferOETF' ];
|
|
52
53
|
|
|
53
54
|
}
|
|
@@ -67,7 +68,7 @@ function getShaderErrors( gl, shader, type ) {
|
|
|
67
68
|
if ( errorMatches ) {
|
|
68
69
|
|
|
69
70
|
// --enable-privileged-webgl-extension
|
|
70
|
-
//
|
|
71
|
+
// log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );
|
|
71
72
|
|
|
72
73
|
const errorLine = parseInt( errorMatches[ 1 ] );
|
|
73
74
|
return type.toUpperCase() + '\n\n' + errors + '\n\n' + handleSource( gl.getShaderSource( shader ), errorLine );
|
|
@@ -131,7 +132,7 @@ function getToneMappingFunction( functionName, toneMapping ) {
|
|
|
131
132
|
break;
|
|
132
133
|
|
|
133
134
|
default:
|
|
134
|
-
|
|
135
|
+
warn( 'WebGLProgram: Unsupported toneMapping:', toneMapping );
|
|
135
136
|
toneMappingName = 'Linear';
|
|
136
137
|
|
|
137
138
|
}
|
|
@@ -209,7 +210,7 @@ function fetchAttributeLocations( gl, program ) {
|
|
|
209
210
|
if ( info.type === gl.FLOAT_MAT3 ) locationSize = 3;
|
|
210
211
|
if ( info.type === gl.FLOAT_MAT4 ) locationSize = 4;
|
|
211
212
|
|
|
212
|
-
//
|
|
213
|
+
// log( 'WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );
|
|
213
214
|
|
|
214
215
|
attributes[ name ] = {
|
|
215
216
|
type: info.type,
|
|
@@ -279,7 +280,7 @@ function includeReplacer( match, include ) {
|
|
|
279
280
|
if ( newInclude !== undefined ) {
|
|
280
281
|
|
|
281
282
|
string = ShaderChunk[ newInclude ];
|
|
282
|
-
|
|
283
|
+
warn( 'WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.', include, newInclude );
|
|
283
284
|
|
|
284
285
|
} else {
|
|
285
286
|
|
|
@@ -475,7 +476,7 @@ function generateCubeUVSize( parameters ) {
|
|
|
475
476
|
function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
476
477
|
|
|
477
478
|
// TODO Send this event to Three.js DevTools
|
|
478
|
-
//
|
|
479
|
+
// log( 'WebGLProgram', cacheKey );
|
|
479
480
|
|
|
480
481
|
const gl = renderer.getContext();
|
|
481
482
|
|
|
@@ -663,8 +664,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
663
664
|
|
|
664
665
|
parameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',
|
|
665
666
|
|
|
666
|
-
parameters.logarithmicDepthBuffer ? '#define
|
|
667
|
-
parameters.reversedDepthBuffer ? '#define
|
|
667
|
+
parameters.logarithmicDepthBuffer ? '#define USE_LOGARITHMIC_DEPTH_BUFFER' : '',
|
|
668
|
+
parameters.reversedDepthBuffer ? '#define USE_REVERSED_DEPTH_BUFFER' : '',
|
|
668
669
|
|
|
669
670
|
'uniform mat4 modelMatrix;',
|
|
670
671
|
'uniform mat4 modelViewMatrix;',
|
|
@@ -839,8 +840,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
839
840
|
parameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',
|
|
840
841
|
parameters.decodeVideoTextureEmissive ? '#define DECODE_VIDEO_TEXTURE_EMISSIVE' : '',
|
|
841
842
|
|
|
842
|
-
parameters.logarithmicDepthBuffer ? '#define
|
|
843
|
-
parameters.reversedDepthBuffer ? '#define
|
|
843
|
+
parameters.logarithmicDepthBuffer ? '#define USE_LOGARITHMIC_DEPTH_BUFFER' : '',
|
|
844
|
+
parameters.reversedDepthBuffer ? '#define USE_REVERSED_DEPTH_BUFFER' : '',
|
|
844
845
|
|
|
845
846
|
'uniform mat4 modelViewMatrix;',
|
|
846
847
|
'uniform mat4 viewMatrix;',
|
|
@@ -912,8 +913,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
912
913
|
const vertexGlsl = versionString + prefixVertex + vertexShader;
|
|
913
914
|
const fragmentGlsl = versionString + prefixFragment + fragmentShader;
|
|
914
915
|
|
|
915
|
-
//
|
|
916
|
-
//
|
|
916
|
+
// log( '*VERTEX*', vertexGlsl );
|
|
917
|
+
// log( '*FRAGMENT*', fragmentGlsl );
|
|
917
918
|
|
|
918
919
|
const glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl );
|
|
919
920
|
const glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl );
|
|
@@ -967,7 +968,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
967
968
|
const vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );
|
|
968
969
|
const fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );
|
|
969
970
|
|
|
970
|
-
|
|
971
|
+
error(
|
|
971
972
|
'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +
|
|
972
973
|
'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\n\n' +
|
|
973
974
|
'Material Name: ' + self.name + '\n' +
|
|
@@ -981,7 +982,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
981
982
|
|
|
982
983
|
} else if ( programLog !== '' ) {
|
|
983
984
|
|
|
984
|
-
|
|
985
|
+
warn( 'WebGLProgram: Program Info Log:', programLog );
|
|
985
986
|
|
|
986
987
|
} else if ( vertexLog === '' || fragmentLog === '' ) {
|
|
987
988
|
|
|
@@ -5,6 +5,7 @@ import { WebGLShaderCache } from './WebGLShaderCache.js';
|
|
|
5
5
|
import { ShaderLib } from '../shaders/ShaderLib.js';
|
|
6
6
|
import { UniformsUtils } from '../shaders/UniformsUtils.js';
|
|
7
7
|
import { ColorManagement } from '../../math/ColorManagement.js';
|
|
8
|
+
import { warn } from '../../utils.js';
|
|
8
9
|
|
|
9
10
|
function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {
|
|
10
11
|
|
|
@@ -66,7 +67,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
66
67
|
|
|
67
68
|
if ( precision !== material.precision ) {
|
|
68
69
|
|
|
69
|
-
|
|
70
|
+
warn( 'WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );
|
|
70
71
|
|
|
71
72
|
}
|
|
72
73
|
|
|
@@ -11,6 +11,7 @@ import { Vector2 } from '../../math/Vector2.js';
|
|
|
11
11
|
import { Frustum } from '../../math/Frustum.js';
|
|
12
12
|
|
|
13
13
|
import * as vsm from '../shaders/ShaderLib/vsm.glsl.js';
|
|
14
|
+
import { warn } from '../../utils.js';
|
|
14
15
|
|
|
15
16
|
function WebGLShadowMap( renderer, objects, capabilities ) {
|
|
16
17
|
|
|
@@ -85,7 +86,7 @@ function WebGLShadowMap( renderer, objects, capabilities ) {
|
|
|
85
86
|
// Set GL state for depth map.
|
|
86
87
|
_state.setBlending( NoBlending );
|
|
87
88
|
|
|
88
|
-
if ( _state.buffers.depth.getReversed() ) {
|
|
89
|
+
if ( _state.buffers.depth.getReversed() === true ) {
|
|
89
90
|
|
|
90
91
|
_state.buffers.color.setClear( 0, 0, 0, 0 );
|
|
91
92
|
|
|
@@ -112,7 +113,7 @@ function WebGLShadowMap( renderer, objects, capabilities ) {
|
|
|
112
113
|
|
|
113
114
|
if ( shadow === undefined ) {
|
|
114
115
|
|
|
115
|
-
|
|
116
|
+
warn( 'WebGLShadowMap:', light, 'has no shadow.' );
|
|
116
117
|
continue;
|
|
117
118
|
|
|
118
119
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NotEqualDepth, GreaterDepth, GreaterEqualDepth, EqualDepth, LessEqualDepth, LessDepth, AlwaysDepth, NeverDepth, CullFaceFront, CullFaceBack, CullFaceNone, DoubleSide, BackSide, CustomBlending, MultiplyBlending, SubtractiveBlending, AdditiveBlending, NoBlending, NormalBlending, AddEquation, SubtractEquation, ReverseSubtractEquation, MinEquation, MaxEquation, ZeroFactor, OneFactor, SrcColorFactor, SrcAlphaFactor, SrcAlphaSaturateFactor, DstColorFactor, DstAlphaFactor, OneMinusSrcColorFactor, OneMinusSrcAlphaFactor, OneMinusDstColorFactor, OneMinusDstAlphaFactor, ConstantColorFactor, OneMinusConstantColorFactor, ConstantAlphaFactor, OneMinusConstantAlphaFactor } from '../../constants.js';
|
|
2
2
|
import { Color } from '../../math/Color.js';
|
|
3
3
|
import { Vector4 } from '../../math/Vector4.js';
|
|
4
|
+
import { error } from '../../utils.js';
|
|
4
5
|
|
|
5
6
|
const reversedFuncs = {
|
|
6
7
|
[ NeverDepth ]: AlwaysDepth,
|
|
@@ -671,7 +672,7 @@ function WebGLState( gl, extensions ) {
|
|
|
671
672
|
break;
|
|
672
673
|
|
|
673
674
|
default:
|
|
674
|
-
|
|
675
|
+
error( 'WebGLState: Invalid blending: ', blending );
|
|
675
676
|
break;
|
|
676
677
|
|
|
677
678
|
}
|
|
@@ -689,15 +690,15 @@ function WebGLState( gl, extensions ) {
|
|
|
689
690
|
break;
|
|
690
691
|
|
|
691
692
|
case SubtractiveBlending:
|
|
692
|
-
|
|
693
|
+
error( 'WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true' );
|
|
693
694
|
break;
|
|
694
695
|
|
|
695
696
|
case MultiplyBlending:
|
|
696
|
-
|
|
697
|
+
error( 'WebGLState: MultiplyBlending requires material.premultipliedAlpha = true' );
|
|
697
698
|
break;
|
|
698
699
|
|
|
699
700
|
default:
|
|
700
|
-
|
|
701
|
+
error( 'WebGLState: Invalid blending: ', blending );
|
|
701
702
|
break;
|
|
702
703
|
|
|
703
704
|
}
|
|
@@ -984,7 +985,7 @@ function WebGLState( gl, extensions ) {
|
|
|
984
985
|
|
|
985
986
|
} catch ( error ) {
|
|
986
987
|
|
|
987
|
-
|
|
988
|
+
error( 'WebGLState:', error );
|
|
988
989
|
|
|
989
990
|
}
|
|
990
991
|
|
|
@@ -998,7 +999,7 @@ function WebGLState( gl, extensions ) {
|
|
|
998
999
|
|
|
999
1000
|
} catch ( error ) {
|
|
1000
1001
|
|
|
1001
|
-
|
|
1002
|
+
error( 'WebGLState:', error );
|
|
1002
1003
|
|
|
1003
1004
|
}
|
|
1004
1005
|
|
|
@@ -1012,7 +1013,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1012
1013
|
|
|
1013
1014
|
} catch ( error ) {
|
|
1014
1015
|
|
|
1015
|
-
|
|
1016
|
+
error( 'WebGLState:', error );
|
|
1016
1017
|
|
|
1017
1018
|
}
|
|
1018
1019
|
|
|
@@ -1026,7 +1027,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1026
1027
|
|
|
1027
1028
|
} catch ( error ) {
|
|
1028
1029
|
|
|
1029
|
-
|
|
1030
|
+
error( 'WebGLState:', error );
|
|
1030
1031
|
|
|
1031
1032
|
}
|
|
1032
1033
|
|
|
@@ -1040,7 +1041,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1040
1041
|
|
|
1041
1042
|
} catch ( error ) {
|
|
1042
1043
|
|
|
1043
|
-
|
|
1044
|
+
error( 'WebGLState:', error );
|
|
1044
1045
|
|
|
1045
1046
|
}
|
|
1046
1047
|
|
|
@@ -1054,7 +1055,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1054
1055
|
|
|
1055
1056
|
} catch ( error ) {
|
|
1056
1057
|
|
|
1057
|
-
|
|
1058
|
+
error( 'WebGLState:', error );
|
|
1058
1059
|
|
|
1059
1060
|
}
|
|
1060
1061
|
|
|
@@ -1068,7 +1069,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1068
1069
|
|
|
1069
1070
|
} catch ( error ) {
|
|
1070
1071
|
|
|
1071
|
-
|
|
1072
|
+
error( 'WebGLState:', error );
|
|
1072
1073
|
|
|
1073
1074
|
}
|
|
1074
1075
|
|
|
@@ -1082,7 +1083,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1082
1083
|
|
|
1083
1084
|
} catch ( error ) {
|
|
1084
1085
|
|
|
1085
|
-
|
|
1086
|
+
error( 'WebGLState:', error );
|
|
1086
1087
|
|
|
1087
1088
|
}
|
|
1088
1089
|
|
|
@@ -1096,7 +1097,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1096
1097
|
|
|
1097
1098
|
} catch ( error ) {
|
|
1098
1099
|
|
|
1099
|
-
|
|
1100
|
+
error( 'WebGLState:', error );
|
|
1100
1101
|
|
|
1101
1102
|
}
|
|
1102
1103
|
|
|
@@ -1110,7 +1111,7 @@ function WebGLState( gl, extensions ) {
|
|
|
1110
1111
|
|
|
1111
1112
|
} catch ( error ) {
|
|
1112
1113
|
|
|
1113
|
-
|
|
1114
|
+
error( 'WebGLState:', error );
|
|
1114
1115
|
|
|
1115
1116
|
}
|
|
1116
1117
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, RGBAFormat, DepthFormat, DepthStencilFormat, UnsignedIntType, FloatType, MirroredRepeatWrapping, ClampToEdgeWrapping, RepeatWrapping, UnsignedByteType, NoColorSpace, LinearSRGBColorSpace, NeverCompare, AlwaysCompare, LessCompare, LessEqualCompare, EqualCompare, GreaterEqualCompare, GreaterCompare, NotEqualCompare, SRGBTransfer, LinearTransfer, UnsignedShortType, UnsignedInt248Type } from '../../constants.js';
|
|
2
|
-
import { createElementNS } from '../../utils.js';
|
|
2
|
+
import { createElementNS, warn, error } from '../../utils.js';
|
|
3
3
|
import { ColorManagement } from '../../math/ColorManagement.js';
|
|
4
4
|
import { Vector2 } from '../../math/Vector2.js';
|
|
5
5
|
import { getByteLength } from '../../extras/TextureUtils.js';
|
|
@@ -83,7 +83,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
83
83
|
const context = canvas.getContext( '2d' );
|
|
84
84
|
context.drawImage( image, 0, 0, width, height );
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
warn( 'WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );
|
|
87
87
|
|
|
88
88
|
return canvas;
|
|
89
89
|
|
|
@@ -91,7 +91,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
91
91
|
|
|
92
92
|
if ( 'data' in image ) {
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
warn( 'WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );
|
|
95
95
|
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -132,7 +132,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
132
132
|
|
|
133
133
|
if ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
warn( 'WebGLRenderer: Attempt to use non-existing WebGL internal format \'' + internalFormatName + '\'' );
|
|
136
136
|
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -201,6 +201,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
201
201
|
if ( glFormat === _gl.RGB ) {
|
|
202
202
|
|
|
203
203
|
if ( glType === _gl.UNSIGNED_INT_5_9_9_9_REV ) internalFormat = _gl.RGB9_E5;
|
|
204
|
+
if ( glType === _gl.UNSIGNED_INT_10F_11F_11F_REV ) internalFormat = _gl.R11F_G11F_B10F;
|
|
204
205
|
|
|
205
206
|
}
|
|
206
207
|
|
|
@@ -244,7 +245,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
244
245
|
} else if ( depthType === UnsignedShortType ) {
|
|
245
246
|
|
|
246
247
|
glInternalFormat = _gl.DEPTH24_STENCIL8;
|
|
247
|
-
|
|
248
|
+
warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );
|
|
248
249
|
|
|
249
250
|
}
|
|
250
251
|
|
|
@@ -474,7 +475,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
474
475
|
|
|
475
476
|
if ( textureUnit >= capabilities.maxTextures ) {
|
|
476
477
|
|
|
477
|
-
|
|
478
|
+
warn( 'WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );
|
|
478
479
|
|
|
479
480
|
}
|
|
480
481
|
|
|
@@ -521,11 +522,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
521
522
|
|
|
522
523
|
if ( image === null ) {
|
|
523
524
|
|
|
524
|
-
|
|
525
|
+
warn( 'WebGLRenderer: Texture marked for update but no image data found.' );
|
|
525
526
|
|
|
526
527
|
} else if ( image.complete === false ) {
|
|
527
528
|
|
|
528
|
-
|
|
529
|
+
warn( 'WebGLRenderer: Texture marked for update but image is incomplete' );
|
|
529
530
|
|
|
530
531
|
} else {
|
|
531
532
|
|
|
@@ -553,6 +554,10 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
553
554
|
uploadTexture( textureProperties, texture, slot );
|
|
554
555
|
return;
|
|
555
556
|
|
|
557
|
+
} else if ( texture.isExternalTexture ) {
|
|
558
|
+
|
|
559
|
+
textureProperties.__webglTexture = texture.sourceTexture ? texture.sourceTexture : null;
|
|
560
|
+
|
|
556
561
|
}
|
|
557
562
|
|
|
558
563
|
state.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );
|
|
@@ -622,7 +627,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
622
627
|
( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||
|
|
623
628
|
texture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {
|
|
624
629
|
|
|
625
|
-
|
|
630
|
+
warn( 'WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );
|
|
626
631
|
|
|
627
632
|
}
|
|
628
633
|
|
|
@@ -1031,7 +1036,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1031
1036
|
|
|
1032
1037
|
} else {
|
|
1033
1038
|
|
|
1034
|
-
|
|
1039
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
|
|
1035
1040
|
|
|
1036
1041
|
}
|
|
1037
1042
|
|
|
@@ -1087,7 +1092,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1087
1092
|
|
|
1088
1093
|
} else {
|
|
1089
1094
|
|
|
1090
|
-
|
|
1095
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
|
|
1091
1096
|
|
|
1092
1097
|
}
|
|
1093
1098
|
|
|
@@ -1381,7 +1386,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1381
1386
|
|
|
1382
1387
|
} else {
|
|
1383
1388
|
|
|
1384
|
-
|
|
1389
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );
|
|
1385
1390
|
|
|
1386
1391
|
}
|
|
1387
1392
|
|
|
@@ -2274,13 +2279,13 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
2274
2279
|
|
|
2275
2280
|
if ( format !== RGBAFormat || type !== UnsignedByteType ) {
|
|
2276
2281
|
|
|
2277
|
-
|
|
2282
|
+
warn( 'WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );
|
|
2278
2283
|
|
|
2279
2284
|
}
|
|
2280
2285
|
|
|
2281
2286
|
} else {
|
|
2282
2287
|
|
|
2283
|
-
|
|
2288
|
+
error( 'WebGLTextures: Unsupported texture color space:', colorSpace );
|
|
2284
2289
|
|
|
2285
2290
|
}
|
|
2286
2291
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { error, warn } from '../../utils.js';
|
|
2
|
+
|
|
1
3
|
function WebGLUniformsGroups( gl, info, capabilities, state ) {
|
|
2
4
|
|
|
3
5
|
let buffers = {};
|
|
@@ -80,7 +82,7 @@ function WebGLUniformsGroups( gl, info, capabilities, state ) {
|
|
|
80
82
|
|
|
81
83
|
}
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
error( 'WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.' );
|
|
84
86
|
|
|
85
87
|
return 0;
|
|
86
88
|
|
|
@@ -335,11 +337,11 @@ function WebGLUniformsGroups( gl, info, capabilities, state ) {
|
|
|
335
337
|
|
|
336
338
|
} else if ( value.isTexture ) {
|
|
337
339
|
|
|
338
|
-
|
|
340
|
+
warn( 'WebGLRenderer: Texture samplers can not be part of an uniforms group.' );
|
|
339
341
|
|
|
340
342
|
} else {
|
|
341
343
|
|
|
342
|
-
|
|
344
|
+
warn( 'WebGLRenderer: Unsupported uniform value type.', value );
|
|
343
345
|
|
|
344
346
|
}
|
|
345
347
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, NoColorSpace, SRGBTransfer, UnsignedInt5999Type, RGBFormat } from '../../constants.js';
|
|
1
|
+
import { RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT5_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT1_Format, RGB_S3TC_DXT1_Format, DepthFormat, DepthStencilFormat, RedFormat, RGBAFormat, AlphaFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, HalfFloatType, FloatType, UnsignedIntType, IntType, UnsignedShortType, ShortType, ByteType, UnsignedInt248Type, UnsignedShort5551Type, UnsignedShort4444Type, UnsignedByteType, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, NoColorSpace, SRGBTransfer, UnsignedInt5999Type, RGBFormat, UnsignedInt101111Type } from '../../constants.js';
|
|
2
2
|
import { ColorManagement } from '../../math/ColorManagement.js';
|
|
3
3
|
|
|
4
4
|
function WebGLUtils( gl, extensions ) {
|
|
@@ -13,6 +13,7 @@ function WebGLUtils( gl, extensions ) {
|
|
|
13
13
|
if ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4;
|
|
14
14
|
if ( p === UnsignedShort5551Type ) return gl.UNSIGNED_SHORT_5_5_5_1;
|
|
15
15
|
if ( p === UnsignedInt5999Type ) return gl.UNSIGNED_INT_5_9_9_9_REV;
|
|
16
|
+
if ( p === UnsignedInt101111Type ) return gl.UNSIGNED_INT_10F_11F_11F_REV;
|
|
16
17
|
|
|
17
18
|
if ( p === ByteType ) return gl.BYTE;
|
|
18
19
|
if ( p === ShortType ) return gl.SHORT;
|
|
@@ -181,7 +182,7 @@ function WebGLUtils( gl, extensions ) {
|
|
|
181
182
|
|
|
182
183
|
if ( extension !== null ) {
|
|
183
184
|
|
|
184
|
-
if ( p ===
|
|
185
|
+
if ( p === RED_RGTC1_Format ) return extension.COMPRESSED_RED_RGTC1_EXT;
|
|
185
186
|
if ( p === SIGNED_RED_RGTC1_Format ) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;
|
|
186
187
|
if ( p === RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;
|
|
187
188
|
if ( p === SIGNED_RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;
|