super-three 0.147.0 → 0.152.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 (757) hide show
  1. package/LICENSE +1 -1
  2. package/build/three.cjs +36408 -21117
  3. package/build/three.js +37007 -21715
  4. package/build/three.min.js +3 -2
  5. package/build/three.module.js +6387 -5510
  6. package/build/three.module.min.js +6 -0
  7. package/examples/jsm/animation/AnimationClipCreator.js +5 -3
  8. package/examples/jsm/capabilities/WebGPU.js +2 -4
  9. package/examples/jsm/controls/ArcballControls.js +1828 -1821
  10. package/examples/jsm/controls/MapControls.js +28 -0
  11. package/examples/jsm/controls/OrbitControls.js +20 -45
  12. package/examples/jsm/controls/PointerLockControls.js +70 -65
  13. package/examples/jsm/controls/TrackballControls.js +18 -4
  14. package/examples/jsm/controls/TransformControls.js +0 -1
  15. package/examples/jsm/csm/CSM.js +11 -3
  16. package/examples/jsm/csm/CSMShader.js +7 -6
  17. package/examples/jsm/effects/AsciiEffect.js +3 -6
  18. package/examples/jsm/effects/OutlineEffect.js +1 -15
  19. package/examples/jsm/exporters/ColladaExporter.js +26 -14
  20. package/examples/jsm/exporters/DRACOExporter.js +53 -11
  21. package/examples/jsm/exporters/EXRExporter.js +3 -9
  22. package/examples/jsm/exporters/GLTFExporter.js +524 -111
  23. package/examples/jsm/exporters/KTX2Exporter.js +34 -23
  24. package/examples/jsm/exporters/MMDExporter.js +1 -1
  25. package/examples/jsm/exporters/PLYExporter.js +8 -1
  26. package/examples/jsm/exporters/STLExporter.js +8 -4
  27. package/examples/jsm/exporters/USDZExporter.js +22 -3
  28. package/examples/jsm/geometries/ConvexGeometry.js +0 -6
  29. package/examples/jsm/geometries/ParametricGeometry.js +10 -0
  30. package/examples/jsm/helpers/OctreeHelper.js +1 -0
  31. package/examples/jsm/helpers/ViewHelper.js +70 -56
  32. package/examples/jsm/interactive/HTMLMesh.js +16 -3
  33. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  34. package/examples/{js → jsm}/libs/basis/README.md +4 -4
  35. package/examples/jsm/libs/draco/draco_decoder.js +34 -0
  36. package/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
  37. package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
  38. package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -0
  39. package/examples/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
  40. package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
  41. package/examples/jsm/libs/lil-gui.module.min.js +2 -2
  42. package/examples/jsm/libs/tween.module.js +803 -0
  43. package/examples/jsm/lights/IESSpotLight.js +25 -0
  44. package/examples/jsm/lights/LightProbeGenerator.js +11 -9
  45. package/examples/jsm/lines/LineSegments2.js +12 -10
  46. package/examples/jsm/loaders/3DMLoader.js +8 -5
  47. package/examples/jsm/loaders/3MFLoader.js +12 -11
  48. package/examples/jsm/loaders/AMFLoader.js +2 -3
  49. package/examples/jsm/loaders/BVHLoader.js +2 -2
  50. package/examples/jsm/loaders/ColladaLoader.js +15 -16
  51. package/examples/jsm/loaders/DRACOLoader.js +67 -18
  52. package/examples/jsm/loaders/EXRLoader.js +23 -24
  53. package/examples/jsm/loaders/FBXLoader.js +32 -50
  54. package/examples/jsm/loaders/GCodeLoader.js +1 -2
  55. package/examples/jsm/loaders/GLTFLoader.js +249 -215
  56. package/examples/jsm/loaders/HDRCubeTextureLoader.js +4 -4
  57. package/examples/jsm/loaders/IESLoader.js +337 -0
  58. package/examples/jsm/loaders/KMZLoader.js +4 -4
  59. package/examples/jsm/loaders/KTX2Loader.js +41 -24
  60. package/examples/jsm/loaders/LDrawLoader.js +20 -18
  61. package/examples/jsm/loaders/LWOLoader.js +12 -29
  62. package/examples/jsm/loaders/LottieLoader.js +3 -1
  63. package/examples/jsm/loaders/MMDLoader.js +17 -13
  64. package/examples/jsm/loaders/MTLLoader.js +2 -2
  65. package/examples/jsm/loaders/MaterialXLoader.js +9 -3
  66. package/examples/jsm/loaders/NRRDLoader.js +33 -5
  67. package/examples/jsm/loaders/OBJLoader.js +1 -1
  68. package/examples/jsm/loaders/PCDLoader.js +1 -2
  69. package/examples/jsm/loaders/PLYLoader.js +238 -105
  70. package/examples/jsm/loaders/RGBELoader.js +3 -3
  71. package/examples/jsm/loaders/STLLoader.js +1 -2
  72. package/examples/jsm/loaders/SVGLoader.js +36 -27
  73. package/examples/jsm/loaders/TTFLoader.js +1 -8
  74. package/examples/jsm/loaders/TiltLoader.js +13 -7
  75. package/examples/jsm/loaders/USDZLoader.js +5 -5
  76. package/examples/jsm/loaders/VOXLoader.js +8 -2
  77. package/examples/jsm/loaders/VRMLLoader.js +5 -13
  78. package/examples/jsm/loaders/VTKLoader.js +7 -6
  79. package/examples/jsm/loaders/lwo/IFFParser.js +19 -19
  80. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -3
  81. package/examples/jsm/math/MeshSurfaceSampler.js +0 -6
  82. package/examples/jsm/misc/ConvexObjectBreaker.js +2 -8
  83. package/examples/jsm/misc/GPUComputationRenderer.js +5 -5
  84. package/examples/jsm/misc/MD2Character.js +2 -2
  85. package/examples/jsm/misc/MD2CharacterComplex.js +2 -2
  86. package/examples/jsm/misc/ProgressiveLightMap.js +12 -10
  87. package/examples/jsm/misc/RollerCoaster.js +7 -1
  88. package/examples/jsm/misc/Volume.js +20 -5
  89. package/examples/jsm/modifiers/CurveModifier.js +1 -0
  90. package/examples/jsm/modifiers/TessellateModifier.js +19 -19
  91. package/examples/jsm/nodes/Nodes.js +143 -335
  92. package/examples/jsm/nodes/accessors/BitangentNode.js +43 -16
  93. package/examples/jsm/nodes/accessors/BufferNode.js +6 -0
  94. package/examples/jsm/nodes/accessors/CameraNode.js +12 -2
  95. package/examples/jsm/nodes/accessors/CubeTextureNode.js +27 -33
  96. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +58 -0
  97. package/examples/jsm/nodes/accessors/InstanceNode.js +17 -21
  98. package/examples/jsm/nodes/accessors/MaterialNode.js +155 -38
  99. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +16 -0
  100. package/examples/jsm/nodes/accessors/ModelNode.js +11 -0
  101. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +12 -8
  102. package/examples/jsm/nodes/accessors/NormalNode.js +35 -19
  103. package/examples/jsm/nodes/accessors/Object3DNode.js +32 -12
  104. package/examples/jsm/nodes/accessors/PointUVNode.js +6 -1
  105. package/examples/jsm/nodes/accessors/PositionNode.js +38 -23
  106. package/examples/jsm/nodes/accessors/ReferenceNode.js +21 -14
  107. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +11 -7
  108. package/examples/jsm/nodes/accessors/SkinningNode.js +43 -40
  109. package/examples/jsm/nodes/accessors/StorageBufferNode.js +6 -0
  110. package/examples/jsm/nodes/accessors/TangentNode.js +28 -20
  111. package/examples/jsm/nodes/accessors/TextureNode.js +80 -12
  112. package/examples/jsm/nodes/accessors/UVNode.js +6 -0
  113. package/examples/jsm/nodes/accessors/UserDataNode.js +6 -0
  114. package/examples/jsm/nodes/{core → code}/CodeNode.js +27 -2
  115. package/examples/jsm/nodes/code/ExpressionNode.js +37 -0
  116. package/examples/jsm/nodes/{core → code}/FunctionCallNode.js +15 -1
  117. package/examples/jsm/nodes/{core → code}/FunctionNode.js +8 -7
  118. package/examples/jsm/nodes/code/ScriptableNode.js +488 -0
  119. package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -0
  120. package/examples/jsm/nodes/core/ArrayUniformNode.js +3 -0
  121. package/examples/jsm/nodes/core/AttributeNode.js +16 -8
  122. package/examples/jsm/nodes/core/BypassNode.js +9 -2
  123. package/examples/jsm/nodes/core/CacheNode.js +46 -0
  124. package/examples/jsm/nodes/core/ConstNode.js +3 -0
  125. package/examples/jsm/nodes/core/ContextNode.js +8 -1
  126. package/examples/jsm/nodes/core/InputNode.js +26 -5
  127. package/examples/jsm/nodes/core/InstanceIndexNode.js +6 -1
  128. package/examples/jsm/nodes/core/LightingModel.js +16 -0
  129. package/examples/jsm/nodes/core/Node.js +128 -34
  130. package/examples/jsm/nodes/core/NodeBuilder.js +209 -118
  131. package/examples/jsm/nodes/core/NodeCache.js +26 -0
  132. package/examples/jsm/nodes/core/NodeFrame.js +56 -5
  133. package/examples/jsm/nodes/core/NodeUtils.js +105 -28
  134. package/examples/jsm/nodes/core/PropertyNode.js +19 -2
  135. package/examples/jsm/nodes/core/StackNode.js +92 -0
  136. package/examples/jsm/nodes/core/TempNode.js +11 -3
  137. package/examples/jsm/nodes/core/UniformNode.js +15 -0
  138. package/examples/jsm/nodes/core/VarNode.js +21 -29
  139. package/examples/jsm/nodes/core/VaryingNode.js +15 -2
  140. package/examples/jsm/nodes/core/constants.js +6 -0
  141. package/examples/jsm/nodes/display/BlendModeNode.js +25 -11
  142. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +30 -14
  143. package/examples/jsm/nodes/display/ColorSpaceNode.js +39 -27
  144. package/examples/jsm/nodes/display/FrontFacingNode.js +7 -1
  145. package/examples/jsm/nodes/display/NormalMapNode.js +31 -18
  146. package/examples/jsm/nodes/display/PosterizeNode.js +10 -3
  147. package/examples/jsm/nodes/display/ToneMappingNode.js +92 -11
  148. package/examples/jsm/nodes/display/ViewportNode.js +27 -18
  149. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +30 -0
  150. package/examples/jsm/nodes/display/ViewportTextureNode.js +61 -0
  151. package/examples/jsm/nodes/fog/FogExp2Node.js +35 -0
  152. package/examples/jsm/nodes/fog/FogNode.js +12 -6
  153. package/examples/jsm/nodes/fog/FogRangeNode.js +12 -5
  154. package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +30 -0
  155. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -13
  156. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  157. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +8 -6
  158. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +4 -4
  159. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +3 -3
  160. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +7 -5
  161. package/examples/jsm/nodes/functions/PhongLightingModel.js +28 -0
  162. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +33 -36
  163. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +4 -3
  164. package/examples/jsm/nodes/functions/material/getRoughness.js +4 -4
  165. package/examples/jsm/nodes/geometry/RangeNode.js +32 -19
  166. package/examples/jsm/nodes/gpgpu/ComputeNode.js +9 -2
  167. package/examples/jsm/nodes/lighting/AONode.js +5 -3
  168. package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -0
  169. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +112 -6
  170. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +43 -0
  171. package/examples/jsm/nodes/lighting/EnvironmentNode.js +104 -34
  172. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +15 -10
  173. package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -0
  174. package/examples/jsm/nodes/lighting/LightNode.js +57 -0
  175. package/examples/jsm/nodes/lighting/LightUtils.js +17 -0
  176. package/examples/jsm/nodes/lighting/LightingContextNode.js +30 -8
  177. package/examples/jsm/nodes/lighting/LightingNode.js +3 -1
  178. package/examples/jsm/nodes/lighting/LightsNode.js +18 -10
  179. package/examples/jsm/nodes/lighting/PointLightNode.js +71 -0
  180. package/examples/jsm/nodes/lighting/SpotLightNode.js +92 -0
  181. package/examples/jsm/nodes/loaders/NodeLoader.js +5 -4
  182. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +4 -20
  183. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +6 -9
  184. package/examples/jsm/nodes/materials/Materials.js +11 -55
  185. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +5 -11
  186. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +48 -0
  187. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +74 -0
  188. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
  189. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +21 -96
  190. package/examples/jsm/nodes/materials/NodeMaterial.js +244 -61
  191. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +7 -1
  192. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +29 -25
  193. package/examples/jsm/nodes/materialx/MaterialXNodes.js +31 -22
  194. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +1 -1
  195. package/examples/jsm/nodes/materialx/lib/mx_noise.js +2 -1
  196. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +2 -1
  197. package/examples/jsm/nodes/math/CondNode.js +43 -17
  198. package/examples/jsm/nodes/math/MathNode.js +178 -73
  199. package/examples/jsm/nodes/math/OperatorNode.js +52 -2
  200. package/examples/jsm/nodes/procedural/CheckerNode.js +14 -6
  201. package/examples/jsm/nodes/shadernode/ShaderNode.js +158 -42
  202. package/examples/jsm/nodes/utils/ArrayElementNode.js +4 -2
  203. package/examples/jsm/nodes/utils/ConvertNode.js +19 -1
  204. package/examples/jsm/nodes/utils/DiscardNode.js +26 -0
  205. package/examples/jsm/nodes/utils/EquirectUVNode.js +11 -4
  206. package/examples/jsm/nodes/utils/JoinNode.js +4 -1
  207. package/examples/jsm/nodes/utils/MatcapUVNode.js +11 -4
  208. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +18 -5
  209. package/examples/jsm/nodes/utils/OscNode.js +21 -14
  210. package/examples/jsm/nodes/utils/PackingNode.js +55 -0
  211. package/examples/jsm/nodes/utils/RemapNode.js +13 -5
  212. package/examples/jsm/nodes/utils/RotateUVNode.js +18 -7
  213. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -0
  214. package/examples/jsm/nodes/utils/SplitNode.js +7 -5
  215. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +15 -30
  216. package/examples/jsm/nodes/utils/TimerNode.js +16 -6
  217. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +21 -10
  218. package/examples/jsm/objects/GroundProjectedSkybox.js +172 -0
  219. package/examples/jsm/objects/Reflector.js +4 -4
  220. package/examples/jsm/objects/Refractor.js +4 -4
  221. package/examples/jsm/objects/ShadowMesh.js +3 -3
  222. package/examples/jsm/physics/AmmoPhysics.js +27 -28
  223. package/examples/jsm/physics/{OimoPhysics.js → RapierPhysics.js} +59 -51
  224. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -8
  225. package/examples/jsm/postprocessing/AfterimagePass.js +0 -2
  226. package/examples/jsm/postprocessing/BloomPass.js +0 -2
  227. package/examples/jsm/postprocessing/BokehPass.js +0 -6
  228. package/examples/jsm/postprocessing/DotScreenPass.js +0 -2
  229. package/examples/jsm/postprocessing/EffectComposer.js +3 -94
  230. package/examples/jsm/postprocessing/FilmPass.js +0 -2
  231. package/examples/jsm/postprocessing/GlitchPass.js +0 -2
  232. package/examples/jsm/postprocessing/HalftonePass.js +0 -6
  233. package/examples/jsm/postprocessing/OutlinePass.js +0 -1
  234. package/examples/jsm/postprocessing/Pass.js +2 -0
  235. package/examples/jsm/postprocessing/SAOPass.js +0 -24
  236. package/examples/jsm/postprocessing/SMAAPass.js +0 -6
  237. package/examples/jsm/postprocessing/SSAARenderPass.js +13 -5
  238. package/examples/jsm/postprocessing/SSAOPass.js +0 -12
  239. package/examples/jsm/postprocessing/SSRPass.js +0 -6
  240. package/examples/jsm/postprocessing/SavePass.js +0 -2
  241. package/examples/jsm/postprocessing/TexturePass.js +0 -2
  242. package/examples/jsm/postprocessing/UnrealBloomPass.js +0 -8
  243. package/examples/jsm/renderers/CSS2DRenderer.js +6 -1
  244. package/examples/jsm/renderers/CSS3DRenderer.js +27 -5
  245. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +35 -31
  246. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +2 -2
  247. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +14 -4
  248. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +72 -55
  249. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +34 -19
  250. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +1 -1
  251. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +158 -26
  252. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +1 -1
  253. package/examples/jsm/renderers/webgpu/WebGPUProperties.js +6 -0
  254. package/examples/jsm/renderers/webgpu/WebGPURenderLists.js +30 -14
  255. package/examples/jsm/renderers/webgpu/WebGPURenderObject.js +40 -0
  256. package/examples/jsm/renderers/webgpu/WebGPURenderObjects.js +50 -0
  257. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +49 -111
  258. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +40 -62
  259. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +14 -26
  260. package/examples/jsm/renderers/webgpu/WebGPURenderTarget.js +15 -0
  261. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +244 -100
  262. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +3 -1
  263. package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +2 -4
  264. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +2 -0
  265. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +366 -110
  266. package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +1 -1
  267. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +13 -6
  268. package/examples/jsm/renderers/webgpu/WebGPUWeakMap.js +83 -0
  269. package/examples/jsm/renderers/webgpu/constants.js +68 -6
  270. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +74 -57
  271. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +241 -22
  272. package/examples/jsm/shaders/MMDToonShader.js +15 -4
  273. package/examples/jsm/shaders/RGBShiftShader.js +2 -2
  274. package/examples/jsm/shaders/VelocityShader.js +1 -1
  275. package/examples/jsm/utils/BufferGeometryUtils.js +37 -35
  276. package/examples/jsm/utils/LDrawUtils.js +4 -4
  277. package/examples/jsm/utils/PackedPhongMaterial.js +5 -78
  278. package/examples/jsm/utils/SceneUtils.js +8 -4
  279. package/examples/jsm/utils/SkeletonUtils.js +27 -210
  280. package/examples/jsm/webxr/VRButton.js +1 -2
  281. package/examples/jsm/webxr/XRButton.js +198 -0
  282. package/package.json +33 -87
  283. package/src/Three.Legacy.js +19 -110
  284. package/src/Three.js +4 -3
  285. package/src/animation/AnimationUtils.js +13 -1
  286. package/src/animation/PropertyBinding.js +2 -2
  287. package/src/audio/Audio.js +7 -2
  288. package/src/constants.js +10 -2
  289. package/src/core/BufferAttribute.js +147 -8
  290. package/src/core/BufferGeometry.js +3 -9
  291. package/src/core/GLBufferAttribute.js +2 -0
  292. package/src/core/InterleavedBufferAttribute.js +1 -1
  293. package/src/core/Object3D.js +36 -7
  294. package/src/extras/DataUtils.js +7 -1
  295. package/src/extras/ImageUtils.js +2 -2
  296. package/src/extras/PMREMGenerator.js +5 -5
  297. package/src/extras/curves/LineCurve.js +6 -4
  298. package/src/extras/curves/LineCurve3.js +13 -0
  299. package/src/geometries/BoxGeometry.js +10 -0
  300. package/src/geometries/CircleGeometry.js +11 -1
  301. package/src/geometries/ConeGeometry.js +1 -1
  302. package/src/geometries/CylinderGeometry.js +11 -1
  303. package/src/geometries/EdgesGeometry.js +10 -0
  304. package/src/geometries/ExtrudeGeometry.js +11 -1
  305. package/src/geometries/LatheGeometry.js +10 -0
  306. package/src/geometries/PlaneGeometry.js +10 -0
  307. package/src/geometries/PolyhedronGeometry.js +10 -0
  308. package/src/geometries/RingGeometry.js +11 -1
  309. package/src/geometries/ShapeGeometry.js +10 -0
  310. package/src/geometries/SphereGeometry.js +12 -2
  311. package/src/geometries/TorusGeometry.js +11 -1
  312. package/src/geometries/TorusKnotGeometry.js +10 -0
  313. package/src/geometries/TubeGeometry.js +10 -0
  314. package/src/geometries/WireframeGeometry.js +10 -0
  315. package/src/helpers/Box3Helper.js +1 -2
  316. package/src/lights/DirectionalLight.js +1 -1
  317. package/src/lights/HemisphereLight.js +1 -1
  318. package/src/lights/SpotLight.js +1 -1
  319. package/src/loaders/AudioLoader.js +14 -8
  320. package/src/loaders/DataTextureLoader.js +5 -1
  321. package/src/loaders/MaterialLoader.js +4 -0
  322. package/src/loaders/ObjectLoader.js +9 -2
  323. package/src/materials/LineBasicMaterial.js +4 -0
  324. package/src/materials/Material.js +6 -3
  325. package/src/materials/MeshDistanceMaterial.js +0 -9
  326. package/src/materials/ShaderMaterial.js +6 -1
  327. package/src/math/Box2.js +3 -2
  328. package/src/math/Box3.js +49 -64
  329. package/src/math/Color.js +72 -55
  330. package/src/math/ColorManagement.js +75 -16
  331. package/src/math/Euler.js +2 -11
  332. package/src/math/Frustum.js +13 -3
  333. package/src/math/MathUtils.js +27 -1
  334. package/src/math/Plane.js +2 -2
  335. package/src/math/Quaternion.js +6 -0
  336. package/src/math/Ray.js +7 -7
  337. package/src/math/Triangle.js +37 -7
  338. package/src/math/Vector2.js +16 -0
  339. package/src/math/Vector3.js +10 -0
  340. package/src/math/interpolants/CubicInterpolant.js +1 -2
  341. package/src/objects/InstancedMesh.js +79 -1
  342. package/src/objects/Mesh.js +101 -73
  343. package/src/objects/SkinnedMesh.js +95 -8
  344. package/src/objects/Sprite.js +1 -1
  345. package/src/renderers/WebGLCubeRenderTarget.js +12 -3
  346. package/src/renderers/WebGLMultipleRenderTargets.js +4 -2
  347. package/src/renderers/WebGLRenderTarget.js +14 -2
  348. package/src/renderers/WebGLRenderer.js +1340 -1258
  349. package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +1 -1
  350. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
  351. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +0 -271
  352. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +5 -5
  353. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +2 -10
  354. package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +5 -5
  355. package/src/renderers/shaders/ShaderChunk/common.glsl.js +32 -0
  356. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +1 -1
  357. package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +1 -1
  358. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +1 -1
  359. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
  360. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  361. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -1
  362. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -11
  363. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +13 -13
  364. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +256 -10
  365. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +1 -11
  366. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +9 -1
  367. package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +10 -2
  368. package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +1 -1
  369. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +32 -10
  370. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -13
  371. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +7 -7
  372. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +11 -5
  373. package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +1 -1
  374. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +4 -11
  375. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +2 -2
  376. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +39 -34
  377. package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +1 -1
  378. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +2 -2
  379. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +91 -11
  380. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +108 -1
  381. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +128 -6
  382. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +111 -1
  383. package/src/renderers/shaders/ShaderChunk.js +0 -6
  384. package/src/renderers/shaders/ShaderLib/background.glsl.js +0 -8
  385. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +5 -0
  386. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -4
  387. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -3
  388. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +3 -3
  389. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -3
  390. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +8 -12
  391. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -3
  392. package/src/renderers/shaders/ShaderLib/points.glsl.js +13 -0
  393. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +5 -0
  394. package/src/renderers/shaders/ShaderLib.js +15 -4
  395. package/src/renderers/shaders/UniformsLib.js +25 -15
  396. package/src/renderers/shaders/UniformsUtils.js +12 -3
  397. package/src/renderers/webgl/WebGLBackground.js +23 -12
  398. package/src/renderers/webgl/WebGLCapabilities.js +1 -2
  399. package/src/renderers/webgl/WebGLClipping.js +7 -3
  400. package/src/renderers/webgl/WebGLLights.js +2 -2
  401. package/src/renderers/webgl/WebGLMaterials.js +105 -234
  402. package/src/renderers/webgl/WebGLMorphtargets.js +1 -1
  403. package/src/renderers/webgl/WebGLProgram.js +111 -48
  404. package/src/renderers/webgl/WebGLPrograms.js +200 -129
  405. package/src/renderers/webgl/WebGLRenderStates.js +2 -2
  406. package/src/renderers/webgl/WebGLShadowMap.js +40 -27
  407. package/src/renderers/webgl/WebGLState.js +23 -9
  408. package/src/renderers/webgl/WebGLTextures.js +21 -19
  409. package/src/renderers/webgl/WebGLUniformsGroups.js +74 -33
  410. package/src/renderers/webgl/WebGLUtils.js +41 -29
  411. package/src/renderers/webxr/WebXRController.js +3 -0
  412. package/src/renderers/webxr/WebXRManager.js +70 -48
  413. package/src/scenes/Scene.js +4 -6
  414. package/src/textures/CompressedTexture.js +2 -2
  415. package/src/textures/CubeTexture.js +2 -2
  416. package/src/textures/DataTexture.js +2 -2
  417. package/src/textures/Texture.js +41 -12
  418. package/src/utils.js +13 -1
  419. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
  420. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  421. package/examples/fonts/open-sans/open-sans.css +0 -9
  422. package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
  423. package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +0 -3966
  424. package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
  425. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
  426. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
  427. package/examples/fonts/tabler-icons/tabler-icons.min.css +0 -4
  428. package/examples/js/animation/AnimationClipCreator.js +0 -89
  429. package/examples/js/animation/CCDIKSolver.js +0 -416
  430. package/examples/js/animation/MMDAnimationHelper.js +0 -1046
  431. package/examples/js/animation/MMDPhysics.js +0 -1174
  432. package/examples/js/cameras/CinematicCamera.js +0 -168
  433. package/examples/js/controls/ArcballControls.js +0 -2770
  434. package/examples/js/controls/DragControls.js +0 -205
  435. package/examples/js/controls/FirstPersonControls.js +0 -312
  436. package/examples/js/controls/FlyControls.js +0 -321
  437. package/examples/js/controls/OrbitControls.js +0 -1101
  438. package/examples/js/controls/PointerLockControls.js +0 -144
  439. package/examples/js/controls/TrackballControls.js +0 -729
  440. package/examples/js/controls/TransformControls.js +0 -1301
  441. package/examples/js/csm/CSM.js +0 -347
  442. package/examples/js/csm/CSMFrustum.js +0 -127
  443. package/examples/js/csm/CSMHelper.js +0 -165
  444. package/examples/js/csm/CSMShader.js +0 -253
  445. package/examples/js/curves/CurveExtras.js +0 -348
  446. package/examples/js/curves/NURBSCurve.js +0 -63
  447. package/examples/js/curves/NURBSSurface.js +0 -48
  448. package/examples/js/curves/NURBSUtils.js +0 -439
  449. package/examples/js/effects/AnaglyphEffect.js +0 -86
  450. package/examples/js/effects/AsciiEffect.js +0 -260
  451. package/examples/js/effects/OutlineEffect.js +0 -450
  452. package/examples/js/effects/ParallaxBarrierEffect.js +0 -62
  453. package/examples/js/effects/PeppersGhostEffect.js +0 -139
  454. package/examples/js/effects/StereoEffect.js +0 -46
  455. package/examples/js/environments/DebugEnvironment.js +0 -53
  456. package/examples/js/environments/RoomEnvironment.js +0 -124
  457. package/examples/js/exporters/ColladaExporter.js +0 -487
  458. package/examples/js/exporters/DRACOExporter.js +0 -212
  459. package/examples/js/exporters/EXRExporter.js +0 -455
  460. package/examples/js/exporters/GLTFExporter.js +0 -2367
  461. package/examples/js/exporters/MMDExporter.js +0 -187
  462. package/examples/js/exporters/OBJExporter.js +0 -260
  463. package/examples/js/exporters/PLYExporter.js +0 -427
  464. package/examples/js/exporters/STLExporter.js +0 -188
  465. package/examples/js/exporters/USDZExporter.js +0 -608
  466. package/examples/js/geometries/BoxLineGeometry.js +0 -59
  467. package/examples/js/geometries/ConvexGeometry.js +0 -53
  468. package/examples/js/geometries/DecalGeometry.js +0 -324
  469. package/examples/js/geometries/LightningStrike.js +0 -861
  470. package/examples/js/geometries/ParametricGeometries.js +0 -216
  471. package/examples/js/geometries/ParametricGeometry.js +0 -121
  472. package/examples/js/geometries/RoundedBoxGeometry.js +0 -142
  473. package/examples/js/geometries/TeapotGeometry.js +0 -335
  474. package/examples/js/geometries/TextGeometry.js +0 -53
  475. package/examples/js/helpers/LightProbeHelper.js +0 -48
  476. package/examples/js/helpers/OctreeHelper.js +0 -76
  477. package/examples/js/helpers/PositionalAudioHelper.js +0 -91
  478. package/examples/js/helpers/RectAreaLightHelper.js +0 -73
  479. package/examples/js/helpers/VertexNormalsHelper.js +0 -74
  480. package/examples/js/helpers/VertexTangentsHelper.js +0 -68
  481. package/examples/js/helpers/ViewHelper.js +0 -281
  482. package/examples/js/interactive/HTMLMesh.js +0 -497
  483. package/examples/js/interactive/InteractiveGroup.js +0 -95
  484. package/examples/js/interactive/SelectionBox.js +0 -195
  485. package/examples/js/interactive/SelectionHelper.js +0 -83
  486. package/examples/js/libs/chevrotain.min.js +0 -3
  487. package/examples/js/libs/draco/draco_decoder.js +0 -52
  488. package/examples/js/libs/draco/draco_decoder.wasm +0 -0
  489. package/examples/js/libs/draco/draco_wasm_wrapper.js +0 -104
  490. package/examples/js/libs/draco/gltf/draco_decoder.js +0 -48
  491. package/examples/js/libs/draco/gltf/draco_decoder.wasm +0 -0
  492. package/examples/js/libs/draco/gltf/draco_wasm_wrapper.js +0 -104
  493. package/examples/js/libs/fflate.min.js +0 -7
  494. package/examples/js/libs/ktx-parse.umd.js +0 -1
  495. package/examples/js/libs/meshopt_decoder.js +0 -188
  496. package/examples/js/libs/opentype.min.js +0 -1
  497. package/examples/js/libs/stats.min.js +0 -5
  498. package/examples/js/lights/LightProbeGenerator.js +0 -221
  499. package/examples/js/lights/RectAreaLightUniformsLib.js +0 -60
  500. package/examples/js/lines/Line2.js +0 -19
  501. package/examples/js/lines/LineGeometry.js +0 -69
  502. package/examples/js/lines/LineMaterial.js +0 -635
  503. package/examples/js/lines/LineSegments2.js +0 -313
  504. package/examples/js/lines/LineSegmentsGeometry.js +0 -198
  505. package/examples/js/lines/Wireframe.js +0 -47
  506. package/examples/js/lines/WireframeGeometry2.js +0 -20
  507. package/examples/js/loaders/3DMLoader.js +0 -1273
  508. package/examples/js/loaders/3MFLoader.js +0 -1306
  509. package/examples/js/loaders/AMFLoader.js +0 -504
  510. package/examples/js/loaders/BVHLoader.js +0 -395
  511. package/examples/js/loaders/BasisTextureLoader.js +0 -706
  512. package/examples/js/loaders/ColladaLoader.js +0 -3690
  513. package/examples/js/loaders/DDSLoader.js +0 -244
  514. package/examples/js/loaders/DRACOLoader.js +0 -511
  515. package/examples/js/loaders/EXRLoader.js +0 -2039
  516. package/examples/js/loaders/FBXLoader.js +0 -3681
  517. package/examples/js/loaders/FontLoader.js +0 -160
  518. package/examples/js/loaders/GCodeLoader.js +0 -255
  519. package/examples/js/loaders/GLTFLoader.js +0 -3862
  520. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -87
  521. package/examples/js/loaders/KMZLoader.js +0 -121
  522. package/examples/js/loaders/KTXLoader.js +0 -159
  523. package/examples/js/loaders/LDrawLoader.js +0 -2263
  524. package/examples/js/loaders/LUT3dlLoader.js +0 -135
  525. package/examples/js/loaders/LUTCubeLoader.js +0 -132
  526. package/examples/js/loaders/LWOLoader.js +0 -901
  527. package/examples/js/loaders/LogLuvLoader.js +0 -715
  528. package/examples/js/loaders/LottieLoader.js +0 -62
  529. package/examples/js/loaders/MD2Loader.js +0 -248
  530. package/examples/js/loaders/MDDLoader.js +0 -91
  531. package/examples/js/loaders/MMDLoader.js +0 -1915
  532. package/examples/js/loaders/MTLLoader.js +0 -472
  533. package/examples/js/loaders/NRRDLoader.js +0 -609
  534. package/examples/js/loaders/OBJLoader.js +0 -789
  535. package/examples/js/loaders/PCDLoader.js +0 -413
  536. package/examples/js/loaders/PDBLoader.js +0 -317
  537. package/examples/js/loaders/PLYLoader.js +0 -576
  538. package/examples/js/loaders/PRWMLoader.js +0 -249
  539. package/examples/js/loaders/PVRLoader.js +0 -218
  540. package/examples/js/loaders/RGBELoader.js +0 -442
  541. package/examples/js/loaders/RGBMLoader.js +0 -1354
  542. package/examples/js/loaders/STLLoader.js +0 -364
  543. package/examples/js/loaders/SVGLoader.js +0 -2783
  544. package/examples/js/loaders/TDSLoader.js +0 -992
  545. package/examples/js/loaders/TGALoader.js +0 -484
  546. package/examples/js/loaders/TIFFLoader.js +0 -30
  547. package/examples/js/loaders/TTFLoader.js +0 -203
  548. package/examples/js/loaders/TiltLoader.js +0 -459
  549. package/examples/js/loaders/VOXLoader.js +0 -240
  550. package/examples/js/loaders/VRMLLoader.js +0 -3140
  551. package/examples/js/loaders/VTKLoader.js +0 -1078
  552. package/examples/js/loaders/XYZLoader.js +0 -89
  553. package/examples/js/loaders/lwo/IFFParser.js +0 -1067
  554. package/examples/js/loaders/lwo/LWO2Parser.js +0 -397
  555. package/examples/js/loaders/lwo/LWO3Parser.js +0 -360
  556. package/examples/js/materials/MeshGouraudMaterial.js +0 -387
  557. package/examples/js/math/Capsule.js +0 -103
  558. package/examples/js/math/ColorConverter.js +0 -33
  559. package/examples/js/math/ConvexHull.js +0 -1154
  560. package/examples/js/math/ImprovedNoise.js +0 -66
  561. package/examples/js/math/Lut.js +0 -164
  562. package/examples/js/math/MeshSurfaceSampler.js +0 -171
  563. package/examples/js/math/OBB.js +0 -382
  564. package/examples/js/math/Octree.js +0 -410
  565. package/examples/js/math/SimplexNoise.js +0 -445
  566. package/examples/js/misc/ConvexObjectBreaker.js +0 -474
  567. package/examples/js/misc/GPUComputationRenderer.js +0 -393
  568. package/examples/js/misc/Gyroscope.js +0 -56
  569. package/examples/js/misc/MD2Character.js +0 -235
  570. package/examples/js/misc/MD2CharacterComplex.js +0 -513
  571. package/examples/js/misc/MorphAnimMesh.js +0 -63
  572. package/examples/js/misc/MorphBlendMesh.js +0 -265
  573. package/examples/js/misc/ProgressiveLightMap.js +0 -335
  574. package/examples/js/misc/RollerCoaster.js +0 -430
  575. package/examples/js/misc/TubePainter.js +0 -167
  576. package/examples/js/misc/Volume.js +0 -437
  577. package/examples/js/misc/VolumeSlice.js +0 -214
  578. package/examples/js/modifiers/CurveModifier.js +0 -309
  579. package/examples/js/modifiers/EdgeSplitModifier.js +0 -228
  580. package/examples/js/modifiers/SimplifyModifier.js +0 -465
  581. package/examples/js/modifiers/TessellateModifier.js +0 -276
  582. package/examples/js/objects/GroundProjectedEnv.js +0 -181
  583. package/examples/js/objects/Lensflare.js +0 -356
  584. package/examples/js/objects/LightningStorm.js +0 -206
  585. package/examples/js/objects/MarchingCubes.js +0 -759
  586. package/examples/js/objects/Reflector.js +0 -216
  587. package/examples/js/objects/ReflectorForSSRPass.js +0 -315
  588. package/examples/js/objects/Refractor.js +0 -283
  589. package/examples/js/objects/ShadowMesh.js +0 -59
  590. package/examples/js/objects/Sky.js +0 -218
  591. package/examples/js/objects/Water.js +0 -292
  592. package/examples/js/objects/Water2.js +0 -307
  593. package/examples/js/physics/AmmoPhysics.js +0 -259
  594. package/examples/js/physics/OimoPhysics.js +0 -217
  595. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +0 -335
  596. package/examples/js/postprocessing/AfterimagePass.js +0 -77
  597. package/examples/js/postprocessing/BloomPass.js +0 -135
  598. package/examples/js/postprocessing/BokehPass.js +0 -120
  599. package/examples/js/postprocessing/ClearPass.js +0 -39
  600. package/examples/js/postprocessing/CubeTexturePass.js +0 -60
  601. package/examples/js/postprocessing/DotScreenPass.js +0 -51
  602. package/examples/js/postprocessing/EffectComposer.js +0 -272
  603. package/examples/js/postprocessing/FilmPass.js +0 -52
  604. package/examples/js/postprocessing/GlitchPass.js +0 -104
  605. package/examples/js/postprocessing/HalftonePass.js +0 -75
  606. package/examples/js/postprocessing/LUTPass.js +0 -171
  607. package/examples/js/postprocessing/MaskPass.js +0 -95
  608. package/examples/js/postprocessing/OutlinePass.js +0 -598
  609. package/examples/js/postprocessing/Pass.js +0 -72
  610. package/examples/js/postprocessing/RenderPass.js +0 -70
  611. package/examples/js/postprocessing/RenderPixelatedPass.js +0 -215
  612. package/examples/js/postprocessing/SAOPass.js +0 -374
  613. package/examples/js/postprocessing/SMAAPass.js +0 -170
  614. package/examples/js/postprocessing/SSAARenderPass.js +0 -156
  615. package/examples/js/postprocessing/SSAOPass.js +0 -365
  616. package/examples/js/postprocessing/SSRPass.js +0 -567
  617. package/examples/js/postprocessing/SavePass.js +0 -59
  618. package/examples/js/postprocessing/ShaderPass.js +0 -64
  619. package/examples/js/postprocessing/TAARenderPass.js +0 -130
  620. package/examples/js/postprocessing/TexturePass.js +0 -49
  621. package/examples/js/postprocessing/UnrealBloomPass.js +0 -375
  622. package/examples/js/renderers/CSS2DRenderer.js +0 -178
  623. package/examples/js/renderers/CSS3DRenderer.js +0 -237
  624. package/examples/js/renderers/Projector.js +0 -818
  625. package/examples/js/renderers/SVGRenderer.js +0 -491
  626. package/examples/js/shaders/ACESFilmicToneMappingShader.js +0 -89
  627. package/examples/js/shaders/AfterimageShader.js +0 -60
  628. package/examples/js/shaders/BasicShader.js +0 -27
  629. package/examples/js/shaders/BleachBypassShader.js +0 -62
  630. package/examples/js/shaders/BlendShader.js +0 -54
  631. package/examples/js/shaders/BokehShader.js +0 -156
  632. package/examples/js/shaders/BokehShader2.js +0 -419
  633. package/examples/js/shaders/BrightnessContrastShader.js +0 -58
  634. package/examples/js/shaders/ColorCorrectionShader.js +0 -52
  635. package/examples/js/shaders/ColorifyShader.js +0 -47
  636. package/examples/js/shaders/ConvolutionShader.js +0 -92
  637. package/examples/js/shaders/CopyShader.js +0 -45
  638. package/examples/js/shaders/DOFMipMapShader.js +0 -60
  639. package/examples/js/shaders/DepthLimitedBlurShader.js +0 -173
  640. package/examples/js/shaders/DigitalGlitch.js +0 -127
  641. package/examples/js/shaders/DotScreenShader.js +0 -72
  642. package/examples/js/shaders/FXAAShader.js +0 -284
  643. package/examples/js/shaders/FilmShader.js +0 -110
  644. package/examples/js/shaders/FocusShader.js +0 -95
  645. package/examples/js/shaders/FreiChenShader.js +0 -93
  646. package/examples/js/shaders/GammaCorrectionShader.js +0 -41
  647. package/examples/js/shaders/GodRaysShader.js +0 -284
  648. package/examples/js/shaders/HalftoneShader.js +0 -336
  649. package/examples/js/shaders/HorizontalBlurShader.js +0 -59
  650. package/examples/js/shaders/HorizontalTiltShiftShader.js +0 -65
  651. package/examples/js/shaders/HueSaturationShader.js +0 -69
  652. package/examples/js/shaders/KaleidoShader.js +0 -60
  653. package/examples/js/shaders/LuminosityHighPassShader.js +0 -67
  654. package/examples/js/shaders/LuminosityShader.js +0 -46
  655. package/examples/js/shaders/MMDToonShader.js +0 -94
  656. package/examples/js/shaders/MirrorShader.js +0 -56
  657. package/examples/js/shaders/NormalMapShader.js +0 -55
  658. package/examples/js/shaders/RGBShiftShader.js +0 -56
  659. package/examples/js/shaders/SAOShader.js +0 -209
  660. package/examples/js/shaders/SMAAShader.js +0 -454
  661. package/examples/js/shaders/SSAOShader.js +0 -295
  662. package/examples/js/shaders/SSRShader.js +0 -381
  663. package/examples/js/shaders/SepiaShader.js +0 -52
  664. package/examples/js/shaders/SobelOperatorShader.js +0 -88
  665. package/examples/js/shaders/SubsurfaceScatteringShader.js +0 -49
  666. package/examples/js/shaders/TechnicolorShader.js +0 -43
  667. package/examples/js/shaders/ToneMapShader.js +0 -84
  668. package/examples/js/shaders/ToonShader.js +0 -335
  669. package/examples/js/shaders/TriangleBlurShader.js +0 -70
  670. package/examples/js/shaders/UnpackDepthRGBAShader.js +0 -47
  671. package/examples/js/shaders/VelocityShader.js +0 -126
  672. package/examples/js/shaders/VerticalBlurShader.js +0 -59
  673. package/examples/js/shaders/VerticalTiltShiftShader.js +0 -65
  674. package/examples/js/shaders/VignetteShader.js +0 -53
  675. package/examples/js/shaders/VolumeShader.js +0 -296
  676. package/examples/js/shaders/WaterRefractionShader.js +0 -84
  677. package/examples/js/textures/FlakesTexture.js +0 -40
  678. package/examples/js/utils/BufferGeometryUtils.js +0 -1160
  679. package/examples/js/utils/CameraUtils.js +0 -71
  680. package/examples/js/utils/GPUStatsPanel.js +0 -125
  681. package/examples/js/utils/GeometryCompressionUtils.js +0 -549
  682. package/examples/js/utils/GeometryUtils.js +0 -168
  683. package/examples/js/utils/LDrawUtils.js +0 -179
  684. package/examples/js/utils/PackedPhongMaterial.js +0 -109
  685. package/examples/js/utils/SceneUtils.js +0 -214
  686. package/examples/js/utils/ShadowMapViewer.js +0 -183
  687. package/examples/js/utils/SkeletonUtils.js +0 -493
  688. package/examples/js/utils/UVsDebug.js +0 -143
  689. package/examples/js/utils/WorkerPool.js +0 -105
  690. package/examples/jsm/libs/OimoPhysics/OimoPhysics.js +0 -37071
  691. package/examples/jsm/libs/OimoPhysics/index.js +0 -43
  692. package/examples/jsm/libs/flow.module.js +0 -4552
  693. package/examples/jsm/libs/tween.module.min.js +0 -3
  694. package/examples/jsm/loaders/BasisTextureLoader.js +0 -790
  695. package/examples/jsm/loaders/IFCLoader.js +0 -2431
  696. package/examples/jsm/loaders/ifc/web-ifc-api.js +0 -47504
  697. package/examples/jsm/loaders/ifc/web-ifc.wasm +0 -0
  698. package/examples/jsm/node-editor/NodeEditor.js +0 -857
  699. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +0 -14
  700. package/examples/jsm/node-editor/accessors/NormalEditor.js +0 -30
  701. package/examples/jsm/node-editor/accessors/PositionEditor.js +0 -30
  702. package/examples/jsm/node-editor/accessors/UVEditor.js +0 -25
  703. package/examples/jsm/node-editor/core/BaseNode.js +0 -96
  704. package/examples/jsm/node-editor/core/DataFile.js +0 -59
  705. package/examples/jsm/node-editor/core/FileEditor.js +0 -20
  706. package/examples/jsm/node-editor/core/FileURLEditor.js +0 -29
  707. package/examples/jsm/node-editor/display/BlendEditor.js +0 -44
  708. package/examples/jsm/node-editor/display/NormalMapEditor.js +0 -49
  709. package/examples/jsm/node-editor/examples/animate-uv.json +0 -1
  710. package/examples/jsm/node-editor/examples/fake-top-light.json +0 -1
  711. package/examples/jsm/node-editor/examples/matcap.json +0 -1
  712. package/examples/jsm/node-editor/examples/oscillator-color.json +0 -1
  713. package/examples/jsm/node-editor/examples/rim.json +0 -1
  714. package/examples/jsm/node-editor/inputs/ColorEditor.js +0 -96
  715. package/examples/jsm/node-editor/inputs/FloatEditor.js +0 -23
  716. package/examples/jsm/node-editor/inputs/SliderEditor.js +0 -67
  717. package/examples/jsm/node-editor/inputs/TextureEditor.js +0 -155
  718. package/examples/jsm/node-editor/inputs/Vector2Editor.js +0 -28
  719. package/examples/jsm/node-editor/inputs/Vector3Editor.js +0 -30
  720. package/examples/jsm/node-editor/inputs/Vector4Editor.js +0 -37
  721. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +0 -84
  722. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +0 -102
  723. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +0 -118
  724. package/examples/jsm/node-editor/math/AngleEditor.js +0 -40
  725. package/examples/jsm/node-editor/math/DotEditor.js +0 -35
  726. package/examples/jsm/node-editor/math/InvertEditor.js +0 -39
  727. package/examples/jsm/node-editor/math/LimiterEditor.js +0 -62
  728. package/examples/jsm/node-editor/math/NormalizeEditor.js +0 -28
  729. package/examples/jsm/node-editor/math/OperatorEditor.js +0 -63
  730. package/examples/jsm/node-editor/math/PowerEditor.js +0 -44
  731. package/examples/jsm/node-editor/math/TrigonometryEditor.js +0 -45
  732. package/examples/jsm/node-editor/procedural/CheckerEditor.js +0 -27
  733. package/examples/jsm/node-editor/scene/MeshEditor.js +0 -102
  734. package/examples/jsm/node-editor/scene/Object3DEditor.js +0 -160
  735. package/examples/jsm/node-editor/scene/PointsEditor.js +0 -99
  736. package/examples/jsm/node-editor/utils/JoinEditor.js +0 -58
  737. package/examples/jsm/node-editor/utils/OscillatorEditor.js +0 -43
  738. package/examples/jsm/node-editor/utils/PreviewEditor.js +0 -170
  739. package/examples/jsm/node-editor/utils/SplitEditor.js +0 -39
  740. package/examples/jsm/node-editor/utils/TimerEditor.js +0 -58
  741. package/examples/jsm/nodes/core/ExpressionNode.js +0 -32
  742. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +0 -22
  743. package/examples/jsm/nodes/lighting/PunctualLightNode.js +0 -68
  744. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +0 -301
  745. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +0 -149
  746. package/examples/jsm/objects/GroundProjectedEnv.js +0 -186
  747. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -36
  748. package/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js +0 -7
  749. package/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js +0 -10
  750. package/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js +0 -7
  751. /package/examples/{js → jsm}/libs/ammo.wasm.js +0 -0
  752. /package/examples/{js → jsm}/libs/ammo.wasm.wasm +0 -0
  753. /package/examples/{js → jsm}/libs/basis/basis_transcoder.js +0 -0
  754. /package/examples/{js → jsm}/libs/basis/basis_transcoder.wasm +0 -0
  755. /package/examples/{js → jsm}/libs/draco/README.md +0 -0
  756. /package/examples/{js → jsm}/libs/draco/draco_encoder.js +0 -0
  757. /package/examples/{js → jsm}/libs/draco/gltf/draco_encoder.js +0 -0
