@plastic-software/three 0.179.0 → 0.181.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/build/three.cjs +1108 -591
  2. package/build/three.core.js +616 -345
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +488 -250
  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 +6576 -2152
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +6575 -2151
  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 +48 -41
  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 +2 -1
  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 +42 -26
  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
 
@@ -663,8 +664,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
663
664
 
664
665
  parameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',
665
666
 
666
- parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
667
- parameters.reversedDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',
667
+ parameters.logarithmicDepthBuffer ? '#define USE_LOGARITHMIC_DEPTH_BUFFER' : '',
668
+ parameters.reversedDepthBuffer ? '#define USE_REVERSED_DEPTH_BUFFER' : '',
668
669
 
669
670
  'uniform mat4 modelMatrix;',
670
671
  'uniform mat4 modelViewMatrix;',
@@ -839,8 +840,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
839
840
  parameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',
840
841
  parameters.decodeVideoTextureEmissive ? '#define DECODE_VIDEO_TEXTURE_EMISSIVE' : '',
841
842
 
842
- parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
843
- parameters.reversedDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',
843
+ parameters.logarithmicDepthBuffer ? '#define USE_LOGARITHMIC_DEPTH_BUFFER' : '',
844
+ parameters.reversedDepthBuffer ? '#define USE_REVERSED_DEPTH_BUFFER' : '',
844
845
 
845
846
  'uniform mat4 modelViewMatrix;',
846
847
  'uniform mat4 viewMatrix;',
@@ -912,8 +913,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
912
913
  const vertexGlsl = versionString + prefixVertex + vertexShader;
913
914
  const fragmentGlsl = versionString + prefixFragment + fragmentShader;
914
915
 
915
- // console.log( '*VERTEX*', vertexGlsl );
916
- // console.log( '*FRAGMENT*', fragmentGlsl );
916
+ // log( '*VERTEX*', vertexGlsl );
917
+ // log( '*FRAGMENT*', fragmentGlsl );
917
918
 
918
919
  const glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl );
919
920
  const glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl );
@@ -967,7 +968,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
967
968
  const vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );
968
969
  const fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );
969
970
 
970
- console.error(
971
+ error(
971
972
  'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +
972
973
  'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\n\n' +
973
974
  'Material Name: ' + self.name + '\n' +
@@ -981,7 +982,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
981
982
 
982
983
  } else if ( programLog !== '' ) {
983
984
 
984
- console.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );
985
+ warn( 'WebGLProgram: Program Info Log:', programLog );
985
986
 
986
987
  } else if ( vertexLog === '' || fragmentLog === '' ) {
987
988
 
@@ -5,6 +5,7 @@ import { WebGLShaderCache } from './WebGLShaderCache.js';
5
5
  import { ShaderLib } from '../shaders/ShaderLib.js';
6
6
  import { UniformsUtils } from '../shaders/UniformsUtils.js';
7
7
  import { ColorManagement } from '../../math/ColorManagement.js';
8
+ import { warn } from '../../utils.js';
8
9
 
9
10
  function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {
10
11
 
@@ -66,7 +67,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
66
67
 
67
68
  if ( precision !== material.precision ) {
68
69
 
69
- 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
 
@@ -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';
@@ -83,7 +83,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
83
83
  const context = canvas.getContext( '2d' );
84
84
  context.drawImage( image, 0, 0, width, height );
85
85
 
86
- console.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );
86
+ warn( 'WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );
87
87
 
88
88
  return canvas;
89
89
 
@@ -91,7 +91,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
91
91
 
92
92
  if ( 'data' in image ) {
93
93
 
94
- console.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );
94
+ warn( 'WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );
95
95
 
96
96
  }
97
97
 
@@ -132,7 +132,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
132
132
 
133
133
  if ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];
134
134
 
135
- console.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'' + internalFormatName + '\'' );
135
+ warn( 'WebGLRenderer: Attempt to use non-existing WebGL internal format \'' + internalFormatName + '\'' );
136
136
 
137
137
  }
