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.
Files changed (430) hide show
  1. package/build/three.cjs +1112 -595
  2. package/build/three.core.js +616 -345
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +492 -254
  5. package/build/three.module.min.js +1 -1
  6. package/build/three.tsl.js +37 -6
  7. package/build/three.tsl.min.js +1 -1
  8. package/build/three.webgpu.js +6573 -2150
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +6572 -2149
  11. package/build/three.webgpu.nodes.min.js +1 -1
  12. package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
  13. package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
  14. package/examples/jsm/Addons.js +1 -1
  15. package/examples/jsm/animation/CCDIKSolver.js +1 -1
  16. package/examples/jsm/controls/ArcballControls.js +8 -8
  17. package/examples/jsm/controls/DragControls.js +7 -57
  18. package/examples/jsm/controls/FirstPersonControls.js +3 -3
  19. package/examples/jsm/controls/FlyControls.js +1 -1
  20. package/examples/jsm/controls/OrbitControls.js +2 -2
  21. package/examples/jsm/controls/PointerLockControls.js +2 -10
  22. package/examples/jsm/controls/TrackballControls.js +1 -1
  23. package/examples/jsm/controls/TransformControls.js +1 -1
  24. package/examples/jsm/effects/AsciiEffect.js +8 -8
  25. package/examples/jsm/exporters/DRACOExporter.js +2 -2
  26. package/examples/jsm/exporters/EXRExporter.js +1 -1
  27. package/examples/jsm/exporters/GLTFExporter.js +33 -25
  28. package/examples/jsm/exporters/KTX2Exporter.js +4 -2
  29. package/examples/jsm/exporters/PLYExporter.js +1 -1
  30. package/examples/jsm/exporters/USDZExporter.js +9 -2
  31. package/examples/jsm/geometries/DecalGeometry.js +2 -2
  32. package/examples/jsm/geometries/ParametricGeometry.js +1 -1
  33. package/examples/jsm/geometries/TeapotGeometry.js +2 -2
  34. package/examples/jsm/geometries/TextGeometry.js +3 -2
  35. package/examples/jsm/gpgpu/BitonicSort.js +715 -0
  36. package/examples/jsm/helpers/ViewHelper.js +43 -5
  37. package/examples/jsm/inspector/Inspector.js +427 -0
  38. package/examples/jsm/inspector/RendererInspector.js +415 -0
  39. package/examples/jsm/inspector/tabs/Console.js +204 -0
  40. package/examples/jsm/inspector/tabs/Parameters.js +332 -0
  41. package/examples/jsm/inspector/tabs/Performance.js +268 -0
  42. package/examples/jsm/inspector/tabs/Viewer.js +166 -0
  43. package/examples/jsm/inspector/ui/Graph.js +95 -0
  44. package/examples/jsm/inspector/ui/Item.js +170 -0
  45. package/examples/jsm/inspector/ui/List.js +75 -0
  46. package/examples/jsm/inspector/ui/Profiler.js +170 -0
  47. package/examples/jsm/inspector/ui/Style.js +654 -0
  48. package/examples/jsm/inspector/ui/Tab.js +46 -0
  49. package/examples/jsm/inspector/ui/Values.js +423 -0
  50. package/examples/jsm/inspector/ui/utils.js +56 -0
  51. package/examples/jsm/interactive/HTMLMesh.js +6 -10
  52. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  53. package/examples/jsm/interactive/SelectionBox.js +30 -0
  54. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  55. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
  56. package/examples/jsm/lines/Line2.js +3 -3
  57. package/examples/jsm/lines/LineGeometry.js +1 -1
  58. package/examples/jsm/lines/LineSegments2.js +2 -2
  59. package/examples/jsm/lines/Wireframe.js +2 -2
  60. package/examples/jsm/lines/WireframeGeometry2.js +1 -1
  61. package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
  62. package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
  63. package/examples/jsm/loaders/3MFLoader.js +1 -1
  64. package/examples/jsm/loaders/ColladaLoader.js +3 -3
  65. package/examples/jsm/loaders/DDSLoader.js +1 -1
  66. package/examples/jsm/loaders/DRACOLoader.js +73 -22
  67. package/examples/jsm/loaders/EXRLoader.js +5 -5
  68. package/examples/jsm/loaders/FBXLoader.js +2 -2
  69. package/examples/jsm/loaders/FontLoader.js +23 -5
  70. package/examples/jsm/loaders/GLTFLoader.js +14 -8
  71. package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
  72. package/examples/jsm/loaders/HDRLoader.js +486 -0
  73. package/examples/jsm/loaders/KTX2Loader.js +136 -49
  74. package/examples/jsm/loaders/KTXLoader.js +2 -2
  75. package/examples/jsm/loaders/LDrawLoader.js +1 -1
  76. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  77. package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
  78. package/examples/jsm/loaders/LWOLoader.js +2 -2
  79. package/examples/jsm/loaders/MaterialXLoader.js +22 -5
  80. package/examples/jsm/loaders/OBJLoader.js +1 -1
  81. package/examples/jsm/loaders/PDBLoader.js +1 -1
  82. package/examples/jsm/loaders/RGBELoader.js +7 -473
  83. package/examples/jsm/loaders/SVGLoader.js +2 -2
  84. package/examples/jsm/loaders/TTFLoader.js +4 -4
  85. package/examples/jsm/loaders/UltraHDRLoader.js +2 -2
  86. package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
  87. package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
  88. package/examples/jsm/math/ColorSpaces.js +19 -1
  89. package/examples/jsm/math/ConvexHull.js +3 -3
  90. package/examples/jsm/math/ImprovedNoise.js +1 -1
  91. package/examples/jsm/math/Lut.js +2 -2
  92. package/examples/jsm/math/SimplexNoise.js +1 -1
  93. package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
  94. package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
  95. package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
  96. package/examples/jsm/misc/TubePainter.js +383 -40
  97. package/examples/jsm/misc/Volume.js +1 -1
  98. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  99. package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
  100. package/examples/jsm/objects/Sky.js +1 -1
  101. package/examples/jsm/objects/SkyMesh.js +1 -1
  102. package/examples/jsm/objects/Water.js +3 -3
  103. package/examples/jsm/objects/WaterMesh.js +6 -6
  104. package/examples/jsm/postprocessing/GlitchPass.js +2 -2
  105. package/examples/jsm/postprocessing/OutlinePass.js +1 -1
  106. package/examples/jsm/postprocessing/SSRPass.js +37 -8
  107. package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
  108. package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
  109. package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
  110. package/examples/jsm/renderers/SVGRenderer.js +1 -1
  111. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
  112. package/examples/jsm/shaders/AfterimageShader.js +1 -1
  113. package/examples/jsm/shaders/BleachBypassShader.js +1 -1
  114. package/examples/jsm/shaders/BokehShader.js +1 -1
  115. package/examples/jsm/shaders/BokehShader2.js +1 -1
  116. package/examples/jsm/shaders/DotScreenShader.js +1 -1
  117. package/examples/jsm/shaders/FocusShader.js +1 -1
  118. package/examples/jsm/shaders/GTAOShader.js +2 -2
  119. package/examples/jsm/shaders/GodRaysShader.js +1 -1
  120. package/examples/jsm/shaders/KaleidoShader.js +1 -1
  121. package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
  122. package/examples/jsm/shaders/SSRShader.js +1 -1
  123. package/examples/jsm/shaders/SepiaShader.js +1 -1
  124. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
  125. package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
  126. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +1 -1
  127. package/examples/jsm/shaders/VignetteShader.js +1 -1
  128. package/examples/jsm/transpiler/GLSLDecoder.js +22 -19
  129. package/examples/jsm/transpiler/TSLEncoder.js +9 -10
  130. package/examples/jsm/transpiler/WGSLEncoder.js +24 -0
  131. package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
  132. package/examples/jsm/tsl/display/AnamorphicNode.js +28 -4
  133. package/examples/jsm/tsl/display/BloomNode.js +7 -3
  134. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +2 -1
  135. package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
  136. package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
  137. package/examples/jsm/tsl/display/GTAONode.js +53 -5
  138. package/examples/jsm/tsl/display/GaussianBlurNode.js +49 -35
  139. package/examples/jsm/tsl/display/OutlineNode.js +13 -2
  140. package/examples/jsm/tsl/display/SSGINode.js +654 -0
  141. package/examples/jsm/tsl/display/SSRNode.js +182 -65
  142. package/examples/jsm/tsl/display/SSSNode.js +488 -0
  143. package/examples/jsm/tsl/display/TRAANode.js +124 -7
  144. package/examples/jsm/tsl/display/boxBlur.js +65 -0
  145. package/examples/jsm/tsl/display/hashBlur.js +16 -18
  146. package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
  147. package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
  148. package/examples/jsm/utils/ShadowMapViewerGPU.js +12 -5
  149. package/examples/jsm/webxr/OculusHandModel.js +1 -1
  150. package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
  151. package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
  152. package/package.json +5 -10
  153. package/src/Three.Core.js +4 -2
  154. package/src/Three.TSL.js +36 -5
  155. package/src/Three.WebGPU.Nodes.js +2 -0
  156. package/src/Three.WebGPU.js +2 -0
  157. package/src/animation/AnimationClip.js +20 -4
  158. package/src/animation/AnimationMixer.js +3 -3
  159. package/src/animation/AnimationObjectGroup.js +2 -1
  160. package/src/animation/KeyframeTrack.js +7 -6
  161. package/src/animation/PropertyBinding.js +12 -11
  162. package/src/audio/Audio.js +10 -9
  163. package/src/audio/PositionalAudio.js +1 -1
  164. package/src/cameras/OrthographicCamera.js +1 -1
  165. package/src/cameras/PerspectiveCamera.js +1 -1
  166. package/src/cameras/StereoCamera.js +2 -2
  167. package/src/constants.js +11 -3
  168. package/src/core/BufferGeometry.js +10 -10
  169. package/src/core/EventDispatcher.js +1 -1
  170. package/src/core/InterleavedBuffer.js +1 -1
  171. package/src/core/InterleavedBufferAttribute.js +3 -2
  172. package/src/core/Object3D.js +3 -2
  173. package/src/core/Raycaster.js +2 -1
  174. package/src/core/RenderTarget.js +10 -1
  175. package/src/extras/Controls.js +5 -4
  176. package/src/extras/DataUtils.js +2 -1
  177. package/src/extras/Earcut.js +6 -0
  178. package/src/extras/ImageUtils.js +2 -2
  179. package/src/extras/PMREMGenerator.js +268 -55
  180. package/src/extras/TextureUtils.js +2 -1
  181. package/src/extras/core/Curve.js +2 -1
  182. package/src/extras/core/Interpolations.js +7 -1
  183. package/src/extras/core/ShapePath.js +4 -4
  184. package/src/extras/lib/earcut.js +8 -8
  185. package/src/geometries/BoxGeometry.js +1 -0
  186. package/src/geometries/CapsuleGeometry.js +1 -0
  187. package/src/geometries/CircleGeometry.js +1 -0
  188. package/src/geometries/ConeGeometry.js +1 -0
  189. package/src/geometries/CylinderGeometry.js +1 -0
  190. package/src/geometries/DodecahedronGeometry.js +1 -0
  191. package/src/geometries/ExtrudeGeometry.js +8 -6
  192. package/src/geometries/IcosahedronGeometry.js +1 -0
  193. package/src/geometries/LatheGeometry.js +1 -0
  194. package/src/geometries/OctahedronGeometry.js +1 -0
  195. package/src/geometries/PlaneGeometry.js +1 -0
  196. package/src/geometries/RingGeometry.js +1 -0
  197. package/src/geometries/ShapeGeometry.js +1 -0
  198. package/src/geometries/SphereGeometry.js +1 -0
  199. package/src/geometries/TetrahedronGeometry.js +1 -0
  200. package/src/geometries/TorusGeometry.js +1 -0
  201. package/src/geometries/TorusKnotGeometry.js +1 -0
  202. package/src/geometries/TubeGeometry.js +1 -0
  203. package/src/helpers/CameraHelper.js +1 -1
  204. package/src/lights/webgpu/ProjectorLight.js +1 -1
  205. package/src/loaders/AnimationLoader.js +2 -1
  206. package/src/loaders/AudioLoader.js +2 -1
  207. package/src/loaders/BufferGeometryLoader.js +2 -2
  208. package/src/loaders/Cache.js +2 -2
  209. package/src/loaders/DataTextureLoader.js +1 -1
  210. package/src/loaders/FileLoader.js +3 -2
  211. package/src/loaders/ImageBitmapLoader.js +5 -4
  212. package/src/loaders/ImageLoader.js +1 -1
  213. package/src/loaders/Loader.js +3 -3
  214. package/src/loaders/LoadingManager.js +25 -3
  215. package/src/loaders/MaterialLoader.js +3 -2
  216. package/src/loaders/ObjectLoader.js +13 -13
  217. package/src/loaders/TextureLoader.js +1 -1
  218. package/src/loaders/nodes/NodeLoader.js +3 -2
  219. package/src/materials/Material.js +16 -3
  220. package/src/materials/MeshBasicMaterial.js +1 -0
  221. package/src/materials/MeshDepthMaterial.js +1 -0
  222. package/src/materials/MeshDistanceMaterial.js +1 -1
  223. package/src/materials/MeshLambertMaterial.js +2 -1
  224. package/src/materials/MeshMatcapMaterial.js +22 -0
  225. package/src/materials/MeshNormalMaterial.js +1 -0
  226. package/src/materials/MeshPhongMaterial.js +2 -1
  227. package/src/materials/MeshPhysicalMaterial.js +2 -1
  228. package/src/materials/MeshStandardMaterial.js +8 -7
  229. package/src/materials/MeshToonMaterial.js +1 -0
  230. package/src/materials/PointsMaterial.js +1 -1
  231. package/src/materials/ShaderMaterial.js +2 -2
  232. package/src/materials/nodes/Line2NodeMaterial.js +2 -2
  233. package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
  234. package/src/materials/nodes/NodeMaterial.js +62 -22
  235. package/src/materials/nodes/PointsNodeMaterial.js +81 -28
  236. package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
  237. package/src/materials/nodes/manager/NodeMaterialObserver.js +3 -2
  238. package/src/math/Color.js +6 -5
  239. package/src/math/ColorManagement.js +9 -3
  240. package/src/math/Cylindrical.js +1 -1
  241. package/src/math/Euler.js +2 -1
  242. package/src/math/MathUtils.js +13 -11
  243. package/src/math/Matrix2.js +1 -1
  244. package/src/math/Matrix3.js +2 -2
  245. package/src/math/Matrix4.js +7 -7
  246. package/src/math/Plane.js +1 -1
  247. package/src/math/Quaternion.js +68 -66
  248. package/src/math/Spherical.js +1 -1
  249. package/src/nodes/Nodes.js +4 -1
  250. package/src/nodes/TSL.js +4 -1
  251. package/src/nodes/accessors/BufferNode.js +1 -1
  252. package/src/nodes/accessors/Camera.js +133 -7
  253. package/src/nodes/accessors/ClippingNode.js +6 -5
  254. package/src/nodes/accessors/CubeTextureNode.js +5 -4
  255. package/src/nodes/accessors/InstanceNode.js +25 -5
  256. package/src/nodes/accessors/Lights.js +10 -0
  257. package/src/nodes/accessors/Normal.js +5 -4
  258. package/src/nodes/accessors/Object3DNode.js +1 -1
  259. package/src/nodes/accessors/Position.js +18 -2
  260. package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
  261. package/src/nodes/accessors/ReferenceNode.js +3 -2
  262. package/src/nodes/accessors/SceneNode.js +2 -1
  263. package/src/nodes/accessors/StorageBufferNode.js +2 -1
  264. package/src/nodes/accessors/StorageTextureNode.js +22 -0
  265. package/src/nodes/accessors/Texture3DNode.js +14 -1
  266. package/src/nodes/accessors/TextureNode.js +130 -44
  267. package/src/nodes/code/FunctionCallNode.js +24 -4
  268. package/src/nodes/code/FunctionNode.js +23 -0
  269. package/src/nodes/core/ArrayNode.js +1 -0
  270. package/src/nodes/core/AssignNode.js +4 -3
  271. package/src/nodes/core/AttributeNode.js +2 -1
  272. package/src/nodes/core/ContextNode.js +29 -10
  273. package/src/nodes/core/IndexNode.js +2 -2
  274. package/src/nodes/core/InputNode.js +2 -1
  275. package/src/nodes/core/InspectorNode.js +128 -0
  276. package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
  277. package/src/nodes/core/Node.js +152 -31
  278. package/src/nodes/core/NodeBuilder.js +183 -35
  279. package/src/nodes/core/NodeFrame.js +21 -21
  280. package/src/nodes/core/NodeFunction.js +2 -1
  281. package/src/nodes/core/NodeParser.js +2 -1
  282. package/src/nodes/core/NodeUniform.js +1 -1
  283. package/src/nodes/core/NodeUtils.js +17 -91
  284. package/src/nodes/core/ParameterNode.js +31 -0
  285. package/src/nodes/core/PropertyNode.js +7 -0
  286. package/src/nodes/core/StackNode.js +43 -16
  287. package/src/nodes/core/StructNode.js +5 -5
  288. package/src/nodes/core/StructTypeNode.js +1 -0
  289. package/src/nodes/core/SubBuildNode.js +2 -2
  290. package/src/nodes/core/UniformNode.js +18 -10
  291. package/src/nodes/core/VarNode.js +70 -33
  292. package/src/nodes/core/VaryingNode.js +3 -2
  293. package/src/nodes/display/BlendModes.js +5 -4
  294. package/src/nodes/display/BumpMapNode.js +1 -1
  295. package/src/nodes/display/ColorAdjustment.js +1 -1
  296. package/src/nodes/display/FrontFacingNode.js +4 -8
  297. package/src/nodes/display/NormalMapNode.js +2 -1
  298. package/src/nodes/display/PassNode.js +52 -11
  299. package/src/nodes/display/RenderOutputNode.js +28 -2
  300. package/src/nodes/display/ScreenNode.js +44 -14
  301. package/src/nodes/display/ToneMappingNode.js +31 -4
  302. package/src/nodes/display/ToonOutlinePassNode.js +8 -0
  303. package/src/nodes/display/ViewportDepthTextureNode.js +16 -4
  304. package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
  305. package/src/nodes/display/ViewportTextureNode.js +42 -12
  306. package/src/nodes/fog/Fog.js +3 -2
  307. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
  308. package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
  309. package/src/nodes/functions/BasicLightingModel.js +2 -1
  310. package/src/nodes/functions/PhysicalLightingModel.js +3 -2
  311. package/src/nodes/functions/VolumetricLightingModel.js +5 -5
  312. package/src/nodes/geometry/RangeNode.js +40 -4
  313. package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
  314. package/src/nodes/gpgpu/ComputeNode.js +17 -5
  315. package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
  316. package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
  317. package/src/nodes/lighting/EnvironmentNode.js +6 -6
  318. package/src/nodes/lighting/LightsNode.js +3 -4
  319. package/src/nodes/lighting/PointShadowNode.js +6 -0
  320. package/src/nodes/lighting/ShadowFilterNode.js +2 -0
  321. package/src/nodes/lighting/ShadowNode.js +75 -8
  322. package/src/nodes/math/BitcastNode.js +156 -0
  323. package/src/nodes/math/ConditionalNode.js +24 -7
  324. package/src/nodes/math/MathNode.js +25 -19
  325. package/src/nodes/math/OperatorNode.js +7 -5
  326. package/src/nodes/pmrem/PMREMUtils.js +117 -2
  327. package/src/nodes/shapes/Shapes.js +1 -1
  328. package/src/nodes/tsl/TSLBase.js +5 -2
  329. package/src/nodes/tsl/TSLCore.js +460 -159
  330. package/src/nodes/utils/DebugNode.js +2 -1
  331. package/src/nodes/utils/EventNode.js +36 -0
  332. package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
  333. package/src/nodes/utils/JoinNode.js +6 -3
  334. package/src/nodes/utils/LoopNode.js +20 -24
  335. package/src/nodes/utils/MemberNode.js +59 -7
  336. package/src/nodes/utils/PostProcessingUtils.js +28 -1
  337. package/src/nodes/utils/RTTNode.js +13 -3
  338. package/src/nodes/utils/ReflectorNode.js +58 -7
  339. package/src/nodes/utils/SampleNode.js +12 -2
  340. package/src/nodes/utils/SplitNode.js +11 -0
  341. package/src/nodes/utils/Timer.js +0 -47
  342. package/src/objects/BatchedMesh.js +2 -2
  343. package/src/objects/LOD.js +1 -1
  344. package/src/objects/Line.js +2 -1
  345. package/src/objects/LineSegments.js +2 -1
  346. package/src/objects/Skeleton.js +3 -2
  347. package/src/objects/SkinnedMesh.js +3 -1
  348. package/src/objects/Sprite.js +4 -3
  349. package/src/renderers/WebGLRenderer.js +52 -43
  350. package/src/renderers/common/Animation.js +13 -1
  351. package/src/renderers/common/Attributes.js +1 -1
  352. package/src/renderers/common/Backend.js +108 -27
  353. package/src/renderers/common/Background.js +2 -1
  354. package/src/renderers/common/Bindings.js +58 -2
  355. package/src/renderers/common/CanvasTarget.js +341 -0
  356. package/src/renderers/common/ChainMap.js +1 -1
  357. package/src/renderers/common/DataMap.js +1 -1
  358. package/src/renderers/common/Geometries.js +26 -0
  359. package/src/renderers/common/Info.js +4 -2
  360. package/src/renderers/common/InspectorBase.js +146 -0
  361. package/src/renderers/common/Pipelines.js +1 -1
  362. package/src/renderers/common/PostProcessing.js +6 -25
  363. package/src/renderers/common/QuadMesh.js +7 -1
  364. package/src/renderers/common/RenderContext.js +2 -2
  365. package/src/renderers/common/RenderList.js +7 -3
  366. package/src/renderers/common/RenderObject.js +16 -2
  367. package/src/renderers/common/RenderObjects.js +1 -1
  368. package/src/renderers/common/Renderer.js +473 -245
  369. package/src/renderers/common/RendererUtils.js +9 -0
  370. package/src/renderers/common/SampledTexture.js +9 -1
  371. package/src/renderers/common/Sampler.js +50 -12
  372. package/src/renderers/common/StorageTexture.js +9 -1
  373. package/src/renderers/common/Textures.js +121 -45
  374. package/src/renderers/common/TimestampQueryPool.js +65 -3
  375. package/src/renderers/common/UniformsGroup.js +2 -1
  376. package/src/renderers/common/XRManager.js +42 -22
  377. package/src/renderers/common/extras/PMREMGenerator.js +160 -65
  378. package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
  379. package/src/renderers/common/nodes/NodeLibrary.js +9 -7
  380. package/src/renderers/common/nodes/NodeSampler.js +13 -1
  381. package/src/renderers/common/nodes/Nodes.js +38 -16
  382. package/src/renderers/shaders/DFGLUTData.js +64 -0
  383. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
  384. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
  385. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
  386. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
  387. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
  388. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
  389. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
  390. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
  391. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -15
  392. package/src/renderers/shaders/ShaderLib/depth.glsl.js +1 -1
  393. package/src/renderers/shaders/UniformsLib.js +1 -0
  394. package/src/renderers/shaders/UniformsUtils.js +25 -4
  395. package/src/renderers/webgl/WebGLCapabilities.js +2 -1
  396. package/src/renderers/webgl/WebGLExtensions.js +2 -25
  397. package/src/renderers/webgl/WebGLInfo.js +3 -1
  398. package/src/renderers/webgl/WebGLProgram.js +15 -14
  399. package/src/renderers/webgl/WebGLPrograms.js +3 -2
  400. package/src/renderers/webgl/WebGLShadowMap.js +3 -2
  401. package/src/renderers/webgl/WebGLState.js +15 -14
  402. package/src/renderers/webgl/WebGLTextures.js +19 -14
  403. package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
  404. package/src/renderers/webgl/WebGLUtils.js +3 -2
  405. package/src/renderers/webgl-fallback/WebGLBackend.js +199 -167
  406. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +181 -25
  407. package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
  408. package/src/renderers/webgl-fallback/utils/WebGLState.js +7 -6
  409. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +169 -19
  410. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +51 -22
  411. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -2
  412. package/src/renderers/webgpu/WebGPUBackend.js +153 -123
  413. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
  414. package/src/renderers/webgpu/WebGPURenderer.js +3 -2
  415. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +142 -50
  416. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
  417. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
  418. package/src/renderers/webgpu/utils/WebGPUConstants.js +7 -2
  419. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +53 -34
  420. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
  421. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +260 -99
  422. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +32 -9
  423. package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
  424. package/src/renderers/webxr/WebXRManager.js +41 -27
  425. package/src/textures/ExternalTexture.js +15 -4
  426. package/src/textures/Source.js +3 -2
  427. package/src/textures/Texture.js +3 -2
  428. package/src/textures/VideoTexture.js +2 -3
  429. package/src/utils.js +67 -3
  430. 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