@@ -1,992 +0,0 @@
1
- ( function () {
2
-
3
- /**
4
- * Autodesk 3DS three.js file loader, based on lib3ds.
5
- *
6
- * Loads geometry with uv and materials basic properties with texture support.
7
- *
8
- * @class TDSLoader
9
- * @constructor
10
- */
11
-
12
- class TDSLoader extends THREE.Loader {
13
-
14
- constructor( manager ) {
15
-
16
- super( manager );
17
- this.debug = false;
18
- this.group = null;
19
- this.materials = [];
20
- this.meshes = [];
21
-
22
- }
23
-
24
- /**
25
- * Load 3ds file from url.
26
- *
27
- * @method load
28
- * @param {[type]} url URL for the file.
29
- * @param {Function} onLoad onLoad callback, receives group Object3D as argument.
30
- * @param {Function} onProgress onProgress callback.
31
- * @param {Function} onError onError callback.
32
- */
33
- load( url, onLoad, onProgress, onError ) {
34
-
35
- const scope = this;
36
- const path = this.path === '' ? THREE.LoaderUtils.extractUrlBase( url ) : this.path;
37
- const loader = new THREE.FileLoader( this.manager );
38
- loader.setPath( this.path );
39
- loader.setResponseType( 'arraybuffer' );
40
- loader.setRequestHeader( this.requestHeader );
41
- loader.setWithCredentials( this.withCredentials );
42
- loader.load( url, function ( data ) {
43
-
44
- try {
45
-
46
- onLoad( scope.parse( data, path ) );
47
-
48
- } catch ( e ) {
49
-
50
- if ( onError ) {
51
-
52
- onError( e );
53
-
54
- } else {
55
-
56
- console.error( e );
57
-
58
- }
59
-
60
- scope.manager.itemError( url );
61
-
62
- }
63
-
64
- }, onProgress, onError );
65
-
66
- }
67
-
68
- /**
69
- * Parse arraybuffer data and load 3ds file.
70
- *
71
- * @method parse
72
- * @param {ArrayBuffer} arraybuffer Arraybuffer data to be loaded.
73
- * @param {String} path Path for external resources.
74
- * @return {Group} THREE.Group loaded from 3ds file.
75
- */
76
- parse( arraybuffer, path ) {
77
-
78
- this.group = new THREE.Group();
79
- this.materials = [];
80
- this.meshes = [];
81
- this.readFile( arraybuffer, path );
82
- for ( let i = 0; i < this.meshes.length; i ++ ) {
83
-
84
- this.group.add( this.meshes[ i ] );
85
-
86
- }
87
-
88
- return this.group;
89
-
90
- }
91
-
92
- /**
93
- * Decode file content to read 3ds data.
94
- *
95
- * @method readFile
96
- * @param {ArrayBuffer} arraybuffer Arraybuffer data to be loaded.
97
- * @param {String} path Path for external resources.
98
- */
99
- readFile( arraybuffer, path ) {
100
-
101
- const data = new DataView( arraybuffer );
102
- const chunk = new Chunk( data, 0, this.debugMessage );
103
- if ( chunk.id === MLIBMAGIC || chunk.id === CMAGIC || chunk.id === M3DMAGIC ) {
104
-
105
- let next = chunk.readChunk();
106
- while ( next ) {
107
-
108
- if ( next.id === M3D_VERSION ) {
109
-
110
- const version = next.readDWord();
111
- this.debugMessage( '3DS file version: ' + version );
112
-
113
- } else if ( next.id === MDATA ) {
114
-
115
- this.readMeshData( next, path );
116
-
117
- } else {
118
-
119
- this.debugMessage( 'Unknown main chunk: ' + next.hexId );
120
-
121
- }
122
-
123
- next = chunk.readChunk();
124
-
125
- }
126
-
127
- }
128
-
129
- this.debugMessage( 'Parsed ' + this.meshes.length + ' meshes' );
130
-
131
- }
132
-
133
- /**
134
- * Read mesh data chunk.
135
- *
136
- * @method readMeshData
137
- * @param {Chunk} chunk to read mesh from
138
- * @param {String} path Path for external resources.
139
- */
140
- readMeshData( chunk, path ) {
141
-
142
- let next = chunk.readChunk();
143
- while ( next ) {
144
-
145
- if ( next.id === MESH_VERSION ) {
146
-
147
- const version = + next.readDWord();
148
- this.debugMessage( 'Mesh Version: ' + version );
149
-
150
- } else if ( next.id === MASTER_SCALE ) {
151
-
152
- const scale = next.readFloat();
153
- this.debugMessage( 'Master scale: ' + scale );
154
- this.group.scale.set( scale, scale, scale );
155
-
156
- } else if ( next.id === NAMED_OBJECT ) {
157
-
158
- this.debugMessage( 'Named Object' );
159
- this.readNamedObject( next );
160
-
161
- } else if ( next.id === MAT_ENTRY ) {
162
-
163
- this.debugMessage( 'Material' );
164
- this.readMaterialEntry( next, path );
165
-
166
- } else {
167
-
168
- this.debugMessage( 'Unknown MDATA chunk: ' + next.hexId );
169
-
170
- }
171
-
172
- next = chunk.readChunk();
173
-
174
- }
175
-
176
- }
177
-
178
- /**
179
- * Read named object chunk.
180
- *
181
- * @method readNamedObject
182
- * @param {Chunk} chunk Chunk in use.
183
- */
184
- readNamedObject( chunk ) {
185
-
186
- const name = chunk.readString();
187
- let next = chunk.readChunk();
188
- while ( next ) {
189
-
190
- if ( next.id === N_TRI_OBJECT ) {
191
-
192
- const mesh = this.readMesh( next );
193
- mesh.name = name;
194
- this.meshes.push( mesh );
195
-
196
- } else {
197
-
198
- this.debugMessage( 'Unknown named object chunk: ' + next.hexId );
199
-
200
- }
201
-
202
- next = chunk.readChunk();
203
-
204
- }
205
-
206
- }
207
-
208
- /**
209
- * Read material data chunk and add it to the material list.
210
- *
211
- * @method readMaterialEntry
212
- * @param {Chunk} chunk Chunk in use.
213
- * @param {String} path Path for external resources.
214
- */
215
- readMaterialEntry( chunk, path ) {
216
-
217
- let next = chunk.readChunk();
218
- const material = new THREE.MeshPhongMaterial();
219
- while ( next ) {
220
-
221
- if ( next.id === MAT_NAME ) {
222
-
223
- material.name = next.readString();
224
- this.debugMessage( ' Name: ' + material.name );
225
-
226
- } else if ( next.id === MAT_WIRE ) {
227
-
228
- this.debugMessage( ' Wireframe' );
229
- material.wireframe = true;
230
-
231
- } else if ( next.id === MAT_WIRE_SIZE ) {
232
-
233
- const value = next.readByte();
234
- material.wireframeLinewidth = value;
235
- this.debugMessage( ' Wireframe Thickness: ' + value );
236
-
237
- } else if ( next.id === MAT_TWO_SIDE ) {
238
-
239
- material.side = THREE.DoubleSide;
240
- this.debugMessage( ' DoubleSided' );
241
-
242
- } else if ( next.id === MAT_ADDITIVE ) {
243
-
244
- this.debugMessage( ' Additive Blending' );
245
- material.blending = THREE.AdditiveBlending;
246
-
247
- } else if ( next.id === MAT_DIFFUSE ) {
248
-
249
- this.debugMessage( ' Diffuse THREE.Color' );
250
- material.color = this.readColor( next );
251
-
252
- } else if ( next.id === MAT_SPECULAR ) {
253
-
254
- this.debugMessage( ' Specular THREE.Color' );
255
- material.specular = this.readColor( next );
256
-
257
- } else if ( next.id === MAT_AMBIENT ) {
258
-
259
- this.debugMessage( ' Ambient color' );
260
- material.color = this.readColor( next );
261
-
262
- } else if ( next.id === MAT_SHININESS ) {
263
-
264
- const shininess = this.readPercentage( next );
265
- material.shininess = shininess * 100;
266
- this.debugMessage( ' Shininess : ' + shininess );
267
-
268
- } else if ( next.id === MAT_TRANSPARENCY ) {
269
-
270
- const transparency = this.readPercentage( next );
271
- material.opacity = 1 - transparency;
272
- this.debugMessage( ' Transparency : ' + transparency );
273
- material.transparent = material.opacity < 1 ? true : false;
274
-
275
- } else if ( next.id === MAT_TEXMAP ) {
276
-
277
- this.debugMessage( ' ColorMap' );
278
- material.map = this.readMap( next, path );
279
-
280
- } else if ( next.id === MAT_BUMPMAP ) {
281
-
282
- this.debugMessage( ' BumpMap' );
283
- material.bumpMap = this.readMap( next, path );
284
-
285
- } else if ( next.id === MAT_OPACMAP ) {
286
-
287
- this.debugMessage( ' OpacityMap' );
288
- material.alphaMap = this.readMap( next, path );
289
-
290
- } else if ( next.id === MAT_SPECMAP ) {
291
-
292
- this.debugMessage( ' SpecularMap' );
293
- material.specularMap = this.readMap( next, path );
294
-
295
- } else {
296
-
297
- this.debugMessage( ' Unknown material chunk: ' + next.hexId );
298
-
299
- }
300
-
301
- next = chunk.readChunk();
302
-
303
- }
304
-
305
- this.materials[ material.name ] = material;
306
-
307
- }
308
-
309
- /**
310
- * Read mesh data chunk.
311
- *
312
- * @method readMesh
313
- * @param {Chunk} chunk Chunk in use.
314
- * @return {Mesh} The parsed mesh.
315
- */
316
- readMesh( chunk ) {
317
-
318
- let next = chunk.readChunk();
319
- const geometry = new THREE.BufferGeometry();
320
- const material = new THREE.MeshPhongMaterial();
321
- const mesh = new THREE.Mesh( geometry, material );
322
- mesh.name = 'mesh';
323
- while ( next ) {
324
-
325
- if ( next.id === POINT_ARRAY ) {
326
-
327
- const points = next.readWord();
328
- this.debugMessage( ' Vertex: ' + points );
329
-
330
- //BufferGeometry
331
-
332
- const vertices = [];
333
- for ( let i = 0; i < points; i ++ ) {
334
-
335
- vertices.push( next.readFloat() );
336
- vertices.push( next.readFloat() );
337
- vertices.push( next.readFloat() );
338
-
339
- }
340
-
341
- geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
342
-
343
- } else if ( next.id === FACE_ARRAY ) {
344
-
345
- this.readFaceArray( next, mesh );
346
-
347
- } else if ( next.id === TEX_VERTS ) {
348
-
349
- const texels = next.readWord();
350
- this.debugMessage( ' UV: ' + texels );
351
-
352
- //BufferGeometry
353
-
354
- const uvs = [];
355
- for ( let i = 0; i < texels; i ++ ) {
356
-
357
- uvs.push( next.readFloat() );
358
- uvs.push( next.readFloat() );
359
-
360
- }
361
-
362
- geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) );
363
-
364
- } else if ( next.id === MESH_MATRIX ) {
365
-
366
- this.debugMessage( ' Tranformation Matrix (TODO)' );
367
- const values = [];
368
- for ( let i = 0; i < 12; i ++ ) {
369
-
370
- values[ i ] = next.readFloat();
371
-
372
- }
373
-
374
- const matrix = new THREE.Matrix4();
375
-
376
- //X Line
377
- matrix.elements[ 0 ] = values[ 0 ];
378
- matrix.elements[ 1 ] = values[ 6 ];
379
- matrix.elements[ 2 ] = values[ 3 ];
380
- matrix.elements[ 3 ] = values[ 9 ];
381
-
382
- //Y Line
383
- matrix.elements[ 4 ] = values[ 2 ];
384
- matrix.elements[ 5 ] = values[ 8 ];
385
- matrix.elements[ 6 ] = values[ 5 ];
386
- matrix.elements[ 7 ] = values[ 11 ];
387
-
388
- //Z Line
389
- matrix.elements[ 8 ] = values[ 1 ];
390
- matrix.elements[ 9 ] = values[ 7 ];
391
- matrix.elements[ 10 ] = values[ 4 ];
392
- matrix.elements[ 11 ] = values[ 10 ];
393
-
394
- //W Line
395
- matrix.elements[ 12 ] = 0;
396
- matrix.elements[ 13 ] = 0;
397
- matrix.elements[ 14 ] = 0;
398
- matrix.elements[ 15 ] = 1;
399
- matrix.transpose();
400
- const inverse = new THREE.Matrix4();
401
- inverse.copy( matrix ).invert();
402
- geometry.applyMatrix4( inverse );
403
- matrix.decompose( mesh.position, mesh.quaternion, mesh.scale );
404
-
405
- } else {
406
-
407
- this.debugMessage( ' Unknown mesh chunk: ' + next.hexId );
408
-
409
- }
410
-
411
- next = chunk.readChunk();
412
-
413
- }
414
-
415
- geometry.computeVertexNormals();
416
- return mesh;
417
-
418
- }
419
-
420
- /**
421
- * Read face array data chunk.
422
- *
423
- * @method readFaceArray
424
- * @param {Chunk} chunk Chunk in use.
425
- * @param {Mesh} mesh THREE.Mesh to be filled with the data read.
426
- */
427
- readFaceArray( chunk, mesh ) {
428
-
429
- const faces = chunk.readWord();
430
- this.debugMessage( ' Faces: ' + faces );
431
- const index = [];
432
- for ( let i = 0; i < faces; ++ i ) {
433
-
434
- index.push( chunk.readWord(), chunk.readWord(), chunk.readWord() );
435
- chunk.readWord(); // visibility
436
-
437
- }
438
-
439
- mesh.geometry.setIndex( index );
440
-
441
- //The rest of the FACE_ARRAY chunk is subchunks
442
-
443
- let materialIndex = 0;
444
- let start = 0;
445
- while ( ! chunk.endOfChunk ) {
446
-
447
- const subchunk = chunk.readChunk();
448
- if ( subchunk.id === MSH_MAT_GROUP ) {
449
-
450
- this.debugMessage( ' Material THREE.Group' );
451
- const group = this.readMaterialGroup( subchunk );
452
- const count = group.index.length * 3; // assuming successive indices
453
-
454
- mesh.geometry.addGroup( start, count, materialIndex );
455
- start += count;
456
- materialIndex ++;
457
- const material = this.materials[ group.name ];
458
- if ( Array.isArray( mesh.material ) === false ) mesh.material = [];
459
- if ( material !== undefined ) {
460
-
461
- mesh.material.push( material );
462
-
463
- }
464
-
465
- } else {
466
-
467
- this.debugMessage( ' Unknown face array chunk: ' + subchunk.hexId );
468
-
469
- }
470
-
471
- }
472
-
473
- if ( mesh.material.length === 1 ) mesh.material = mesh.material[ 0 ]; // for backwards compatibility
474
-
475
- }
476
-
477
- /**
478
- * Read texture map data chunk.
479
- *
480
- * @method readMap
481
- * @param {Chunk} chunk Chunk in use.
482
- * @param {String} path Path for external resources.
483
- * @return {Texture} Texture read from this data chunk.
484
- */
485
- readMap( chunk, path ) {
486
-
487
- let next = chunk.readChunk();
488
- let texture = {};
489
- const loader = new THREE.TextureLoader( this.manager );
490
- loader.setPath( this.resourcePath || path ).setCrossOrigin( this.crossOrigin );
491
- while ( next ) {
492
-
493
- if ( next.id === MAT_MAPNAME ) {
494
-
495
- const name = next.readString();
496
- texture = loader.load( name );
497
- this.debugMessage( ' File: ' + path + name );
498
-
499
- } else if ( next.id === MAT_MAP_UOFFSET ) {
500
-
501
- texture.offset.x = next.readFloat();
502
- this.debugMessage( ' OffsetX: ' + texture.offset.x );
503
-
504
- } else if ( next.id === MAT_MAP_VOFFSET ) {
505
-
506
- texture.offset.y = next.readFloat();
507
- this.debugMessage( ' OffsetY: ' + texture.offset.y );
508
-
509
- } else if ( next.id === MAT_MAP_USCALE ) {
510
-
511
- texture.repeat.x = next.readFloat();
512
- this.debugMessage( ' RepeatX: ' + texture.repeat.x );
513
-
514
- } else if ( next.id === MAT_MAP_VSCALE ) {
515
-
516
- texture.repeat.y = next.readFloat();
517
- this.debugMessage( ' RepeatY: ' + texture.repeat.y );
518
-
519
- } else {
520
-
521
- this.debugMessage( ' Unknown map chunk: ' + next.hexId );
522
-
523
- }
524
-
525
- next = chunk.readChunk();
526
-
527
- }
528
-
529
- return texture;
530
-
531
- }
532
-
533
- /**
534
- * Read material group data chunk.
535
- *
536
- * @method readMaterialGroup
537
- * @param {Chunk} chunk Chunk in use.
538
- * @return {Object} Object with name and index of the object.
539
- */
540
- readMaterialGroup( chunk ) {
541
-
542
- const name = chunk.readString();
543
- const numFaces = chunk.readWord();
544
- this.debugMessage( ' Name: ' + name );
545
- this.debugMessage( ' Faces: ' + numFaces );
546
- const index = [];
547
- for ( let i = 0; i < numFaces; ++ i ) {
548
-
549
- index.push( chunk.readWord() );
550
-
551
- }
552
-
553
- return {
554
- name: name,
555
- index: index
556
- };
557
-
558
- }
559
-
560
- /**
561
- * Read a color value.
562
- *
563
- * @method readColor
564
- * @param {Chunk} chunk Chunk.
565
- * @return {Color} THREE.Color value read..
566
- */
567
- readColor( chunk ) {
568
-
569
- const subChunk = chunk.readChunk();
570
- const color = new THREE.Color();
571
- if ( subChunk.id === COLOR_24 || subChunk.id === LIN_COLOR_24 ) {
572
-
573
- const r = subChunk.readByte();
574
- const g = subChunk.readByte();
575
- const b = subChunk.readByte();
576
- color.setRGB( r / 255, g / 255, b / 255 );
577
- this.debugMessage( ' THREE.Color: ' + color.r + ', ' + color.g + ', ' + color.b );
578
-
579
- } else if ( subChunk.id === COLOR_F || subChunk.id === LIN_COLOR_F ) {
580
-
581
- const r = subChunk.readFloat();
582
- const g = subChunk.readFloat();
583
- const b = subChunk.readFloat();
584
- color.setRGB( r, g, b );
585
- this.debugMessage( ' THREE.Color: ' + color.r + ', ' + color.g + ', ' + color.b );
586
-
587
- } else {
588
-
589
- this.debugMessage( ' Unknown color chunk: ' + subChunk.hexId );
590
-
591
- }
592
-
593
- return color;
594
-
595
- }
596
-
597
- /**
598
- * Read percentage value.
599
- *
600
- * @method readPercentage
601
- * @param {Chunk} chunk Chunk to read data from.
602
- * @return {Number} Data read from the dataview.
603
- */
604
- readPercentage( chunk ) {
605
-
606
- const subChunk = chunk.readChunk();
607
- switch ( subChunk.id ) {
608
-
609
- case INT_PERCENTAGE:
610
- return subChunk.readShort() / 100;
611
- break;
612
- case FLOAT_PERCENTAGE:
613
- return subChunk.readFloat();
614
- break;
615
- default:
616
- this.debugMessage( ' Unknown percentage chunk: ' + subChunk.hexId );
617
- return 0;
618
-
619
- }
620
-
621
- }
622
-
623
- /**
624
- * Print debug message to the console.
625
- *
626
- * Is controlled by a flag to show or hide debug messages.
627
- *
628
- * @method debugMessage
629
- * @param {Object} message Debug message to print to the console.
630
- */
631
- debugMessage( message ) {
632
-
633
- if ( this.debug ) {
634
-
635
- console.log( message );
636
-
637
- }
638
-
639
- }
640
-
641
- }
642
-
643
- /** Read data/sub-chunks from chunk */
644
- class Chunk {
645
-
646
- /**
647
- * Create a new chunk
648
- *
649
- * @class Chunk
650
- * @param {DataView} data DataView to read from.
651
- * @param {Number} position in data.
652
- * @param {Function} debugMessage logging callback.
653
- */
654
- constructor( data, position, debugMessage ) {
655
-
656
- this.data = data;
657
- // the offset to the begin of this chunk
658
- this.offset = position;
659
- // the current reading position
660
- this.position = position;
661
- this.debugMessage = debugMessage;
662
- if ( this.debugMessage instanceof Function ) {
663
-
664
- this.debugMessage = function () {};
665
-
666
- }
667
-
668
- this.id = this.readWord();
669
- this.size = this.readDWord();
670
- this.end = this.offset + this.size;
671
- if ( this.end > data.byteLength ) {
672
-
673
- this.debugMessage( 'Bad chunk size for chunk at ' + position );
674
-
675
- }
676
-
677
- }
678
-
679
- /**
680
- * read a sub cchunk.
681
- *
682
- * @method readChunk
683
- * @return {Chunk | null} next sub chunk
684
- */
685
- readChunk() {
686
-
687
- if ( this.endOfChunk ) {
688
-
689
- return null;
690
-
691
- }
692
-
693
- try {
694
-
695
- const next = new Chunk( this.data, this.position, this.debugMessage );
696
- this.position += next.size;
697
- return next;
698
-
699
- } catch ( e ) {
700
-
701
- this.debugMessage( 'Unable to read chunk at ' + this.position );
702
- return null;
703
-
704
- }
705
-
706
- }
707
-
708
- /**
709
- * return the ID of this chunk as Hex
710
- *
711
- * @method idToString
712
- * @return {String} hex-string of id
713
- */
714
- get hexId() {
715
-
716
- return this.id.toString( 16 );
717
-
718
- }
719
- get endOfChunk() {
720
-
721
- return this.position >= this.end;
722
-
723
- }
724
-
725
- /**
726
- * Read byte value.
727
- *
728
- * @method readByte
729
- * @return {Number} Data read from the dataview.
730
- */
731
- readByte() {
732
-
733
- const v = this.data.getUint8( this.position, true );
734
- this.position += 1;
735
- return v;
736
-
737
- }
738
-
739
- /**
740
- * Read 32 bit float value.
741
- *
742
- * @method readFloat
743
- * @return {Number} Data read from the dataview.
744
- */
745
- readFloat() {
746
-
747
- try {
748
-
749
- const v = this.data.getFloat32( this.position, true );
750
- this.position += 4;
751
- return v;
752
-
753
- } catch ( e ) {
754
-
755
- this.debugMessage( e + ' ' + this.position + ' ' + this.data.byteLength );
756
- return 0;
757
-
758
- }
759
-
760
- }
761
-
762
- /**
763
- * Read 32 bit signed integer value.
764
- *
765
- * @method readInt
766
- * @return {Number} Data read from the dataview.
767
- */
768
- readInt() {
769
-
770
- const v = this.data.getInt32( this.position, true );
771
- this.position += 4;
772
- return v;
773
-
774
- }
775
-
776
- /**
777
- * Read 16 bit signed integer value.
778
- *
779
- * @method readShort
780
- * @return {Number} Data read from the dataview.
781
- */
782
- readShort() {
783
-
784
- const v = this.data.getInt16( this.position, true );
785
- this.position += 2;
786
- return v;
787
-
788
- }
789
-
790
- /**
791
- * Read 64 bit unsigned integer value.
792
- *
793
- * @method readDWord
794
- * @return {Number} Data read from the dataview.
795
- */
796
- readDWord() {
797
-
798
- const v = this.data.getUint32( this.position, true );
799
- this.position += 4;
800
- return v;
801
-
802
- }
803
-
804
- /**
805
- * Read 32 bit unsigned integer value.
806
- *
807
- * @method readWord
808
- * @return {Number} Data read from the dataview.
809
- */
810
- readWord() {
811
-
812
- const v = this.data.getUint16( this.position, true );
813
- this.position += 2;
814
- return v;
815
-
816
- }
817
-
818
- /**
819
- * Read NULL terminated ASCII string value from chunk-pos.
820
- *
821
- * @method readString
822
- * @return {String} Data read from the dataview.
823
- */
824
- readString() {
825
-
826
- let s = '';
827
- let c = this.readByte();
828
- while ( c ) {
829
-
830
- s += String.fromCharCode( c );
831
- c = this.readByte();
832
-
833
- }
834
-
835
- return s;
836
-
837
- }
838
-
839
- }
840
-
841
- // const NULL_CHUNK = 0x0000;
842
- const M3DMAGIC = 0x4D4D;
843
- // const SMAGIC = 0x2D2D;
844
- // const LMAGIC = 0x2D3D;
845
- const MLIBMAGIC = 0x3DAA;
846
- // const MATMAGIC = 0x3DFF;
847
- const CMAGIC = 0xC23D;
848
- const M3D_VERSION = 0x0002;
849
- // const M3D_KFVERSION = 0x0005;
850
- const COLOR_F = 0x0010;
851
- const COLOR_24 = 0x0011;
852
- const LIN_COLOR_24 = 0x0012;
853
- const LIN_COLOR_F = 0x0013;
854
- const INT_PERCENTAGE = 0x0030;
855
- const FLOAT_PERCENTAGE = 0x0031;
856
- const MDATA = 0x3D3D;
857
- const MESH_VERSION = 0x3D3E;
858
- const MASTER_SCALE = 0x0100;
859
- // const LO_SHADOW_BIAS = 0x1400;
860
- // const HI_SHADOW_BIAS = 0x1410;
861
- // const SHADOW_MAP_SIZE = 0x1420;
862
- // const SHADOW_SAMPLES = 0x1430;
863
- // const SHADOW_RANGE = 0x1440;
864
- // const SHADOW_FILTER = 0x1450;
865
- // const RAY_BIAS = 0x1460;
866
- // const O_CONSTS = 0x1500;
867
- // const AMBIENT_LIGHT = 0x2100;
868
- // const BIT_MAP = 0x1100;
869
- // const SOLID_BGND = 0x1200;
870
- // const V_GRADIENT = 0x1300;
871
- // const USE_BIT_MAP = 0x1101;
872
- // const USE_SOLID_BGND = 0x1201;
873
- // const USE_V_GRADIENT = 0x1301;
874
- // const FOG = 0x2200;
875
- // const FOG_BGND = 0x2210;
876
- // const LAYER_FOG = 0x2302;
877
- // const DISTANCE_CUE = 0x2300;
878
- // const DCUE_BGND = 0x2310;
879
- // const USE_FOG = 0x2201;
880
- // const USE_LAYER_FOG = 0x2303;
881
- // const USE_DISTANCE_CUE = 0x2301;
882
- const MAT_ENTRY = 0xAFFF;
883
- const MAT_NAME = 0xA000;
884
- const MAT_AMBIENT = 0xA010;
885
- const MAT_DIFFUSE = 0xA020;
886
- const MAT_SPECULAR = 0xA030;
887
- const MAT_SHININESS = 0xA040;
888
- // const MAT_SHIN2PCT = 0xA041;
889
- const MAT_TRANSPARENCY = 0xA050;
890
- // const MAT_XPFALL = 0xA052;
891
- // const MAT_USE_XPFALL = 0xA240;
892
- // const MAT_REFBLUR = 0xA053;
893
- // const MAT_SHADING = 0xA100;
894
- // const MAT_USE_REFBLUR = 0xA250;
895
- // const MAT_SELF_ILLUM = 0xA084;
896
- const MAT_TWO_SIDE = 0xA081;
897
- // const MAT_DECAL = 0xA082;
898
- const MAT_ADDITIVE = 0xA083;
899
- const MAT_WIRE = 0xA085;
900
- // const MAT_FACEMAP = 0xA088;
901
- // const MAT_TRANSFALLOFF_IN = 0xA08A;
902
- // const MAT_PHONGSOFT = 0xA08C;
903
- // const MAT_WIREABS = 0xA08E;
904
- const MAT_WIRE_SIZE = 0xA087;
905
- const MAT_TEXMAP = 0xA200;
906
- // const MAT_SXP_TEXT_DATA = 0xA320;
907
- // const MAT_TEXMASK = 0xA33E;
908
- // const MAT_SXP_TEXTMASK_DATA = 0xA32A;
909
- // const MAT_TEX2MAP = 0xA33A;
910
- // const MAT_SXP_TEXT2_DATA = 0xA321;
911
- // const MAT_TEX2MASK = 0xA340;
912
- // const MAT_SXP_TEXT2MASK_DATA = 0xA32C;
913
- const MAT_OPACMAP = 0xA210;
914
- // const MAT_SXP_OPAC_DATA = 0xA322;
915
- // const MAT_OPACMASK = 0xA342;
916
- // const MAT_SXP_OPACMASK_DATA = 0xA32E;
917
- const MAT_BUMPMAP = 0xA230;
918
- // const MAT_SXP_BUMP_DATA = 0xA324;
919
- // const MAT_BUMPMASK = 0xA344;
920
- // const MAT_SXP_BUMPMASK_DATA = 0xA330;
921
- const MAT_SPECMAP = 0xA204;
922
- // const MAT_SXP_SPEC_DATA = 0xA325;
923
- // const MAT_SPECMASK = 0xA348;
924
- // const MAT_SXP_SPECMASK_DATA = 0xA332;
925
- // const MAT_SHINMAP = 0xA33C;
926
- // const MAT_SXP_SHIN_DATA = 0xA326;
927
- // const MAT_SHINMASK = 0xA346;
928
- // const MAT_SXP_SHINMASK_DATA = 0xA334;
929
- // const MAT_SELFIMAP = 0xA33D;
930
- // const MAT_SXP_SELFI_DATA = 0xA328;
931
- // const MAT_SELFIMASK = 0xA34A;
932
- // const MAT_SXP_SELFIMASK_DATA = 0xA336;
933
- // const MAT_REFLMAP = 0xA220;
934
- // const MAT_REFLMASK = 0xA34C;
935
- // const MAT_SXP_REFLMASK_DATA = 0xA338;
936
- // const MAT_ACUBIC = 0xA310;
937
- const MAT_MAPNAME = 0xA300;
938
- // const MAT_MAP_TILING = 0xA351;
939
- // const MAT_MAP_TEXBLUR = 0xA353;
940
- const MAT_MAP_USCALE = 0xA354;
941
- const MAT_MAP_VSCALE = 0xA356;
942
- const MAT_MAP_UOFFSET = 0xA358;
943
- const MAT_MAP_VOFFSET = 0xA35A;
944
- // const MAT_MAP_ANG = 0xA35C;
945
- // const MAT_MAP_COL1 = 0xA360;
946
- // const MAT_MAP_COL2 = 0xA362;
947
- // const MAT_MAP_RCOL = 0xA364;
948
- // const MAT_MAP_GCOL = 0xA366;
949
- // const MAT_MAP_BCOL = 0xA368;
950
- const NAMED_OBJECT = 0x4000;
951
- // const N_DIRECT_LIGHT = 0x4600;
952
- // const DL_OFF = 0x4620;
953
- // const DL_OUTER_RANGE = 0x465A;
954
- // const DL_INNER_RANGE = 0x4659;
955
- // const DL_MULTIPLIER = 0x465B;
956
- // const DL_EXCLUDE = 0x4654;
957
- // const DL_ATTENUATE = 0x4625;
958
- // const DL_SPOTLIGHT = 0x4610;
959
- // const DL_SPOT_ROLL = 0x4656;
960
- // const DL_SHADOWED = 0x4630;
961
- // const DL_LOCAL_SHADOW2 = 0x4641;
962
- // const DL_SEE_CONE = 0x4650;
963
- // const DL_SPOT_RECTANGULAR = 0x4651;
964
- // const DL_SPOT_ASPECT = 0x4657;
965
- // const DL_SPOT_PROJECTOR = 0x4653;
966
- // const DL_SPOT_OVERSHOOT = 0x4652;
967
- // const DL_RAY_BIAS = 0x4658;
968
- // const DL_RAYSHAD = 0x4627;
969
- // const N_CAMERA = 0x4700;
970
- // const CAM_SEE_CONE = 0x4710;
971
- // const CAM_RANGES = 0x4720;
972
- // const OBJ_HIDDEN = 0x4010;
973
- // const OBJ_VIS_LOFTER = 0x4011;
974
- // const OBJ_DOESNT_CAST = 0x4012;
975
- // const OBJ_DONT_RECVSHADOW = 0x4017;
976
- // const OBJ_MATTE = 0x4013;
977
- // const OBJ_FAST = 0x4014;
978
- // const OBJ_PROCEDURAL = 0x4015;
979
- // const OBJ_FROZEN = 0x4016;
980
- const N_TRI_OBJECT = 0x4100;
981
- const POINT_ARRAY = 0x4110;
982
- // const POINT_FLAG_ARRAY = 0x4111;
983
- const FACE_ARRAY = 0x4120;
984
- const MSH_MAT_GROUP = 0x4130;
985
- // const SMOOTH_GROUP = 0x4150;
986
- // const MSH_BOXMAP = 0x4190;
987
- const TEX_VERTS = 0x4140;
988
- const MESH_MATRIX = 0x4160;
989
-
990
- THREE.TDSLoader = TDSLoader;
991
-
992
- } )();