138
138
 
@@ -201,6 +201,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
201
201
  if ( glFormat === _gl.RGB ) {
202
202
 
203
203
  if ( glType === _gl.UNSIGNED_INT_5_9_9_9_REV ) internalFormat = _gl.RGB9_E5;
204
+ if ( glType === _gl.UNSIGNED_INT_10F_11F_11F_REV ) internalFormat = _gl.R11F_G11F_B10F;
204
205
 
205
206
  }
206
207
 
@@ -244,7 +245,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
244
245
  } else if ( depthType === UnsignedShortType ) {
245
246
 
246
247
  glInternalFormat = _gl.DEPTH24_STENCIL8;
247
- console.warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );
248
+ warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );
248
249
 
249
250
  }
250
251
 
@@ -474,7 +475,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
474
475
 
475
476
  if ( textureUnit >= capabilities.maxTextures ) {
476
477
 
477
- console.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );
478
+ warn( 'WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );
478
479
 
479
480
  }
480
481
 
@@ -521,11 +522,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
521
522
 
522
523
  if ( image === null ) {
523
524
 
524
- console.warn( 'THREE.WebGLRenderer: Texture marked for update but no image data found.' );
525
+ warn( 'WebGLRenderer: Texture marked for update but no image data found.' );
525
526
 
526
527
  } else if ( image.complete === false ) {
527
528
 
528
- console.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );
529
+ warn( 'WebGLRenderer: Texture marked for update but image is incomplete' );
529
530
 
530
531
  } else {
531
532
 
@@ -553,6 +554,10 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
553
554
  uploadTexture( textureProperties, texture, slot );
554
555
  return;
555
556
 
557
+ } else if ( texture.isExternalTexture ) {
558
+
559
+ textureProperties.__webglTexture = texture.sourceTexture ? texture.sourceTexture : null;
560
+
556
561
  }
557
562
 
558
563
  state.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );
@@ -622,7 +627,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
622
627
  ( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||
623
628
  texture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {
624
629
 
625
- console.warn( 'THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );
630
+ warn( 'WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );
626
631
 
627
632
  }
628
633
 
@@ -1031,7 +1036,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
1031
1036
 
1032
1037
  } else {
1033
1038
 
1034
- console.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
1039
+ warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
1035
1040
 
1036
1041
  }
1037
1042
 
@@ -1087,7 +1092,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
1087
1092
 
1088
1093
  } else {
1089
1094
 
1090
- console.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
1095
+ warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );
1091
1096
 
1092
1097
  }
1093
1098
 
@@ -1381,7 +1386,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
1381
1386
 
1382
1387
  } else {
1383
1388
 
1384
- console.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );
1389
+ warn( 'WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );
1385
1390
 
1386
1391
  }
1387
1392
 
@@ -2274,13 +2279,13 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
2274
2279
 
2275
2280
  if ( format !== RGBAFormat || type !== UnsignedByteType ) {
2276
2281
 
2277
- console.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );
2282
+ warn( 'WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );
2278
2283
 
2279
2284
  }
2280
2285
 
2281
2286
  } else {
2282
2287
 
2283
- console.error( 'THREE.WebGLTextures: Unsupported texture color space:', colorSpace );
2288
+ error( 'WebGLTextures: Unsupported texture color space:', colorSpace );
2284
2289
 
2285
2290
  }
2286
2291
 
@@ -1,3 +1,5 @@
1
+ import { error, warn } from '../../utils.js';
2
+
1
3
  function WebGLUniformsGroups( gl, info, capabilities, state ) {
2
4
 
3
5
  let buffers = {};
@@ -80,7 +82,7 @@ function WebGLUniformsGroups( gl, info, capabilities, state ) {
80
82
 
81
83
  }
82
84
 
83
- 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;