super-three 0.179.0 → 0.181.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 +1112 -595
- package/build/three.core.js +616 -345
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +492 -254
- 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 +6573 -2150
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +6572 -2149
- 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 +52 -43
- 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 +3 -2
- 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 +41 -27
- 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
|
|
|
@@ -655,8 +656,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
655
656
|
|
|
656
657
|
parameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',
|
|
657
658
|
|
|
658
|
-
parameters.logarithmicDepthBuffer ? '#define
|
|
659
|
-
parameters.reversedDepthBuffer ? '#define
|
|
659
|
+
parameters.logarithmicDepthBuffer ? '#define USE_LOGARITHMIC_DEPTH_BUFFER' : '',
|
|
660
|
+
parameters.reversedDepthBuffer ? '#define USE_REVERSED_DEPTH_BUFFER' : '',
|
|
660
661
|
|
|
661
662
|
'uniform mat4 modelMatrix;',
|
|
662
663
|
'uniform mat4 modelViewMatrix;',
|
|
@@ -822,8 +823,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
822
823
|
parameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',
|
|
823
824
|
parameters.decodeVideoTextureEmissive ? '#define DECODE_VIDEO_TEXTURE_EMISSIVE' : '',
|
|
824
825
|
|
|
825
|
-
parameters.logarithmicDepthBuffer ? '#define
|
|
826
|
-
parameters.reversedDepthBuffer ? '#define
|
|
826
|
+
parameters.logarithmicDepthBuffer ? '#define USE_LOGARITHMIC_DEPTH_BUFFER' : '',
|
|
827
|
+
parameters.reversedDepthBuffer ? '#define USE_REVERSED_DEPTH_BUFFER' : '',
|
|
827
828
|
|
|
828
829
|
'uniform mat4 viewMatrix;',
|
|
829
830
|
'uniform vec3 cameraPosition;',
|
|
@@ -940,8 +941,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
940
941
|
const vertexGlsl = versionString + prefixVertex + vertexShader;
|
|
941
942
|
const fragmentGlsl = versionString + prefixFragment + fragmentShader;
|
|
942
943
|
|
|
943
|
-
//
|
|
944
|
-
//
|
|
944
|
+
// log( '*VERTEX*', vertexGlsl );
|
|
945
|
+
// log( '*FRAGMENT*', fragmentGlsl );
|
|
945
946
|
|
|
946
947
|
const glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl );
|
|
947
948
|
const glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl );
|
|
@@ -995,7 +996,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
995
996
|
const vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );
|
|
996
997
|
const fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );
|
|
997
998
|
|
|
998
|
-
|
|
999
|
+
error(
|
|
999
1000
|
'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +
|
|
1000
1001
|
'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\n\n' +
|
|
1001
1002
|
'Material Name: ' + self.name + '\n' +
|
|
@@ -1009,7 +1010,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
1009
1010
|
|
|
1010
1011
|
} else if ( programLog !== '' ) {
|
|
1011
1012
|
|
|
1012
|
-
|
|
1013
|
+
warn( 'WebGLProgram: Program Info Log:', programLog );
|
|
1013
1014
|
|
|
1014
1015
|
} else if ( vertexLog === '' || fragmentLog === '' ) {
|
|
1015
1016
|
|
|
@@ -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
|
|
|
@@ -569,7 +570,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
569
570
|
if ( parameters.alphaToCoverage )
|
|
570
571
|
_programLayers.enable( 21 );
|
|
571
572
|
if ( parameters.numMultiviewViews )
|
|
572
|
-
_programLayers.enable(
|
|
573
|
+
_programLayers.enable( 22 );
|
|
573
574
|
|
|
574
575
|
array.push( _programLayers.mask );
|
|
575
576
|
|
|
@@ -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';
|
|
@@ -87,7 +87,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
87
87
|
const context = canvas.getContext( '2d' );
|
|
88
88
|
context.drawImage( image, 0, 0, width, height );
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
warn( 'WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );
|
|
91
91
|
|
|
92
92
|
return canvas;
|
|
93
93
|
|
|
@@ -95,7 +95,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
95
95
|
|
|
96
96
|
if ( 'data' in image ) {
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
warn( 'WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );
|
|
99
99
|
|
|
100
100
|
}
|
|
101
101
|
|
|
@@ -136,7 +136,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
136
136
|
|
|
137
137
|
if ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
warn( 'WebGLRenderer: Attempt to use non-existing WebGL internal format \'' + internalFormatName + '\'' );
|
|
140
140
|
|
|
141
141
|
}
|
|
142
142
|
|
|
@@ -205,6 +205,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
205
205
|
if ( glFormat === _gl.RGB ) {
|
|
206
206
|
|
|
207
207
|
if ( glType === _gl.UNSIGNED_INT_5_9_9_9_REV ) internalFormat = _gl.RGB9_E5;
|
|
208
|
+
if ( glType === _gl.UNSIGNED_INT_10F_11F_11F_REV ) internalFormat = _gl.R11F_G11F_B10F;
|
|
208
209
|
|
|
209
210
|
}
|
|
210
211
|
|
|
@@ -248,7 +249,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
248
249
|
} else if ( depthType === UnsignedShortType ) {
|
|
249
250
|
|
|
250
251
|
glInternalFormat = _gl.DEPTH24_STENCIL8;
|
|
251
|
-
|
|
252
|
+
warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );
|
|
252
253
|
|
|
253
254
|
}
|
|
254
255
|
|
|
@@ -478,7 +479,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
478
479
|
|
|
479
480
|
if ( textureUnit >= capabilities.maxTextures ) {
|
|
480
481
|
|
|
481
|
-
|
|
482
|
+
warn( 'WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );
|
|
482
483
|
|
|
483
484
|
}
|
|
484
485
|
|
|
@@ -525,11 +526,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
525
526
|
|
|
526
527
|
if ( image === null ) {
|
|
527
528
|
|
|
528
|
-
|
|
529
|
+
warn( 'WebGLRenderer: Texture marked for update but no image data found.' );
|
|
529
530
|
|
|
530
531
|
} else if ( image.complete === false ) {
|
|
531
532
|
|
|
532
|
-
|
|
533
|
+
warn( 'WebGLRenderer: Texture marked for update but image is incomplete' );
|
|
533
534
|
|
|
534
535
|
} else {
|
|
535
536
|
|
|
@@ -560,6 +561,10 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
560
561
|
uploadTexture( textureProperties, texture, slot );
|
|
561
562
|
return;
|
|
562
563
|
|
|
564
|
+
} else if ( texture.isExternalTexture ) {
|
|
565
|
+
|
|
566
|
+
textureProperties.__webglTexture = texture.sourceTexture ? texture.sourceTexture : null;
|
|
567
|
+
|
|
563
568
|
}
|
|
564
569
|
|
|
565
570
|
state.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );
|
|
@@ -629,7 +634,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
629
634
|
( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||
|
|
630
635
|
texture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {
|
|
631
636
|
|
|
632
|
-
|
|
637
|
+
warn( 'WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );
|
|
633
638
|
|
|
634
639
|
}
|
|
635
640
|
|
|
@@ -1074,7 +1079,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1074
1079
|
|
|
1075
1080
|
} else {
|
|
1076
1081
|
|
|
1077
|
-
|
|
1082
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
|
|
1078
1083
|
|
|
1079
1084
|
}
|
|
1080
1085
|
|
|
@@ -1130,7 +1135,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1130
1135
|
|
|
1131
1136
|
} else {
|
|
1132
1137
|
|
|
1133
|
-
|
|
1138
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
|
|
1134
1139
|
|
|
1135
1140
|
}
|
|
1136
1141
|
|
|
@@ -1425,7 +1430,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1425
1430
|
|
|
1426
1431
|
} else {
|
|
1427
1432
|
|
|
1428
|
-
|
|
1433
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );
|
|
1429
1434
|
|
|
1430
1435
|
}
|
|
1431
1436
|
|
|
@@ -2445,13 +2450,13 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
2445
2450
|
|
|
2446
2451
|
if ( format !== RGBAFormat || type !== UnsignedByteType ) {
|
|
2447
2452
|
|
|
2448
|
-
|
|
2453
|
+
warn( 'WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );
|
|
2449
2454
|
|
|
2450
2455
|
}
|
|
2451
2456
|
|
|
2452
2457
|
} else {
|
|
2453
2458
|
|
|
2454
|
-
|
|
2459
|
+
error( 'WebGLTextures: Unsupported texture color space:', colorSpace );
|
|
2455
2460
|
|
|
2456
2461
|
}
|
|
2457
2462
|
|
|
@@ -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;
|