- console.warn( 'THREE.WebGLProgram: Unsupported color space: ', colorSpace );
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
- // console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );
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
- console.warn( 'THREE.WebGLProgram: Unsupported toneMapping:', toneMapping );
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
- // console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );
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
- console.warn( 'THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.', include, newInclude );
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
- // console.log( 'WebGLProgram', cacheKey );
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 USE_LOGDEPTHBUF' : '',
659
- parameters.reversedDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',
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 USE_LOGDEPTHBUF' : '',
826
- parameters.reversedDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',
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
- // console.log( '*VERTEX*', vertexGlsl );
944
- // console.log( '*FRAGMENT*', fragmentGlsl );
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
- console.error(
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
- console.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );
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
- console.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );
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( 21 );
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
- console.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );
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
- console.error( 'THREE.WebGLState: Invalid blending: ', blending );
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
- console.error( 'THREE.WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true' );
693
+ error( 'WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true' );
693
694
  break;
694
695
 
695
696
  case MultiplyBlending:
696
- console.error( 'THREE.WebGLState: MultiplyBlending requires material.premultipliedAlpha = true' );
697
+ error( 'WebGLState: MultiplyBlending requires material.premultipliedAlpha = true' );
697
698
  break;
698
699
 
699
700
  default:
700
- console.error( 'THREE.WebGLState: Invalid blending: ', blending );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.error( 'THREE.WebGLState:', error );
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
- console.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );
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
- console.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );
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
- console.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'' + internalFormatName + '\'' );
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
- console.warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );
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
- console.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );
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
- console.warn( 'THREE.WebGLRenderer: Texture marked for update but no image data found.' );
529
+ warn( 'WebGLRenderer: Texture marked for update but no image data found.' );
529
530
 
530
531
  } else if ( image.complete === false ) {
531
532
 
532
- console.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );
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
- console.warn( 'THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );
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
- console.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
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
- console.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
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
- console.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );
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
- console.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );
2453
+ warn( 'WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );
2449
2454
 
2450
2455
  }
2451
2456
 
2452
2457
  } else {
2453
2458
 
2454
- console.error( 'THREE.WebGLTextures: Unsupported texture color space:', colorSpace );
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
- console.error( 'THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.' );
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
- console.warn( 'THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.' );
340
+ warn( 'WebGLRenderer: Texture samplers can not be part of an uniforms group.' );
339
341
 
340
342
  } else {
341
343
 
342
- console.warn( 'THREE.WebGLRenderer: Unsupported uniform value type.', value );
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 === RGBA_BPTC_Format ) return extension.COMPRESSED_RED_RGTC1_EXT;
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;