super-three 0.177.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/README.md +1 -1
- package/build/three.cjs +1994 -749
- package/build/three.core.js +1358 -506
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +631 -247
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +113 -33
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +9571 -3424
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +9397 -3426
- 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 +2 -3
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/capabilities/WebGL.js +0 -27
- package/examples/jsm/capabilities/WebGPU.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +9 -9
- 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 +62 -15
- package/examples/jsm/csm/CSMShadowNode.js +4 -4
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/environments/RoomEnvironment.js +8 -3
- 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 +683 -299
- package/examples/jsm/geometries/DecalGeometry.js +2 -2
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/RoundedBoxGeometry.js +47 -8
- 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 +11 -13
- 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/libs/meshopt_decoder.module.js +75 -58
- package/examples/jsm/lights/LightProbeGenerator.js +14 -3
- 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 +4 -4
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +210 -22
- package/examples/jsm/loaders/FBXLoader.js +4 -4
- 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 +233 -34
- 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 +13 -1
- package/examples/jsm/loaders/USDLoader.js +219 -0
- package/examples/jsm/loaders/USDZLoader.js +4 -892
- package/examples/jsm/loaders/UltraHDRLoader.js +2 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +741 -0
- package/examples/jsm/loaders/usd/USDCParser.js +17 -0
- 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/LensflareMesh.js +3 -3
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/SkyMesh.js +3 -3
- package/examples/jsm/objects/Water.js +3 -3
- package/examples/jsm/objects/WaterMesh.js +6 -6
- package/examples/jsm/physics/RapierPhysics.js +95 -16
- package/examples/jsm/postprocessing/GTAOPass.js +10 -9
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +17 -17
- package/examples/jsm/postprocessing/SSAOPass.js +10 -9
- 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 +11 -2
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +381 -30
- package/examples/jsm/transpiler/GLSLDecoder.js +247 -104
- package/examples/jsm/transpiler/Linker.js +327 -0
- package/examples/jsm/transpiler/TSLEncoder.js +196 -92
- package/examples/jsm/transpiler/Transpiler.js +17 -1
- package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
- package/examples/jsm/transpiler/WGSLEncoder.js +812 -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 +11 -6
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +207 -0
- 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 +55 -43
- package/examples/jsm/tsl/display/OutlineNode.js +13 -2
- package/examples/jsm/tsl/display/SSAAPassNode.js +2 -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 +578 -0
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/hashBlur.js +18 -20
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +22 -2
- 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 +5 -2
- package/src/Three.TSL.js +112 -32
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +4 -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 +8 -7
- package/src/animation/PropertyBinding.js +12 -11
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/audio/Audio.js +10 -9
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/Camera.js +14 -0
- package/src/cameras/OrthographicCamera.js +2 -2
- package/src/cameras/PerspectiveCamera.js +2 -2
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +13 -5
- package/src/core/BufferAttribute.js +3 -3
- package/src/core/BufferGeometry.js +10 -10
- package/src/core/Clock.js +2 -8
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/GLBufferAttribute.js +13 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +4 -3
- package/src/core/Raycaster.js +2 -1
- package/src/core/RenderTarget.js +10 -1
- package/{examples/jsm/misc → src/core}/Timer.js +4 -42
- 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 +279 -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/Path.js +22 -22
- 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 +42 -12
- package/src/helpers/SkeletonHelper.js +35 -6
- package/src/lights/LightShadow.js +21 -8
- package/src/lights/PointLightShadow.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 +29 -5
- package/src/loaders/ImageBitmapLoader.js +32 -8
- package/src/loaders/ImageLoader.js +56 -9
- package/src/loaders/Loader.js +17 -3
- package/src/loaders/LoadingManager.js +45 -0
- 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 +2 -1
- 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 -10
- package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
- package/src/materials/nodes/MeshSSSNodeMaterial.js +3 -3
- package/src/materials/nodes/NodeMaterial.js +90 -27
- package/src/materials/nodes/PointsNodeMaterial.js +86 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +89 -3
- 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/Frustum.js +25 -9
- package/src/math/FrustumArray.js +10 -5
- package/src/math/Line3.js +129 -2
- 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 +55 -34
- package/src/math/Plane.js +1 -1
- package/src/math/Quaternion.js +69 -67
- package/src/math/Spherical.js +3 -3
- package/src/nodes/Nodes.js +6 -4
- package/src/nodes/TSL.js +9 -4
- package/src/nodes/accessors/AccessorsUtils.js +7 -8
- package/src/nodes/accessors/Bitangent.js +31 -25
- package/src/nodes/accessors/BufferNode.js +1 -1
- package/src/nodes/accessors/Camera.js +142 -16
- 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 +97 -30
- package/src/nodes/accessors/Object3DNode.js +2 -2
- package/src/nodes/accessors/Position.js +25 -9
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +20 -4
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/SceneNode.js +3 -2
- package/src/nodes/accessors/StorageBufferNode.js +2 -1
- package/src/nodes/accessors/StorageTextureNode.js +23 -1
- package/src/nodes/accessors/Tangent.js +25 -17
- package/src/nodes/accessors/TangentUtils.js +46 -0
- package/src/nodes/accessors/Texture3DNode.js +14 -1
- package/src/nodes/accessors/TextureBicubic.js +21 -3
- package/src/nodes/accessors/TextureNode.js +142 -44
- package/src/nodes/accessors/UniformArrayNode.js +0 -16
- package/src/nodes/code/FunctionCallNode.js +24 -4
- package/src/nodes/code/FunctionNode.js +23 -0
- package/src/nodes/core/ArrayNode.js +13 -0
- package/src/nodes/core/AssignNode.js +6 -2
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +48 -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} +36 -17
- package/src/nodes/core/Node.js +167 -34
- package/src/nodes/core/NodeBuilder.js +404 -120
- 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 -88
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +77 -30
- package/src/nodes/core/StructNode.js +5 -5
- package/src/nodes/core/StructTypeNode.js +1 -0
- package/src/nodes/core/SubBuildNode.js +89 -0
- package/src/nodes/core/UniformNode.js +80 -14
- package/src/nodes/core/VarNode.js +142 -16
- package/src/nodes/core/VaryingNode.js +9 -6
- package/src/nodes/display/BlendModes.js +7 -6
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +1 -1
- package/src/nodes/display/FrontFacingNode.js +35 -7
- package/src/nodes/display/NormalMapNode.js +20 -50
- package/src/nodes/display/PassNode.js +206 -17
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +44 -40
- 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 +94 -4
- package/src/nodes/fog/Fog.js +3 -2
- package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
- package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhongLightingModel.js +3 -3
- package/src/nodes/functions/PhysicalLightingModel.js +19 -18
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
- package/src/nodes/geometry/RangeNode.js +40 -4
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
- package/src/nodes/gpgpu/ComputeNode.js +81 -25
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +29 -3
- package/src/nodes/lighting/EnvironmentNode.js +11 -11
- package/src/nodes/lighting/LightsNode.js +7 -8
- package/src/nodes/lighting/PointShadowNode.js +6 -0
- package/src/nodes/lighting/ProjectorLightNode.js +19 -6
- package/src/nodes/lighting/ShadowFilterNode.js +3 -1
- package/src/nodes/lighting/ShadowNode.js +77 -10
- package/src/nodes/materialx/MaterialXNodes.js +131 -2
- package/src/nodes/materialx/lib/mx_noise.js +165 -1
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/ConditionalNode.js +25 -27
- package/src/nodes/math/MathNode.js +106 -65
- package/src/nodes/math/OperatorNode.js +28 -43
- package/src/nodes/pmrem/PMREMUtils.js +117 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +6 -2
- package/src/nodes/tsl/TSLCore.js +546 -186
- package/src/nodes/utils/DebugNode.js +3 -2
- package/src/nodes/utils/EquirectUV.js +27 -0
- package/src/nodes/utils/EventNode.js +119 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +6 -3
- package/src/nodes/utils/LoopNode.js +20 -41
- package/src/nodes/utils/MatcapUV.js +22 -0
- package/src/nodes/utils/MemberNode.js +59 -7
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +33 -6
- package/src/nodes/utils/ReflectorNode.js +68 -10
- package/src/nodes/utils/SampleNode.js +91 -0
- package/src/nodes/utils/SplitNode.js +11 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/nodes/utils/TriplanarTextures.js +65 -0
- package/src/objects/BatchedMesh.js +6 -4
- 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 +77 -66
- 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 +4 -3
- package/src/renderers/common/Bindings.js +76 -19
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +1 -1
- package/src/renderers/common/Color4.js +2 -2
- package/src/renderers/common/CubeRenderTarget.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 +61 -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 +84 -5
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +486 -255
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +8 -68
- package/src/renderers/common/Sampler.js +117 -0
- package/src/renderers/common/Storage3DTexture.js +100 -0
- package/src/renderers/common/StorageArrayTexture.js +84 -0
- package/src/renderers/common/StorageTexture.js +27 -0
- package/src/renderers/common/Textures.js +138 -46
- package/src/renderers/common/TimestampQueryPool.js +65 -3
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +63 -24
- package/src/renderers/common/XRRenderTarget.js +21 -4
- package/src/renderers/common/extras/PMREMGenerator.js +161 -66
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/NodeSampledTexture.js +0 -12
- 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 +21 -11
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +11 -2
- package/src/renderers/shaders/UniformsLib.js +1 -0
- package/src/renderers/shaders/UniformsUtils.js +25 -4
- package/src/renderers/webgl/WebGLAttributes.js +4 -0
- package/src/renderers/webgl/WebGLCapabilities.js +4 -3
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLProgram.js +25 -18
- package/src/renderers/webgl/WebGLPrograms.js +9 -6
- package/src/renderers/webgl/WebGLShadowMap.js +13 -2
- package/src/renderers/webgl/WebGLState.js +17 -16
- package/src/renderers/webgl/WebGLTextures.js +38 -21
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl/WebGLUtils.js +3 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +245 -182
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +184 -30
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +9 -8
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +171 -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 +205 -128
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +198 -121
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +8 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +49 -33
- package/src/renderers/webgpu/utils/WebGPUConstants.js +14 -3
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +56 -37
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +266 -158
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +32 -9
- package/src/renderers/webgpu/utils/WebGPUUtils.js +24 -19
- package/src/renderers/webxr/WebXRDepthSensing.js +6 -10
- package/src/renderers/webxr/WebXRManager.js +89 -13
- package/src/textures/ExternalTexture.js +56 -0
- package/src/textures/FramebufferTexture.js +2 -2
- package/src/textures/Source.js +14 -3
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +29 -2
- package/src/utils.js +67 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
- package/examples/jsm/tsl/display/TRAAPassNode.js +0 -452
- package/src/nodes/utils/EquirectUVNode.js +0 -65
- package/src/nodes/utils/MatcapUVNode.js +0 -49
- package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
|
@@ -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
|
|
|
@@ -108,7 +109,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
108
109
|
}
|
|
109
110
|
|
|
110
111
|
const currentRenderTarget = renderer.getRenderTarget();
|
|
111
|
-
const
|
|
112
|
+
const reversedDepthBuffer = renderer.state.buffers.depth.getReversed();
|
|
112
113
|
|
|
113
114
|
const numMultiviewViews = currentRenderTarget && currentRenderTarget.isWebGLMultiviewRenderTarget ? currentRenderTarget.numViews : 0;
|
|
114
115
|
|
|
@@ -305,11 +306,11 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
305
306
|
useFog: material.fog === true,
|
|
306
307
|
fogExp2: ( !! fog && fog.isFogExp2 ),
|
|
307
308
|
|
|
308
|
-
flatShading: material.flatShading === true,
|
|
309
|
+
flatShading: ( material.flatShading === true && material.wireframe === false ),
|
|
309
310
|
|
|
310
311
|
sizeAttenuation: material.sizeAttenuation === true,
|
|
311
312
|
logarithmicDepthBuffer: logarithmicDepthBuffer,
|
|
312
|
-
|
|
313
|
+
reversedDepthBuffer: reversedDepthBuffer,
|
|
313
314
|
|
|
314
315
|
skinning: object.isSkinnedMesh === true,
|
|
315
316
|
|
|
@@ -518,6 +519,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
518
519
|
_programLayers.enable( 20 );
|
|
519
520
|
if ( parameters.batchingColor )
|
|
520
521
|
_programLayers.enable( 21 );
|
|
522
|
+
if ( parameters.gradientMap )
|
|
523
|
+
_programLayers.enable( 22 );
|
|
521
524
|
|
|
522
525
|
array.push( _programLayers.mask );
|
|
523
526
|
_programLayers.disableAll();
|
|
@@ -530,7 +533,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
530
533
|
_programLayers.enable( 2 );
|
|
531
534
|
if ( parameters.logarithmicDepthBuffer )
|
|
532
535
|
_programLayers.enable( 3 );
|
|
533
|
-
if ( parameters.
|
|
536
|
+
if ( parameters.reversedDepthBuffer )
|
|
534
537
|
_programLayers.enable( 4 );
|
|
535
538
|
if ( parameters.skinning )
|
|
536
539
|
_programLayers.enable( 5 );
|
|
@@ -567,7 +570,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
567
570
|
if ( parameters.alphaToCoverage )
|
|
568
571
|
_programLayers.enable( 21 );
|
|
569
572
|
if ( parameters.numMultiviewViews )
|
|
570
|
-
_programLayers.enable(
|
|
573
|
+
_programLayers.enable( 22 );
|
|
571
574
|
|
|
572
575
|
array.push( _programLayers.mask );
|
|
573
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
|
|
|
@@ -84,7 +85,17 @@ function WebGLShadowMap( renderer, objects, capabilities ) {
|
|
|
84
85
|
|
|
85
86
|
// Set GL state for depth map.
|
|
86
87
|
_state.setBlending( NoBlending );
|
|
87
|
-
|
|
88
|
+
|
|
89
|
+
if ( _state.buffers.depth.getReversed() === true ) {
|
|
90
|
+
|
|
91
|
+
_state.buffers.color.setClear( 0, 0, 0, 0 );
|
|
92
|
+
|
|
93
|
+
} else {
|
|
94
|
+
|
|
95
|
+
_state.buffers.color.setClear( 1, 1, 1, 1 );
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
|
|
88
99
|
_state.buffers.depth.setTest( true );
|
|
89
100
|
_state.setScissorTest( false );
|
|
90
101
|
|
|
@@ -102,7 +113,7 @@ function WebGLShadowMap( renderer, objects, capabilities ) {
|
|
|
102
113
|
|
|
103
114
|
if ( shadow === undefined ) {
|
|
104
115
|
|
|
105
|
-
|
|
116
|
+
warn( 'WebGLShadowMap:', light, 'has no shadow.' );
|
|
106
117
|
continue;
|
|
107
118
|
|
|
108
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,
|
|
@@ -667,11 +668,11 @@ function WebGLState( gl, extensions ) {
|
|
|
667
668
|
break;
|
|
668
669
|
|
|
669
670
|
case MultiplyBlending:
|
|
670
|
-
gl.blendFuncSeparate( gl.
|
|
671
|
+
gl.blendFuncSeparate( gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA, gl.ZERO, gl.ONE );
|
|
671
672
|
break;
|
|
672
673
|
|
|
673
674
|
default:
|
|
674
|
-
|
|
675
|
+
error( 'WebGLState: Invalid blending: ', blending );
|
|
675
676
|
break;
|
|
676
677
|
|
|
677
678
|
}
|
|
@@ -685,19 +686,19 @@ function WebGLState( gl, extensions ) {
|
|
|
685
686
|
break;
|
|
686
687
|
|
|
687
688
|
case AdditiveBlending:
|
|
688
|
-
gl.
|
|
689
|
+
gl.blendFuncSeparate( gl.SRC_ALPHA, gl.ONE, gl.ONE, gl.ONE );
|
|
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
|
|
|
@@ -519,17 +520,17 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
519
520
|
|
|
520
521
|
if ( texture.isVideoTexture ) updateVideoTexture( texture );
|
|
521
522
|
|
|
522
|
-
if ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {
|
|
523
|
+
if ( texture.isRenderTargetTexture === false && texture.isExternalTexture !== true && texture.version > 0 && textureProperties.__version !== texture.version ) {
|
|
523
524
|
|
|
524
525
|
const image = texture.image;
|
|
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
|
|
|
@@ -541,6 +542,10 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
541
542
|
|
|
542
543
|
}
|
|
543
544
|
|
|
545
|
+
} else if ( texture.isExternalTexture ) {
|
|
546
|
+
|
|
547
|
+
textureProperties.__webglTexture = texture.sourceTexture ? texture.sourceTexture : null;
|
|
548
|
+
|
|
544
549
|
}
|
|
545
550
|
|
|
546
551
|
state.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );
|
|
@@ -551,11 +556,15 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
551
556
|
|
|
552
557
|
const textureProperties = properties.get( texture );
|
|
553
558
|
|
|
554
|
-
if ( texture.version > 0 && textureProperties.__version !== texture.version ) {
|
|
559
|
+
if ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {
|
|
555
560
|
|
|
556
561
|
uploadTexture( textureProperties, texture, slot );
|
|
557
562
|
return;
|
|
558
563
|
|
|
564
|
+
} else if ( texture.isExternalTexture ) {
|
|
565
|
+
|
|
566
|
+
textureProperties.__webglTexture = texture.sourceTexture ? texture.sourceTexture : null;
|
|
567
|
+
|
|
559
568
|
}
|
|
560
569
|
|
|
561
570
|
state.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );
|
|
@@ -566,7 +575,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
566
575
|
|
|
567
576
|
const textureProperties = properties.get( texture );
|
|
568
577
|
|
|
569
|
-
if ( texture.version > 0 && textureProperties.__version !== texture.version ) {
|
|
578
|
+
if ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {
|
|
570
579
|
|
|
571
580
|
uploadTexture( textureProperties, texture, slot );
|
|
572
581
|
return;
|
|
@@ -625,7 +634,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
625
634
|
( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||
|
|
626
635
|
texture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {
|
|
627
636
|
|
|
628
|
-
|
|
637
|
+
warn( 'WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );
|
|
629
638
|
|
|
630
639
|
}
|
|
631
640
|
|
|
@@ -1070,7 +1079,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1070
1079
|
|
|
1071
1080
|
} else {
|
|
1072
1081
|
|
|
1073
|
-
|
|
1082
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
|
|
1074
1083
|
|
|
1075
1084
|
}
|
|
1076
1085
|
|
|
@@ -1126,7 +1135,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1126
1135
|
|
|
1127
1136
|
} else {
|
|
1128
1137
|
|
|
1129
|
-
|
|
1138
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
|
|
1130
1139
|
|
|
1131
1140
|
}
|
|
1132
1141
|
|
|
@@ -1421,7 +1430,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
1421
1430
|
|
|
1422
1431
|
} else {
|
|
1423
1432
|
|
|
1424
|
-
|
|
1433
|
+
warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );
|
|
1425
1434
|
|
|
1426
1435
|
}
|
|
1427
1436
|
|
|
@@ -2167,13 +2176,21 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
2167
2176
|
const attachment = textures[ i ];
|
|
2168
2177
|
const attachmentProperties = properties.get( attachment );
|
|
2169
2178
|
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2179
|
+
let glTextureType = _gl.TEXTURE_2D;
|
|
2180
|
+
|
|
2181
|
+
if ( renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget ) {
|
|
2182
|
+
|
|
2183
|
+
glTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;
|
|
2184
|
+
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
state.bindTexture( glTextureType, attachmentProperties.__webglTexture );
|
|
2188
|
+
setTextureParameters( glTextureType, attachment );
|
|
2189
|
+
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, glTextureType, 0 );
|
|
2173
2190
|
|
|
2174
2191
|
if ( textureNeedsGenerateMipmaps( attachment ) ) {
|
|
2175
2192
|
|
|
2176
|
-
generateMipmap(
|
|
2193
|
+
generateMipmap( glTextureType );
|
|
2177
2194
|
|
|
2178
2195
|
}
|
|
2179
2196
|
|
|
@@ -2433,13 +2450,13 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
2433
2450
|
|
|
2434
2451
|
if ( format !== RGBAFormat || type !== UnsignedByteType ) {
|
|
2435
2452
|
|
|
2436
|
-
|
|
2453
|
+
warn( 'WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );
|
|
2437
2454
|
|
|
2438
2455
|
}
|
|
2439
2456
|
|
|
2440
2457
|
} else {
|
|
2441
2458
|
|
|
2442
|
-
|
|
2459
|
+
error( 'WebGLTextures: Unsupported texture color space:', colorSpace );
|
|
2443
2460
|
|
|
2444
2461
|
}
|
|
2445
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;
|