@plastic-software/three 0.167.4 → 0.174.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 (747) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/build/three.cjs +36217 -23964
  4. package/build/three.core.js +48830 -0
  5. package/build/three.core.min.js +6 -0
  6. package/build/three.module.js +10175 -46744
  7. package/build/three.module.min.js +2 -3
  8. package/build/three.tsl.js +550 -0
  9. package/build/three.tsl.min.js +6 -0
  10. package/build/three.webgpu.js +44348 -50671
  11. package/build/three.webgpu.min.js +2 -3
  12. package/build/three.webgpu.nodes.js +70301 -0
  13. package/build/three.webgpu.nodes.min.js +6 -0
  14. package/examples/jsm/Addons.js +3 -15
  15. package/examples/jsm/animation/AnimationClipCreator.js +1 -1
  16. package/examples/jsm/animation/CCDIKSolver.js +61 -11
  17. package/examples/jsm/capabilities/WebGL.js +27 -21
  18. package/examples/jsm/capabilities/WebGPU.js +1 -10
  19. package/examples/jsm/controls/ArcballControls.js +262 -231
  20. package/examples/jsm/controls/DragControls.js +1 -1
  21. package/examples/jsm/controls/FirstPersonControls.js +175 -163
  22. package/examples/jsm/controls/FlyControls.js +194 -188
  23. package/examples/jsm/controls/OrbitControls.js +801 -777
  24. package/examples/jsm/controls/PointerLockControls.js +26 -20
  25. package/examples/jsm/controls/TrackballControls.js +469 -448
  26. package/examples/jsm/controls/TransformControls.js +119 -68
  27. package/examples/jsm/csm/CSM.js +2 -2
  28. package/examples/jsm/csm/CSMFrustum.js +7 -4
  29. package/examples/jsm/csm/CSMHelper.js +2 -0
  30. package/examples/jsm/csm/CSMShadowNode.js +442 -0
  31. package/examples/jsm/curves/NURBSCurve.js +33 -2
  32. package/examples/jsm/curves/NURBSUtils.js +3 -0
  33. package/examples/jsm/effects/AnaglyphEffect.js +6 -13
  34. package/examples/jsm/effects/OutlineEffect.js +1 -1
  35. package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
  36. package/examples/jsm/effects/StereoEffect.js +6 -1
  37. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  38. package/examples/jsm/exporters/EXRExporter.js +19 -11
  39. package/examples/jsm/exporters/GLTFExporter.js +181 -109
  40. package/examples/jsm/exporters/KTX2Exporter.js +54 -23
  41. package/examples/jsm/exporters/OBJExporter.js +5 -1
  42. package/examples/jsm/exporters/PLYExporter.js +11 -9
  43. package/examples/jsm/exporters/USDZExporter.js +50 -11
  44. package/examples/jsm/geometries/DecalGeometry.js +73 -21
  45. package/examples/jsm/geometries/TextGeometry.js +1 -12
  46. package/examples/jsm/helpers/LightProbeHelper.js +43 -44
  47. package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
  48. package/examples/jsm/helpers/TextureHelperGPU.js +185 -0
  49. package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
  50. package/examples/jsm/interactive/HTMLMesh.js +1 -0
  51. package/examples/jsm/interactive/InteractiveGroup.js +108 -51
  52. package/examples/jsm/interactive/SelectionHelper.js +3 -1
  53. package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
  54. package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
  55. package/examples/jsm/libs/demuxer_mp4.js +109 -0
  56. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  57. package/examples/jsm/lighting/TiledLighting.js +18 -0
  58. package/examples/jsm/lights/LightProbeGenerator.js +26 -12
  59. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
  60. package/examples/jsm/lines/LineGeometry.js +25 -0
  61. package/examples/jsm/lines/LineMaterial.js +0 -1
  62. package/examples/jsm/lines/LineSegmentsGeometry.js +2 -0
  63. package/examples/jsm/lines/webgpu/Line2.js +2 -1
  64. package/examples/jsm/lines/webgpu/LineSegments2.js +16 -21
  65. package/examples/jsm/lines/webgpu/Wireframe.js +57 -0
  66. package/examples/jsm/loaders/3DMLoader.js +1 -0
  67. package/examples/jsm/loaders/3MFLoader.js +104 -2
  68. package/examples/jsm/loaders/BVHLoader.js +1 -1
  69. package/examples/jsm/loaders/ColladaLoader.js +15 -12
  70. package/examples/jsm/loaders/DDSLoader.js +42 -0
  71. package/examples/jsm/loaders/DRACOLoader.js +3 -1
  72. package/examples/jsm/loaders/FBXLoader.js +71 -22
  73. package/examples/jsm/loaders/GCodeLoader.js +4 -2
  74. package/examples/jsm/loaders/GLTFLoader.js +29 -14
  75. package/examples/jsm/loaders/KTX2Loader.js +160 -58
  76. package/examples/jsm/loaders/KTXLoader.js +4 -4
  77. package/examples/jsm/loaders/LDrawLoader.js +22 -136
  78. package/examples/jsm/loaders/LottieLoader.js +2 -1
  79. package/examples/jsm/loaders/MTLLoader.js +27 -7
  80. package/examples/jsm/loaders/MaterialXLoader.js +40 -14
  81. package/examples/jsm/loaders/NRRDLoader.js +1 -1
  82. package/examples/jsm/loaders/OBJLoader.js +5 -3
  83. package/examples/jsm/loaders/PCDLoader.js +14 -13
  84. package/examples/jsm/loaders/PDBLoader.js +3 -2
  85. package/examples/jsm/loaders/PLYLoader.js +15 -12
  86. package/examples/jsm/loaders/PVRLoader.js +1 -1
  87. package/examples/jsm/loaders/STLLoader.js +3 -2
  88. package/examples/jsm/loaders/SVGLoader.js +2 -2
  89. package/examples/jsm/loaders/TDSLoader.js +17 -18
  90. package/examples/jsm/loaders/VRMLLoader.js +17 -17
  91. package/examples/jsm/loaders/VTKLoader.js +4 -3
  92. package/examples/jsm/loaders/XYZLoader.js +3 -2
  93. package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
  94. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +143 -0
  95. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +114 -0
  96. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
  97. package/examples/jsm/math/ColorSpaces.js +76 -0
  98. package/examples/jsm/math/ConvexHull.js +1 -1
  99. package/examples/jsm/math/OBB.js +17 -0
  100. package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
  101. package/examples/jsm/misc/ProgressiveLightMap.js +54 -41
  102. package/examples/jsm/misc/ProgressiveLightMapGPU.js +294 -0
  103. package/examples/jsm/misc/Timer.js +27 -12
  104. package/examples/jsm/misc/Volume.js +28 -18
  105. package/examples/jsm/misc/VolumeSlice.js +19 -16
  106. package/examples/jsm/modifiers/CurveModifier.js +10 -8
  107. package/examples/jsm/modifiers/CurveModifierGPU.js +235 -0
  108. package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
  109. package/examples/jsm/objects/GroundedSkybox.js +4 -4
  110. package/examples/jsm/objects/LensflareMesh.js +324 -0
  111. package/examples/jsm/objects/Reflector.js +5 -2
  112. package/examples/jsm/objects/Sky.js +2 -2
  113. package/examples/jsm/objects/SkyMesh.js +14 -14
  114. package/examples/jsm/objects/Water2.js +1 -1
  115. package/examples/jsm/objects/Water2Mesh.js +11 -9
  116. package/examples/jsm/objects/WaterMesh.js +38 -33
  117. package/examples/jsm/physics/JoltPhysics.js +8 -8
  118. package/examples/jsm/physics/RapierPhysics.js +5 -5
  119. package/examples/jsm/postprocessing/AfterimagePass.js +14 -3
  120. package/examples/jsm/postprocessing/BloomPass.js +2 -2
  121. package/examples/jsm/postprocessing/EffectComposer.js +1 -2
  122. package/examples/jsm/postprocessing/OutlinePass.js +37 -51
  123. package/examples/jsm/postprocessing/OutputPass.js +2 -0
  124. package/examples/jsm/postprocessing/SAOPass.js +1 -2
  125. package/examples/jsm/postprocessing/SMAAPass.js +1 -3
  126. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
  127. package/examples/jsm/postprocessing/SSAOPass.js +2 -4
  128. package/examples/jsm/postprocessing/SSRPass.js +8 -4
  129. package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
  130. package/examples/jsm/renderers/CSS2DRenderer.js +6 -3
  131. package/examples/jsm/renderers/CSS3DRenderer.js +7 -4
  132. package/examples/jsm/renderers/SVGRenderer.js +6 -4
  133. package/examples/jsm/shaders/BokehShader2.js +1 -1
  134. package/examples/jsm/shaders/FXAAShader.js +225 -224
  135. package/examples/jsm/shaders/GodRaysShader.js +3 -3
  136. package/examples/jsm/shaders/OutputShader.js +6 -2
  137. package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
  138. package/examples/jsm/transpiler/AST.js +12 -2
  139. package/examples/jsm/transpiler/GLSLDecoder.js +77 -31
  140. package/examples/jsm/transpiler/ShaderToyDecoder.js +3 -3
  141. package/examples/jsm/transpiler/TSLEncoder.js +96 -21
  142. package/examples/jsm/tsl/display/AfterImageNode.js +243 -0
  143. package/examples/jsm/tsl/display/AnaglyphPassNode.js +106 -0
  144. package/examples/jsm/tsl/display/AnamorphicNode.js +257 -0
  145. package/{src/nodes/display/BleachBypassNode.js → examples/jsm/tsl/display/BleachBypass.js} +11 -6
  146. package/{src/nodes → examples/jsm/tsl}/display/BloomNode.js +252 -67
  147. package/examples/jsm/tsl/display/DenoiseNode.js +332 -0
  148. package/{src/nodes → examples/jsm/tsl}/display/DepthOfFieldNode.js +92 -14
  149. package/examples/jsm/tsl/display/DotScreenNode.js +103 -0
  150. package/examples/jsm/tsl/display/FXAANode.js +364 -0
  151. package/examples/jsm/tsl/display/FilmNode.js +100 -0
  152. package/examples/jsm/tsl/display/GTAONode.js +521 -0
  153. package/examples/jsm/tsl/display/GaussianBlurNode.js +393 -0
  154. package/examples/jsm/tsl/display/LensflareNode.js +278 -0
  155. package/examples/jsm/tsl/display/Lut3DNode.js +108 -0
  156. package/examples/jsm/tsl/display/MotionBlur.js +33 -0
  157. package/examples/jsm/tsl/display/OutlineNode.js +750 -0
  158. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +88 -0
  159. package/{src/nodes → examples/jsm/tsl}/display/PixelationPassNode.js +160 -28
  160. package/examples/jsm/tsl/display/RGBShiftNode.js +95 -0
  161. package/examples/jsm/tsl/display/SMAANode.js +767 -0
  162. package/examples/jsm/tsl/display/SSAAPassNode.js +357 -0
  163. package/examples/jsm/tsl/display/SSRNode.js +538 -0
  164. package/examples/jsm/tsl/display/Sepia.js +24 -0
  165. package/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.js +66 -20
  166. package/examples/jsm/tsl/display/StereoCompositePassNode.js +184 -0
  167. package/examples/jsm/tsl/display/StereoPassNode.js +119 -0
  168. package/examples/jsm/tsl/display/TRAAPassNode.js +451 -0
  169. package/examples/jsm/tsl/display/TransitionNode.js +140 -0
  170. package/examples/jsm/tsl/display/hashBlur.js +34 -0
  171. package/examples/jsm/tsl/lighting/TiledLightsNode.js +395 -0
  172. package/examples/jsm/tsl/math/Bayer.js +18 -0
  173. package/examples/jsm/tsl/utils/Raymarching.js +65 -0
  174. package/examples/jsm/utils/BufferGeometryUtils.js +2 -2
  175. package/examples/jsm/utils/CameraUtils.js +4 -1
  176. package/examples/jsm/utils/GeometryCompressionUtils.js +38 -123
  177. package/examples/jsm/utils/GeometryUtils.js +22 -19
  178. package/examples/jsm/utils/SceneOptimizer.js +410 -0
  179. package/examples/jsm/utils/SceneUtils.js +2 -2
  180. package/examples/jsm/utils/ShadowMapViewer.js +3 -8
  181. package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
  182. package/examples/jsm/utils/SkeletonUtils.js +84 -66
  183. package/examples/jsm/utils/UVsDebug.js +1 -1
  184. package/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +1 -0
  185. package/examples/jsm/utils/WebGPUTextureUtils.js +64 -0
  186. package/examples/jsm/webxr/OculusHandPointerModel.js +21 -21
  187. package/examples/jsm/webxr/Text2D.js +6 -6
  188. package/examples/jsm/webxr/XRControllerModelFactory.js +7 -2
  189. package/examples/jsm/webxr/XREstimatedLight.js +1 -1
  190. package/package.json +14 -9
  191. package/src/Three.Core.js +182 -0
  192. package/src/Three.Legacy.js +0 -21
  193. package/src/Three.TSL.js +543 -0
  194. package/src/Three.WebGPU.Nodes.js +23 -0
  195. package/src/Three.WebGPU.js +13 -184
  196. package/src/Three.js +1 -176
  197. package/src/animation/AnimationClip.js +2 -2
  198. package/src/animation/AnimationObjectGroup.js +2 -2
  199. package/src/animation/AnimationUtils.js +1 -1
  200. package/src/animation/PropertyBinding.js +2 -2
  201. package/src/audio/Audio.js +379 -2
  202. package/src/audio/AudioAnalyser.js +58 -1
  203. package/src/audio/AudioContext.js +15 -0
  204. package/src/audio/AudioListener.js +76 -0
  205. package/src/audio/PositionalAudio.js +107 -0
  206. package/src/cameras/ArrayCamera.js +29 -0
  207. package/src/cameras/Camera.js +47 -0
  208. package/src/cameras/CubeCamera.js +66 -0
  209. package/src/cameras/OrthographicCamera.js +109 -0
  210. package/src/cameras/PerspectiveCamera.js +173 -34
  211. package/src/cameras/StereoCamera.js +48 -2
  212. package/src/constants.js +6 -6
  213. package/src/core/BufferAttribute.js +4 -9
  214. package/src/core/BufferGeometry.js +48 -8
  215. package/src/core/Clock.js +1 -1
  216. package/src/core/EventDispatcher.js +52 -8
  217. package/src/core/InterleavedBuffer.js +4 -13
  218. package/src/core/Object3D.js +573 -3
  219. package/src/core/RenderTarget.js +22 -4
  220. package/src/core/RenderTarget3D.js +22 -0
  221. package/src/core/RenderTargetArray.js +22 -0
  222. package/src/extras/Controls.js +104 -0
  223. package/src/extras/DataUtils.js +48 -8
  224. package/src/extras/Earcut.js +18 -7
  225. package/src/extras/ImageUtils.js +18 -11
  226. package/src/extras/PMREMGenerator.js +40 -9
  227. package/src/extras/ShapeUtils.js +24 -2
  228. package/src/extras/TextureUtils.js +96 -10
  229. package/src/extras/core/Curve.js +153 -53
  230. package/src/extras/core/CurvePath.js +63 -22
  231. package/src/extras/core/Interpolations.js +29 -3
  232. package/src/extras/core/Path.js +134 -1
  233. package/src/extras/core/Shape.js +66 -3
  234. package/src/extras/core/ShapePath.js +76 -0
  235. package/src/extras/curves/ArcCurve.js +22 -0
  236. package/src/extras/curves/CatmullRomCurve3.js +89 -18
  237. package/src/extras/curves/CubicBezierCurve.js +67 -0
  238. package/src/extras/curves/CubicBezierCurve3.js +50 -0
  239. package/src/extras/curves/EllipseCurve.js +102 -0
  240. package/src/extras/curves/LineCurve.js +36 -0
  241. package/src/extras/curves/LineCurve3.js +36 -0
  242. package/src/extras/curves/QuadraticBezierCurve.js +59 -0
  243. package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
  244. package/src/extras/curves/SplineCurve.js +48 -0
  245. package/src/geometries/BoxGeometry.js +38 -0
  246. package/src/geometries/CapsuleGeometry.js +34 -0
  247. package/src/geometries/CircleGeometry.js +40 -0
  248. package/src/geometries/ConeGeometry.js +38 -0
  249. package/src/geometries/CylinderGeometry.js +50 -4
  250. package/src/geometries/DodecahedronGeometry.js +32 -0
  251. package/src/geometries/EdgesGeometry.js +30 -2
  252. package/src/geometries/ExtrudeGeometry.js +52 -0
  253. package/src/geometries/IcosahedronGeometry.js +32 -0
  254. package/src/geometries/LatheGeometry.js +43 -3
  255. package/src/geometries/OctahedronGeometry.js +32 -0
  256. package/src/geometries/PlaneGeometry.js +34 -0
  257. package/src/geometries/PolyhedronGeometry.js +29 -0
  258. package/src/geometries/RingGeometry.js +36 -0
  259. package/src/geometries/ShapeGeometry.js +37 -0
  260. package/src/geometries/SphereGeometry.js +37 -0
  261. package/src/geometries/TetrahedronGeometry.js +32 -0
  262. package/src/geometries/TorusGeometry.js +35 -0
  263. package/src/geometries/TorusKnotGeometry.js +38 -0
  264. package/src/geometries/TubeGeometry.js +49 -0
  265. package/src/geometries/WireframeGeometry.js +32 -0
  266. package/src/helpers/ArrowHelper.js +60 -3
  267. package/src/helpers/AxesHelper.js +28 -0
  268. package/src/helpers/Box3Helper.js +28 -0
  269. package/src/helpers/BoxHelper.js +43 -7
  270. package/src/helpers/CameraHelper.js +61 -18
  271. package/src/helpers/DirectionalLightHelper.js +52 -0
  272. package/src/helpers/GridHelper.js +26 -0
  273. package/src/helpers/HemisphereLightHelper.js +39 -0
  274. package/src/helpers/PlaneHelper.js +33 -0
  275. package/src/helpers/PointLightHelper.js +43 -0
  276. package/src/helpers/PolarGridHelper.js +30 -0
  277. package/src/helpers/SkeletonHelper.js +39 -2
  278. package/src/helpers/SpotLightHelper.js +40 -0
  279. package/src/lights/AmbientLight.js +25 -0
  280. package/src/lights/DirectionalLight.js +57 -0
  281. package/src/lights/DirectionalLightShadow.js +15 -0
  282. package/src/lights/HemisphereLight.js +32 -0
  283. package/src/lights/Light.js +36 -0
  284. package/src/lights/LightProbe.js +43 -0
  285. package/src/lights/LightShadow.js +159 -0
  286. package/src/lights/PointLight.js +59 -0
  287. package/src/lights/PointLightShadow.js +21 -0
  288. package/src/lights/RectAreaLight.js +59 -0
  289. package/src/lights/SpotLight.js +102 -0
  290. package/src/lights/SpotLightShadow.js +24 -2
  291. package/src/lights/webgpu/IESSpotLight.js +21 -0
  292. package/src/loaders/Loader.js +132 -0
  293. package/src/loaders/MaterialLoader.js +7 -1
  294. package/src/loaders/nodes/NodeLoader.js +189 -0
  295. package/src/loaders/nodes/NodeMaterialLoader.js +108 -0
  296. package/src/loaders/nodes/NodeObjectLoader.js +151 -0
  297. package/src/materials/LineDashedMaterial.js +0 -1
  298. package/src/materials/Material.js +469 -7
  299. package/src/materials/MeshPhongMaterial.js +1 -1
  300. package/src/materials/MeshPhysicalMaterial.js +2 -2
  301. package/src/materials/MeshStandardMaterial.js +2 -2
  302. package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +192 -82
  303. package/src/materials/nodes/LineBasicNodeMaterial.js +46 -0
  304. package/src/materials/nodes/LineDashedNodeMaterial.js +132 -0
  305. package/src/materials/nodes/MeshBasicNodeMaterial.js +133 -0
  306. package/src/materials/nodes/MeshLambertNodeMaterial.js +82 -0
  307. package/src/materials/nodes/MeshMatcapNodeMaterial.js +77 -0
  308. package/src/materials/nodes/MeshNormalNodeMaterial.js +67 -0
  309. package/src/materials/nodes/MeshPhongNodeMaterial.js +141 -0
  310. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +517 -0
  311. package/src/materials/nodes/MeshSSSNodeMaterial.js +175 -0
  312. package/src/materials/nodes/MeshStandardNodeMaterial.js +186 -0
  313. package/src/materials/nodes/MeshToonNodeMaterial.js +66 -0
  314. package/src/materials/nodes/NodeMaterial.js +1180 -0
  315. package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +3 -2
  316. package/src/materials/nodes/PointsNodeMaterial.js +153 -0
  317. package/src/materials/nodes/ShadowNodeMaterial.js +67 -0
  318. package/src/materials/nodes/SpriteNodeMaterial.js +198 -0
  319. package/src/materials/nodes/VolumeNodeMaterial.js +72 -0
  320. package/src/materials/nodes/manager/NodeMaterialObserver.js +509 -0
  321. package/src/math/Box2.js +177 -0
  322. package/src/math/Box3.js +243 -0
  323. package/src/math/Color.js +343 -0
  324. package/src/math/ColorManagement.js +143 -102
  325. package/src/math/Cylindrical.js +65 -6
  326. package/src/math/Euler.js +137 -4
  327. package/src/math/Frustum.js +83 -0
  328. package/src/math/Interpolant.js +87 -8
  329. package/src/math/Line3.js +96 -2
  330. package/src/math/MathUtils.js +182 -19
  331. package/src/math/Matrix2.js +70 -0
  332. package/src/math/Matrix3.js +229 -4
  333. package/src/math/Matrix4.js +368 -3
  334. package/src/math/Plane.js +164 -2
  335. package/src/math/Quaternion.js +265 -9
  336. package/src/math/Ray.js +160 -0
  337. package/src/math/Sphere.js +147 -0
  338. package/src/math/Spherical.js +73 -11
  339. package/src/math/SphericalHarmonics3.js +112 -14
  340. package/src/math/Triangle.js +230 -2
  341. package/src/math/Vector2.js +396 -10
  342. package/src/math/Vector3.js +550 -13
  343. package/src/math/Vector4.js +415 -9
  344. package/src/math/interpolants/CubicInterpolant.js +10 -1
  345. package/src/math/interpolants/DiscreteInterpolant.js +10 -2
  346. package/src/math/interpolants/LinearInterpolant.js +13 -0
  347. package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
  348. package/src/nodes/Nodes.js +84 -166
  349. package/src/nodes/TSL.js +167 -0
  350. package/src/nodes/accessors/AccessorsUtils.js +39 -10
  351. package/src/nodes/accessors/Arrays.js +68 -0
  352. package/src/nodes/accessors/BatchNode.js +93 -26
  353. package/src/nodes/accessors/Bitangent.js +54 -0
  354. package/src/nodes/accessors/BufferAttributeNode.js +189 -11
  355. package/src/nodes/accessors/BufferNode.js +70 -5
  356. package/src/nodes/accessors/BuiltinNode.js +63 -0
  357. package/src/nodes/accessors/Camera.js +129 -0
  358. package/src/nodes/accessors/ClippingNode.js +152 -43
  359. package/src/nodes/accessors/CubeTextureNode.js +76 -13
  360. package/src/nodes/accessors/InstanceNode.js +118 -35
  361. package/src/nodes/accessors/InstancedMeshNode.js +50 -0
  362. package/src/nodes/accessors/Lights.js +129 -0
  363. package/src/nodes/accessors/MaterialNode.js +394 -58
  364. package/src/nodes/accessors/MaterialProperties.js +57 -1
  365. package/src/nodes/accessors/MaterialReferenceNode.js +60 -18
  366. package/src/nodes/accessors/ModelNode.js +159 -12
  367. package/src/nodes/accessors/ModelViewProjectionNode.js +10 -36
  368. package/src/nodes/accessors/MorphNode.js +60 -13
  369. package/src/nodes/accessors/Normal.js +156 -0
  370. package/src/nodes/accessors/Object3DNode.js +154 -35
  371. package/src/nodes/accessors/PointUVNode.js +35 -6
  372. package/src/nodes/accessors/Position.js +64 -0
  373. package/src/nodes/accessors/ReferenceBaseNode.js +357 -0
  374. package/src/nodes/accessors/ReferenceNode.js +243 -6
  375. package/src/nodes/accessors/ReflectVector.js +36 -0
  376. package/src/nodes/accessors/RendererReferenceNode.js +57 -7
  377. package/src/nodes/accessors/SceneNode.js +98 -6
  378. package/src/nodes/accessors/SkinningNode.js +214 -21
  379. package/src/nodes/accessors/StorageBufferNode.js +288 -28
  380. package/src/nodes/accessors/StorageTextureNode.js +139 -12
  381. package/src/nodes/accessors/Tangent.js +62 -0
  382. package/src/nodes/accessors/Texture3DNode.js +98 -12
  383. package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +14 -34
  384. package/src/nodes/accessors/TextureNode.js +347 -34
  385. package/src/nodes/accessors/TextureSizeNode.js +51 -9
  386. package/src/nodes/accessors/UV.js +11 -0
  387. package/src/nodes/accessors/UniformArrayNode.js +241 -32
  388. package/src/nodes/accessors/UserDataNode.js +55 -7
  389. package/src/nodes/accessors/VelocityNode.js +223 -0
  390. package/src/nodes/accessors/VertexColorNode.js +45 -6
  391. package/src/nodes/code/CodeNode.js +108 -8
  392. package/src/nodes/code/ExpressionNode.js +38 -7
  393. package/src/nodes/code/FunctionCallNode.js +62 -11
  394. package/src/nodes/code/FunctionNode.js +54 -24
  395. package/src/nodes/code/ScriptableNode.js +241 -17
  396. package/src/nodes/code/ScriptableValueNode.js +93 -8
  397. package/src/nodes/core/ArrayNode.js +142 -0
  398. package/src/nodes/core/AssignNode.js +60 -12
  399. package/src/nodes/core/AttributeNode.js +55 -22
  400. package/src/nodes/core/BypassNode.js +59 -11
  401. package/src/nodes/core/CacheNode.js +64 -10
  402. package/src/nodes/core/ConstNode.js +38 -3
  403. package/src/nodes/core/ContextNode.js +87 -12
  404. package/src/nodes/core/IndexNode.js +102 -10
  405. package/src/nodes/core/InputNode.js +55 -3
  406. package/src/nodes/core/LightingModel.js +65 -5
  407. package/src/nodes/core/MRTNode.js +81 -7
  408. package/src/nodes/core/Node.js +368 -50
  409. package/src/nodes/core/NodeAttribute.js +38 -0
  410. package/src/nodes/core/NodeBuilder.js +1317 -83
  411. package/src/nodes/core/NodeCache.js +41 -2
  412. package/src/nodes/core/NodeCode.js +31 -0
  413. package/src/nodes/core/NodeFrame.js +123 -2
  414. package/src/nodes/core/NodeFunction.js +46 -0
  415. package/src/nodes/core/NodeFunctionInput.js +44 -0
  416. package/src/nodes/core/NodeParser.js +11 -0
  417. package/src/nodes/core/NodeUniform.js +52 -0
  418. package/src/nodes/core/NodeUtils.js +226 -6
  419. package/src/nodes/core/NodeVar.js +47 -1
  420. package/src/nodes/core/NodeVarying.js +28 -0
  421. package/src/nodes/core/OutputStructNode.js +61 -17
  422. package/src/nodes/core/ParameterNode.js +34 -4
  423. package/src/nodes/core/PropertyNode.js +296 -32
  424. package/src/nodes/core/StackNode.js +108 -8
  425. package/src/nodes/core/StructNode.js +120 -0
  426. package/src/nodes/core/StructType.js +13 -0
  427. package/src/nodes/core/StructTypeNode.js +116 -9
  428. package/src/nodes/core/TempNode.js +37 -7
  429. package/src/nodes/core/UniformGroupNode.js +98 -17
  430. package/src/nodes/core/UniformNode.js +72 -4
  431. package/src/nodes/core/VarNode.js +170 -13
  432. package/src/nodes/core/VaryingNode.js +109 -8
  433. package/src/nodes/core/constants.js +40 -0
  434. package/src/nodes/display/BlendModes.js +193 -0
  435. package/src/nodes/display/BumpMapNode.js +47 -10
  436. package/src/nodes/display/ColorAdjustment.js +141 -0
  437. package/src/nodes/display/ColorSpaceFunctions.js +54 -0
  438. package/src/nodes/display/ColorSpaceNode.js +147 -68
  439. package/src/nodes/display/FrontFacingNode.js +39 -6
  440. package/src/nodes/display/NormalMapNode.js +55 -13
  441. package/src/nodes/display/PassNode.js +420 -19
  442. package/src/nodes/display/PosterizeNode.js +40 -7
  443. package/src/nodes/display/RenderOutputNode.js +81 -13
  444. package/src/nodes/display/ScreenNode.js +286 -0
  445. package/src/nodes/display/ToneMappingFunctions.js +242 -0
  446. package/src/nodes/display/ToneMappingNode.js +68 -175
  447. package/src/nodes/display/ToonOutlinePassNode.js +183 -0
  448. package/src/nodes/display/ViewportDepthNode.js +210 -36
  449. package/src/nodes/display/ViewportDepthTextureNode.js +32 -9
  450. package/src/nodes/display/ViewportSharedTextureNode.js +32 -9
  451. package/src/nodes/display/ViewportTextureNode.js +68 -11
  452. package/src/nodes/fog/Fog.js +113 -0
  453. package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
  454. package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  455. package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
  456. package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
  457. package/src/nodes/functions/BSDF/D_GGX.js +2 -2
  458. package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
  459. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  460. package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
  461. package/src/nodes/functions/BSDF/LTC.js +50 -6
  462. package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  463. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
  464. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  465. package/src/nodes/functions/BasicLightingModel.js +27 -6
  466. package/src/nodes/functions/PhongLightingModel.js +38 -8
  467. package/src/nodes/functions/PhysicalLightingModel.js +215 -51
  468. package/src/nodes/functions/ShadowMaskModel.js +24 -1
  469. package/src/nodes/functions/ToonLightingModel.js +24 -5
  470. package/src/nodes/functions/VolumetricLightingModel.js +183 -0
  471. package/src/nodes/functions/material/getAlphaHashThreshold.js +68 -0
  472. package/src/nodes/functions/material/getGeometryRoughness.js +10 -4
  473. package/src/nodes/functions/material/getParallaxCorrectNormal.js +37 -0
  474. package/src/nodes/functions/material/getRoughness.js +2 -2
  475. package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
  476. package/src/nodes/geometry/RangeNode.js +62 -7
  477. package/src/nodes/gpgpu/AtomicFunctionNode.js +280 -0
  478. package/src/nodes/gpgpu/BarrierNode.js +89 -0
  479. package/src/nodes/gpgpu/ComputeBuiltinNode.js +227 -0
  480. package/src/nodes/gpgpu/ComputeNode.js +124 -9
  481. package/src/nodes/gpgpu/WorkgroupInfoNode.js +208 -0
  482. package/src/nodes/lighting/AONode.js +24 -3
  483. package/src/nodes/lighting/AmbientLightNode.js +16 -8
  484. package/src/nodes/lighting/AnalyticLightNode.js +151 -231
  485. package/src/nodes/lighting/BasicEnvironmentNode.js +25 -3
  486. package/src/nodes/lighting/BasicLightMapNode.js +25 -5
  487. package/src/nodes/lighting/DirectionalLightNode.js +19 -20
  488. package/src/nodes/lighting/EnvironmentNode.js +34 -17
  489. package/src/nodes/lighting/HemisphereLightNode.js +42 -11
  490. package/src/nodes/lighting/IESSpotLightNode.js +18 -9
  491. package/src/nodes/lighting/IrradianceNode.js +23 -3
  492. package/src/nodes/lighting/LightProbeNode.js +29 -36
  493. package/src/nodes/lighting/LightUtils.js +12 -4
  494. package/src/nodes/lighting/LightingContextNode.js +70 -21
  495. package/src/nodes/lighting/LightingNode.js +22 -9
  496. package/src/nodes/lighting/LightsNode.js +309 -86
  497. package/src/nodes/lighting/PointLightNode.js +66 -32
  498. package/src/nodes/lighting/PointShadowNode.js +306 -0
  499. package/src/nodes/lighting/RectAreaLightNode.js +61 -25
  500. package/src/nodes/lighting/ShadowBaseNode.js +92 -0
  501. package/src/nodes/lighting/ShadowNode.js +812 -0
  502. package/src/nodes/lighting/SpotLightNode.js +73 -31
  503. package/src/nodes/materialx/MaterialXNodes.js +2 -2
  504. package/src/nodes/materialx/lib/mx_hsv.js +27 -22
  505. package/src/nodes/materialx/lib/mx_noise.js +70 -70
  506. package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
  507. package/src/nodes/math/ConditionalNode.js +230 -0
  508. package/src/nodes/math/Hash.js +21 -0
  509. package/src/nodes/math/MathNode.js +812 -131
  510. package/src/nodes/math/MathUtils.js +47 -8
  511. package/src/nodes/math/OperatorNode.js +410 -66
  512. package/src/nodes/math/TriNoise3D.js +32 -32
  513. package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
  514. package/src/nodes/parsers/GLSLNodeParser.js +11 -0
  515. package/src/nodes/pmrem/PMREMNode.js +188 -28
  516. package/src/nodes/pmrem/PMREMUtils.js +24 -24
  517. package/src/nodes/procedural/Checker.js +22 -0
  518. package/src/nodes/shapes/Shapes.js +32 -0
  519. package/src/nodes/tsl/TSLBase.js +31 -0
  520. package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +114 -98
  521. package/src/nodes/utils/ArrayElementNode.js +45 -5
  522. package/src/nodes/utils/ConvertNode.js +39 -4
  523. package/src/nodes/utils/CubeMapNode.js +88 -8
  524. package/src/nodes/utils/Discard.js +24 -0
  525. package/src/nodes/utils/EquirectUVNode.js +39 -7
  526. package/src/nodes/utils/FlipNode.js +106 -0
  527. package/src/nodes/utils/FunctionOverloadingNode.js +61 -6
  528. package/src/nodes/utils/JoinNode.js +31 -3
  529. package/src/nodes/utils/LoopNode.js +95 -9
  530. package/src/nodes/utils/MatcapUVNode.js +27 -8
  531. package/src/nodes/utils/MaxMipLevelNode.js +57 -6
  532. package/src/nodes/utils/MemberNode.js +68 -0
  533. package/src/nodes/utils/Oscillators.js +41 -0
  534. package/src/nodes/utils/Packing.js +21 -0
  535. package/src/nodes/utils/PostProcessingUtils.js +95 -0
  536. package/src/nodes/utils/RTTNode.js +141 -9
  537. package/src/nodes/utils/ReflectorNode.js +295 -21
  538. package/src/nodes/utils/RemapNode.js +93 -10
  539. package/src/nodes/utils/RotateNode.js +48 -13
  540. package/src/nodes/utils/SetNode.js +50 -4
  541. package/src/nodes/utils/SplitNode.js +62 -6
  542. package/src/nodes/utils/SpriteSheetUVNode.js +56 -7
  543. package/src/nodes/utils/SpriteUtils.js +21 -5
  544. package/src/nodes/utils/StorageArrayElementNode.js +64 -12
  545. package/src/nodes/utils/Timer.js +73 -0
  546. package/src/nodes/utils/TriplanarTexturesNode.js +96 -10
  547. package/src/nodes/utils/UVUtils.js +27 -9
  548. package/src/nodes/utils/ViewportUtils.js +16 -4
  549. package/src/objects/BatchedMesh.js +808 -281
  550. package/src/objects/Bone.js +24 -0
  551. package/src/objects/ClippingGroup.js +68 -0
  552. package/src/objects/Group.js +24 -0
  553. package/src/objects/InstancedMesh.js +120 -2
  554. package/src/objects/LOD.js +120 -5
  555. package/src/objects/Line.js +89 -6
  556. package/src/objects/LineLoop.js +20 -0
  557. package/src/objects/LineSegments.js +18 -0
  558. package/src/objects/Mesh.js +82 -23
  559. package/src/objects/Points.js +62 -0
  560. package/src/objects/Skeleton.js +107 -2
  561. package/src/objects/SkinnedMesh.js +99 -5
  562. package/src/objects/Sprite.js +54 -0
  563. package/src/renderers/WebGLRenderer.js +274 -157
  564. package/src/renderers/common/Animation.js +109 -12
  565. package/src/renderers/common/Attributes.js +40 -0
  566. package/src/renderers/common/Backend.js +504 -44
  567. package/src/renderers/common/Background.js +67 -9
  568. package/src/renderers/common/BindGroup.js +45 -1
  569. package/src/renderers/common/Binding.js +35 -0
  570. package/src/renderers/common/Bindings.js +136 -19
  571. package/src/renderers/common/Buffer.js +49 -0
  572. package/src/renderers/common/BufferUtils.js +25 -0
  573. package/src/renderers/common/BundleGroup.js +83 -0
  574. package/src/renderers/common/ChainMap.js +45 -6
  575. package/src/renderers/common/ClippingContext.js +175 -80
  576. package/src/renderers/common/Color4.js +40 -0
  577. package/src/renderers/common/ComputePipeline.js +24 -0
  578. package/src/renderers/common/Constants.js +2 -1
  579. package/src/renderers/common/CubeRenderTarget.js +22 -3
  580. package/src/renderers/common/DataMap.js +37 -1
  581. package/src/renderers/common/Geometries.js +111 -14
  582. package/src/renderers/common/IndirectStorageBufferAttribute.js +38 -0
  583. package/src/renderers/common/Info.js +78 -35
  584. package/src/renderers/common/Lighting.js +73 -0
  585. package/src/renderers/common/Pipeline.js +22 -0
  586. package/src/renderers/common/Pipelines.js +148 -5
  587. package/src/renderers/common/PostProcessing.js +112 -11
  588. package/src/renderers/common/ProgrammableStage.js +60 -2
  589. package/src/renderers/common/QuadMesh.js +56 -5
  590. package/src/renderers/common/RenderBundle.js +14 -8
  591. package/src/renderers/common/RenderBundles.js +39 -10
  592. package/src/renderers/common/RenderContext.js +205 -7
  593. package/src/renderers/common/RenderContexts.js +59 -6
  594. package/src/renderers/common/RenderList.js +230 -21
  595. package/src/renderers/common/RenderLists.js +45 -6
  596. package/src/renderers/common/RenderObject.js +552 -41
  597. package/src/renderers/common/RenderObjects.js +118 -9
  598. package/src/renderers/common/RenderPipeline.js +24 -0
  599. package/src/renderers/common/Renderer.js +1537 -239
  600. package/src/renderers/common/RendererUtils.js +191 -0
  601. package/src/renderers/common/SampledTexture.js +132 -3
  602. package/src/renderers/common/Sampler.js +30 -0
  603. package/src/renderers/common/StorageBuffer.js +24 -0
  604. package/src/renderers/common/StorageBufferAttribute.js +31 -2
  605. package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
  606. package/src/renderers/common/StorageTexture.js +38 -0
  607. package/src/renderers/common/Textures.js +142 -32
  608. package/src/renderers/common/TimestampQueryPool.js +98 -0
  609. package/src/renderers/common/Uniform.js +225 -3
  610. package/src/renderers/common/UniformBuffer.js +19 -0
  611. package/src/renderers/common/UniformsGroup.js +157 -6
  612. package/src/renderers/common/XRManager.js +1185 -0
  613. package/src/renderers/common/XRRenderTarget.js +74 -0
  614. package/src/renderers/common/extras/PMREMGenerator.js +211 -53
  615. package/src/renderers/common/nodes/NodeBuilderState.js +100 -6
  616. package/src/renderers/common/nodes/NodeLibrary.js +194 -0
  617. package/src/renderers/common/nodes/NodeSampledTexture.js +92 -4
  618. package/src/renderers/common/nodes/NodeSampler.js +28 -0
  619. package/src/renderers/common/nodes/NodeStorageBuffer.js +37 -3
  620. package/src/renderers/common/nodes/NodeUniform.js +285 -2
  621. package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
  622. package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
  623. package/src/renderers/common/nodes/Nodes.js +390 -70
  624. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -24
  625. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
  626. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
  627. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -2
  628. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
  629. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
  630. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
  631. package/src/renderers/webgl/WebGLAttributes.js +45 -14
  632. package/src/renderers/webgl/WebGLBackground.js +24 -1
  633. package/src/renderers/webgl/WebGLBufferRenderer.js +2 -6
  634. package/src/renderers/webgl/WebGLCapabilities.js +2 -0
  635. package/src/renderers/webgl/WebGLGeometries.js +0 -28
  636. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +2 -6
  637. package/src/renderers/webgl/WebGLProgram.js +27 -29
  638. package/src/renderers/webgl/WebGLPrograms.js +24 -16
  639. package/src/renderers/webgl/WebGLState.js +68 -11
  640. package/src/renderers/webgl/WebGLTextures.js +49 -10
  641. package/src/renderers/webgl-fallback/WebGLBackend.js +1055 -238
  642. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +5 -10
  643. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +425 -48
  644. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +64 -1
  645. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
  646. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
  647. package/src/renderers/webgl-fallback/utils/WebGLState.js +419 -14
  648. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +281 -59
  649. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +367 -0
  650. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
  651. package/src/renderers/webgpu/WebGPUBackend.js +816 -236
  652. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +78 -0
  653. package/src/renderers/webgpu/WebGPURenderer.js +45 -6
  654. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +63 -0
  655. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +97 -0
  656. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +954 -147
  657. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +29 -4
  658. package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
  659. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +147 -31
  660. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +213 -31
  661. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +146 -28
  662. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +161 -7
  663. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +333 -50
  664. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +287 -0
  665. package/src/renderers/webgpu/utils/WebGPUUtils.js +131 -3
  666. package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
  667. package/src/renderers/webxr/WebXRManager.js +54 -32
  668. package/src/scenes/Fog.js +60 -0
  669. package/src/scenes/FogExp2.js +51 -0
  670. package/src/scenes/Scene.js +87 -0
  671. package/src/textures/Data3DTexture.js +2 -2
  672. package/src/textures/DepthTexture.js +2 -0
  673. package/src/textures/Source.js +2 -2
  674. package/src/textures/Texture.js +368 -5
  675. package/src/textures/VideoFrameTexture.js +35 -0
  676. package/src/utils.js +33 -1
  677. package/examples/jsm/animation/MMDAnimationHelper.js +0 -1207
  678. package/examples/jsm/animation/MMDPhysics.js +0 -1406
  679. package/examples/jsm/cameras/CinematicCamera.js +0 -208
  680. package/examples/jsm/controls/Controls.js +0 -32
  681. package/examples/jsm/exporters/MMDExporter.js +0 -217
  682. package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -174
  683. package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
  684. package/examples/jsm/libs/mmdparser.module.js +0 -11530
  685. package/examples/jsm/loaders/LogLuvLoader.js +0 -606
  686. package/examples/jsm/loaders/MMDLoader.js +0 -2295
  687. package/examples/jsm/loaders/TiltLoader.js +0 -520
  688. package/examples/jsm/objects/InstancedPoints.js +0 -21
  689. package/examples/jsm/shaders/MMDToonShader.js +0 -134
  690. package/examples/jsm/utils/GPUStatsPanel.js +0 -95
  691. package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
  692. package/src/nodes/accessors/BitangentNode.js +0 -13
  693. package/src/nodes/accessors/CameraNode.js +0 -19
  694. package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
  695. package/src/nodes/accessors/NormalNode.js +0 -14
  696. package/src/nodes/accessors/PositionNode.js +0 -10
  697. package/src/nodes/accessors/ReflectVectorNode.js +0 -10
  698. package/src/nodes/accessors/TangentNode.js +0 -23
  699. package/src/nodes/accessors/UVNode.js +0 -3
  700. package/src/nodes/core/NodeKeywords.js +0 -80
  701. package/src/nodes/core/UniformGroup.js +0 -13
  702. package/src/nodes/display/AfterImageNode.js +0 -152
  703. package/src/nodes/display/AnamorphicNode.js +0 -145
  704. package/src/nodes/display/BlendModeNode.js +0 -128
  705. package/src/nodes/display/ColorAdjustmentNode.js +0 -104
  706. package/src/nodes/display/DenoiseNode.js +0 -198
  707. package/src/nodes/display/DotScreenNode.js +0 -75
  708. package/src/nodes/display/FXAANode.js +0 -327
  709. package/src/nodes/display/FilmNode.js +0 -52
  710. package/src/nodes/display/GTAONode.js +0 -324
  711. package/src/nodes/display/GaussianBlurNode.js +0 -207
  712. package/src/nodes/display/Lut3DNode.js +0 -53
  713. package/src/nodes/display/RGBShiftNode.js +0 -49
  714. package/src/nodes/display/SepiaNode.js +0 -18
  715. package/src/nodes/display/TransitionNode.js +0 -76
  716. package/src/nodes/display/ViewportNode.js +0 -137
  717. package/src/nodes/fog/FogExp2Node.js +0 -34
  718. package/src/nodes/fog/FogNode.js +0 -48
  719. package/src/nodes/fog/FogRangeNode.js +0 -35
  720. package/src/nodes/lighting/LightNode.js +0 -57
  721. package/src/nodes/loaders/NodeLoader.js +0 -110
  722. package/src/nodes/loaders/NodeMaterialLoader.js +0 -60
  723. package/src/nodes/loaders/NodeObjectLoader.js +0 -71
  724. package/src/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
  725. package/src/nodes/materials/LineBasicNodeMaterial.js +0 -28
  726. package/src/nodes/materials/LineDashedNodeMaterial.js +0 -55
  727. package/src/nodes/materials/MeshBasicNodeMaterial.js +0 -73
  728. package/src/nodes/materials/MeshLambertNodeMaterial.js +0 -43
  729. package/src/nodes/materials/MeshMatcapNodeMaterial.js +0 -53
  730. package/src/nodes/materials/MeshNormalNodeMaterial.js +0 -40
  731. package/src/nodes/materials/MeshPhongNodeMaterial.js +0 -74
  732. package/src/nodes/materials/MeshPhysicalNodeMaterial.js +0 -244
  733. package/src/nodes/materials/MeshSSSNodeMaterial.js +0 -84
  734. package/src/nodes/materials/MeshStandardNodeMaterial.js +0 -104
  735. package/src/nodes/materials/MeshToonNodeMaterial.js +0 -34
  736. package/src/nodes/materials/NodeMaterial.js +0 -680
  737. package/src/nodes/materials/PointsNodeMaterial.js +0 -39
  738. package/src/nodes/materials/ShadowNodeMaterial.js +0 -34
  739. package/src/nodes/materials/SpriteNodeMaterial.js +0 -90
  740. package/src/nodes/materials/VolumeNodeMaterial.js +0 -106
  741. package/src/nodes/math/CondNode.js +0 -139
  742. package/src/nodes/math/HashNode.js +0 -34
  743. package/src/nodes/procedural/CheckerNode.js +0 -42
  744. package/src/nodes/utils/DiscardNode.js +0 -28
  745. package/src/nodes/utils/OscNode.js +0 -81
  746. package/src/nodes/utils/PackingNode.js +0 -55
  747. package/src/nodes/utils/TimerNode.js +0 -94
@@ -20,7 +20,6 @@ import {
20
20
  * Loads geometry with uv and materials basic properties with texture support.
21
21
  *
22
22
  * @class TDSLoader
23
- * @constructor
24
23
  */
25
24
 
26
25
  class TDSLoader extends Loader {
@@ -42,7 +41,7 @@ class TDSLoader extends Loader {
42
41
  * Load 3ds file from url.
43
42
  *
44
43
  * @method load
45
- * @param {[type]} url URL for the file.
44
+ * @param {string} url URL for the file.
46
45
  * @param {Function} onLoad onLoad callback, receives group Object3D as argument.
47
46
  * @param {Function} onProgress onProgress callback.
48
47
  * @param {Function} onError onError callback.
@@ -90,7 +89,7 @@ class TDSLoader extends Loader {
90
89
  *
91
90
  * @method parse
92
91
  * @param {ArrayBuffer} arraybuffer Arraybuffer data to be loaded.
93
- * @param {String} path Path for external resources.
92
+ * @param {string} path Path for external resources.
94
93
  * @return {Group} Group loaded from 3ds file.
95
94
  */
96
95
  parse( arraybuffer, path ) {
@@ -116,7 +115,7 @@ class TDSLoader extends Loader {
116
115
  *
117
116
  * @method readFile
118
117
  * @param {ArrayBuffer} arraybuffer Arraybuffer data to be loaded.
119
- * @param {String} path Path for external resources.
118
+ * @param {string} path Path for external resources.
120
119
  */
121
120
  readFile( arraybuffer, path ) {
122
121
 
@@ -159,7 +158,7 @@ class TDSLoader extends Loader {
159
158
  *
160
159
  * @method readMeshData
161
160
  * @param {Chunk} chunk to read mesh from
162
- * @param {String} path Path for external resources.
161
+ * @param {string} path Path for external resources.
163
162
  */
164
163
  readMeshData( chunk, path ) {
165
164
 
@@ -236,7 +235,7 @@ class TDSLoader extends Loader {
236
235
  *
237
236
  * @method readMaterialEntry
238
237
  * @param {Chunk} chunk Chunk in use.
239
- * @param {String} path Path for external resources.
238
+ * @param {string} path Path for external resources.
240
239
  */
241
240
  readMaterialEntry( chunk, path ) {
242
241
 
@@ -398,7 +397,7 @@ class TDSLoader extends Loader {
398
397
 
399
398
  } else if ( next.id === MESH_MATRIX ) {
400
399
 
401
- this.debugMessage( ' Tranformation Matrix (TODO)' );
400
+ this.debugMessage( ' Transformation Matrix (TODO)' );
402
401
 
403
402
  const values = [];
404
403
  for ( let i = 0; i < 12; i ++ ) {
@@ -530,7 +529,7 @@ class TDSLoader extends Loader {
530
529
  *
531
530
  * @method readMap
532
531
  * @param {Chunk} chunk Chunk in use.
533
- * @param {String} path Path for external resources.
532
+ * @param {string} path Path for external resources.
534
533
  * @return {Texture} Texture read from this data chunk.
535
534
  */
536
535
  readMap( chunk, path ) {
@@ -657,7 +656,7 @@ class TDSLoader extends Loader {
657
656
  *
658
657
  * @method readPercentage
659
658
  * @param {Chunk} chunk Chunk to read data from.
660
- * @return {Number} Data read from the dataview.
659
+ * @return {number} Data read from the dataview.
661
660
  */
662
661
  readPercentage( chunk ) {
663
662
 
@@ -710,7 +709,7 @@ class Chunk {
710
709
  *
711
710
  * @class Chunk
712
711
  * @param {DataView} data DataView to read from.
713
- * @param {Number} position in data.
712
+ * @param {number} position in data.
714
713
  * @param {Function} debugMessage logging callback.
715
714
  */
716
715
  constructor( data, position, debugMessage ) {
@@ -773,7 +772,7 @@ class Chunk {
773
772
  * return the ID of this chunk as Hex
774
773
  *
775
774
  * @method idToString
776
- * @return {String} hex-string of id
775
+ * @return {string} hex-string of id
777
776
  */
778
777
  get hexId() {
779
778
 
@@ -791,7 +790,7 @@ class Chunk {
791
790
  * Read byte value.
792
791
  *
793
792
  * @method readByte
794
- * @return {Number} Data read from the dataview.
793
+ * @return {number} Data read from the dataview.
795
794
  */
796
795
  readByte() {
797
796
 
@@ -805,7 +804,7 @@ class Chunk {
805
804
  * Read 32 bit float value.
806
805
  *
807
806
  * @method readFloat
808
- * @return {Number} Data read from the dataview.
807
+ * @return {number} Data read from the dataview.
809
808
  */
810
809
  readFloat() {
811
810
 
@@ -828,7 +827,7 @@ class Chunk {
828
827
  * Read 32 bit signed integer value.
829
828
  *
830
829
  * @method readInt
831
- * @return {Number} Data read from the dataview.
830
+ * @return {number} Data read from the dataview.
832
831
  */
833
832
  readInt() {
834
833
 
@@ -842,7 +841,7 @@ class Chunk {
842
841
  * Read 16 bit signed integer value.
843
842
  *
844
843
  * @method readShort
845
- * @return {Number} Data read from the dataview.
844
+ * @return {number} Data read from the dataview.
846
845
  */
847
846
  readShort() {
848
847
 
@@ -856,7 +855,7 @@ class Chunk {
856
855
  * Read 64 bit unsigned integer value.
857
856
  *
858
857
  * @method readDWord
859
- * @return {Number} Data read from the dataview.
858
+ * @return {number} Data read from the dataview.
860
859
  */
861
860
  readDWord() {
862
861
 
@@ -870,7 +869,7 @@ class Chunk {
870
869
  * Read 32 bit unsigned integer value.
871
870
  *
872
871
  * @method readWord
873
- * @return {Number} Data read from the dataview.
872
+ * @return {number} Data read from the dataview.
874
873
  */
875
874
  readWord() {
876
875
 
@@ -884,7 +883,7 @@ class Chunk {
884
883
  * Read NULL terminated ASCII string value from chunk-pos.
885
884
  *
886
885
  * @method readString
887
- * @return {String} Data read from the dataview.
886
+ * @return {string} Data read from the dataview.
888
887
  */
889
888
  readString() {
890
889
 
@@ -5,6 +5,7 @@ import {
5
5
  BufferGeometry,
6
6
  ClampToEdgeWrapping,
7
7
  Color,
8
+ ColorManagement,
8
9
  ConeGeometry,
9
10
  CylinderGeometry,
10
11
  DataTexture,
@@ -249,7 +250,7 @@ class VRMLLoader extends Loader {
249
250
 
250
251
  function createVisitor( BaseVRMLVisitor ) {
251
252
 
252
- // the visitor is created dynmaically based on the given base class
253
+ // the visitor is created dynamically based on the given base class
253
254
 
254
255
  class VRMLToASTVisitor extends BaseVRMLVisitor {
255
256
 
@@ -918,8 +919,7 @@ class VRMLLoader extends Loader {
918
919
 
919
920
  } else {
920
921
 
921
- skyMaterial.color.setRGB( skyColor[ 0 ], skyColor[ 1 ], skyColor[ 2 ] );
922
- skyMaterial.color.convertSRGBToLinear();
922
+ skyMaterial.color.setRGB( skyColor[ 0 ], skyColor[ 1 ], skyColor[ 2 ], SRGBColorSpace );
923
923
 
924
924
  }
925
925
 
@@ -1240,13 +1240,11 @@ class VRMLLoader extends Loader {
1240
1240
  break;
1241
1241
 
1242
1242
  case 'diffuseColor':
1243
- materialData.diffuseColor = new Color( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ] );
1244
- materialData.diffuseColor.convertSRGBToLinear();
1243
+ materialData.diffuseColor = new Color().setRGB( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ], SRGBColorSpace );
1245
1244
  break;
1246
1245
 
1247
1246
  case 'emissiveColor':
1248
- materialData.emissiveColor = new Color( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ] );
1249
- materialData.emissiveColor.convertSRGBToLinear();
1247
+ materialData.emissiveColor = new Color().setRGB( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ], SRGBColorSpace );
1250
1248
  break;
1251
1249
 
1252
1250
  case 'shininess':
@@ -1254,8 +1252,7 @@ class VRMLLoader extends Loader {
1254
1252
  break;
1255
1253
 
1256
1254
  case 'specularColor':
1257
- materialData.specularColor = new Color( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ] );
1258
- materialData.specularColor.convertSRGBToLinear();
1255
+ materialData.specularColor = new Color().setRGB( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ], SRGBColorSpace );
1259
1256
  break;
1260
1257
 
1261
1258
  case 'transparency':
@@ -1893,7 +1890,7 @@ class VRMLLoader extends Loader {
1893
1890
 
1894
1891
  // if the colorIndex field is not empty, then one color is used for each polyline of the IndexedLineSet.
1895
1892
 
1896
- const expandedColorIndex = expandLineIndex( colorIndex ); // compute colors for each line segment (rendering primitve)
1893
+ const expandedColorIndex = expandLineIndex( colorIndex ); // compute colors for each line segment (rendering primitive)
1897
1894
  colorAttribute = computeAttributeFromIndexedData( expandedLineIndex, expandedColorIndex, color, 3 ); // compute data on vertex level
1898
1895
 
1899
1896
  } else {
@@ -1910,8 +1907,8 @@ class VRMLLoader extends Loader {
1910
1907
 
1911
1908
  // if the colorIndex field is not empty, then colors are applied to each vertex of the IndexedLineSet
1912
1909
 
1913
- const flattenLineColors = flattenData( color, colorIndex ); // compute colors for each VRML primitve
1914
- const expandedLineColors = expandLineData( flattenLineColors, coordIndex ); // compute colors for each line segment (rendering primitve)
1910
+ const flattenLineColors = flattenData( color, colorIndex ); // compute colors for each VRML primitive
1911
+ const expandedLineColors = expandLineData( flattenLineColors, coordIndex ); // compute colors for each line segment (rendering primitive)
1915
1912
  colorAttribute = computeAttributeFromLineData( expandedLineIndex, expandedLineColors ); // compute data on vertex level
1916
1913
 
1917
1914
 
@@ -1919,7 +1916,7 @@ class VRMLLoader extends Loader {
1919
1916
 
1920
1917
  // if the colorIndex field is empty, then the coordIndex field is used to choose colors from the Color node
1921
1918
 
1922
- const expandedLineColors = expandLineData( color, coordIndex ); // compute colors for each line segment (rendering primitve)
1919
+ const expandedLineColors = expandLineData( color, coordIndex ); // compute colors for each line segment (rendering primitive)
1923
1920
  colorAttribute = computeAttributeFromLineData( expandedLineIndex, expandedLineColors ); // compute data on vertex level
1924
1921
 
1925
1922
  }
@@ -2751,7 +2748,7 @@ class VRMLLoader extends Loader {
2751
2748
 
2752
2749
  const indices = [];
2753
2750
 
2754
- // since face defintions can have more than three vertices, it's necessary to
2751
+ // since face definitions can have more than three vertices, it's necessary to
2755
2752
  // perform a simple triangulation
2756
2753
 
2757
2754
  let start = 0;
@@ -3111,7 +3108,8 @@ class VRMLLoader extends Loader {
3111
3108
  for ( let i = 0; i < attribute.count; i ++ ) {
3112
3109
 
3113
3110
  color.fromBufferAttribute( attribute, i );
3114
- color.convertSRGBToLinear();
3111
+
3112
+ ColorManagement.toWorkingColorSpace( color, SRGBColorSpace );
3115
3113
 
3116
3114
  attribute.setXYZ( i, color.r, color.g, color.b );
3117
3115
 
@@ -3125,7 +3123,7 @@ class VRMLLoader extends Loader {
3125
3123
  * node, but could be applied to other nodes with multiple faces as well.
3126
3124
  *
3127
3125
  * When used with the Background node, default is directionIsDown is true if
3128
- * interpolating the skyColor down from the Zenith. When interpolationg up from
3126
+ * interpolating the skyColor down from the Zenith. When interpolating up from
3129
3127
  * the Nadir i.e. interpolating the groundColor, the directionIsDown is false.
3130
3128
  *
3131
3129
  * The first angle is never specified, it is the Zenith (0 rad). Angles are specified
@@ -3216,7 +3214,9 @@ class VRMLLoader extends Loader {
3216
3214
  const colorA = colors[ thresholdIndexA ];
3217
3215
  const colorB = colors[ thresholdIndexB ];
3218
3216
 
3219
- color.copy( colorA ).lerp( colorB, t ).convertSRGBToLinear();
3217
+ color.copy( colorA ).lerp( colorB, t );
3218
+
3219
+ ColorManagement.toWorkingColorSpace( color, SRGBColorSpace );
3220
3220
 
3221
3221
  colorAttribute.setXYZ( index, color.r, color.g, color.b );
3222
3222
 
@@ -4,7 +4,8 @@ import {
4
4
  Color,
5
5
  FileLoader,
6
6
  Float32BufferAttribute,
7
- Loader
7
+ Loader,
8
+ SRGBColorSpace
8
9
  } from 'three';
9
10
  import * as fflate from '../libs/fflate.module.js';
10
11
 
@@ -211,7 +212,7 @@ class VTKLoader extends Loader {
211
212
  const g = parseFloat( result[ 2 ] );
212
213
  const b = parseFloat( result[ 3 ] );
213
214
 
214
- color.set( r, g, b ).convertSRGBToLinear();
215
+ color.setRGB( r, g, b, SRGBColorSpace );
215
216
 
216
217
  colors.push( color.r, color.g, color.b );
217
218
 
@@ -325,7 +326,7 @@ class VTKLoader extends Loader {
325
326
  const g = colors[ 3 * i + 1 ];
326
327
  const b = colors[ 3 * i + 2 ];
327
328
 
328
- color.set( r, g, b ).convertSRGBToLinear();
329
+ color.setRGB( r, g, b, SRGBColorSpace );
329
330
 
330
331
  newColors.push( color.r, color.g, color.b );
331
332
  newColors.push( color.r, color.g, color.b );
@@ -3,7 +3,8 @@ import {
3
3
  Color,
4
4
  FileLoader,
5
5
  Float32BufferAttribute,
6
- Loader
6
+ Loader,
7
+ SRGBColorSpace
7
8
  } from 'three';
8
9
 
9
10
  class XYZLoader extends Loader {
@@ -80,7 +81,7 @@ class XYZLoader extends Loader {
80
81
  const g = parseFloat( lineValues[ 4 ] ) / 255;
81
82
  const b = parseFloat( lineValues[ 5 ] ) / 255;
82
83
 
83
- color.set( r, g, b ).convertSRGBToLinear();
84
+ color.setRGB( r, g, b, SRGBColorSpace );
84
85
 
85
86
  colors.push( color.r, color.g, color.b );
86
87
 
@@ -463,7 +463,7 @@ class IFFParser {
463
463
  }
464
464
 
465
465
  // holds various data about texture node image state
466
- // Data other thanmipMapLevel unknown
466
+ // Data other than mipMapLevel unknown
467
467
  parseImageStateForm() {
468
468
 
469
469
  this.reader.skip( 8 ); // unknown
@@ -577,7 +577,7 @@ class IFFParser {
577
577
  fileName: ''
578
578
  };
579
579
 
580
- // seach STIL block
580
+ // search STIL block
581
581
  while ( true ) {
582
582
 
583
583
  var tag = this.reader.getIDTag();
@@ -653,11 +653,11 @@ class IFFParser {
653
653
 
654
654
  var number = this.reader.getUint16();
655
655
  var flags = this.reader.getUint16(); // If the least significant bit of flags is set, the layer is hidden.
656
- var pivot = this.reader.getFloat32Array( 3 ); // Note: this seems to be superflous, as the geometry is translated when pivot is present
656
+ var pivot = this.reader.getFloat32Array( 3 ); // Note: this seems to be superfluous, as the geometry is translated when pivot is present
657
657
  var layer = {
658
658
  number: number,
659
659
  flags: flags, // If the least significant bit of flags is set, the layer is hidden.
660
- pivot: [ - pivot[ 0 ], pivot[ 1 ], pivot[ 2 ] ], // Note: this seems to be superflous, as the geometry is translated when pivot is present
660
+ pivot: [ - pivot[ 0 ], pivot[ 1 ], pivot[ 2 ] ], // Note: this seems to be superfluous, as the geometry is translated when pivot is present
661
661
  name: this.reader.getString(),
662
662
  };
663
663
 
@@ -0,0 +1,143 @@
1
+ import {
2
+ Color,
3
+ ShaderMaterial,
4
+ UniformsLib,
5
+ UniformsUtils,
6
+ } from 'three';
7
+
8
+ class LDrawConditionalLineMaterial extends ShaderMaterial {
9
+
10
+ static get type() {
11
+
12
+ return 'LDrawConditionalLineMaterial';
13
+
14
+ }
15
+
16
+ constructor( parameters ) {
17
+
18
+ super( {
19
+
20
+ uniforms: UniformsUtils.merge( [
21
+ UniformsLib.fog,
22
+ {
23
+ diffuse: {
24
+ value: new Color()
25
+ },
26
+ opacity: {
27
+ value: 1.0
28
+ }
29
+ }
30
+ ] ),
31
+
32
+ vertexShader: /* glsl */`
33
+ attribute vec3 control0;
34
+ attribute vec3 control1;
35
+ attribute vec3 direction;
36
+ varying float discardFlag;
37
+
38
+ #include <common>
39
+ #include <color_pars_vertex>
40
+ #include <fog_pars_vertex>
41
+ #include <logdepthbuf_pars_vertex>
42
+ #include <clipping_planes_pars_vertex>
43
+ void main() {
44
+ #include <color_vertex>
45
+
46
+ vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
47
+ gl_Position = projectionMatrix * mvPosition;
48
+
49
+ // Transform the line segment ends and control points into camera clip space
50
+ vec4 c0 = projectionMatrix * modelViewMatrix * vec4( control0, 1.0 );
51
+ vec4 c1 = projectionMatrix * modelViewMatrix * vec4( control1, 1.0 );
52
+ vec4 p0 = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
53
+ vec4 p1 = projectionMatrix * modelViewMatrix * vec4( position + direction, 1.0 );
54
+
55
+ c0.xy /= c0.w;
56
+ c1.xy /= c1.w;
57
+ p0.xy /= p0.w;
58
+ p1.xy /= p1.w;
59
+
60
+ // Get the direction of the segment and an orthogonal vector
61
+ vec2 dir = p1.xy - p0.xy;
62
+ vec2 norm = vec2( -dir.y, dir.x );
63
+
64
+ // Get control point directions from the line
65
+ vec2 c0dir = c0.xy - p1.xy;
66
+ vec2 c1dir = c1.xy - p1.xy;
67
+
68
+ // If the vectors to the controls points are pointed in different directions away
69
+ // from the line segment then the line should not be drawn.
70
+ float d0 = dot( normalize( norm ), normalize( c0dir ) );
71
+ float d1 = dot( normalize( norm ), normalize( c1dir ) );
72
+ discardFlag = float( sign( d0 ) != sign( d1 ) );
73
+
74
+ #include <logdepthbuf_vertex>
75
+ #include <clipping_planes_vertex>
76
+ #include <fog_vertex>
77
+ }
78
+ `,
79
+
80
+ fragmentShader: /* glsl */`
81
+ uniform vec3 diffuse;
82
+ uniform float opacity;
83
+ varying float discardFlag;
84
+
85
+ #include <common>
86
+ #include <color_pars_fragment>
87
+ #include <fog_pars_fragment>
88
+ #include <logdepthbuf_pars_fragment>
89
+ #include <clipping_planes_pars_fragment>
90
+ void main() {
91
+
92
+ if ( discardFlag > 0.5 ) discard;
93
+
94
+ #include <clipping_planes_fragment>
95
+ vec3 outgoingLight = vec3( 0.0 );
96
+ vec4 diffuseColor = vec4( diffuse, opacity );
97
+ #include <logdepthbuf_fragment>
98
+ #include <color_fragment>
99
+ outgoingLight = diffuseColor.rgb; // simple shader
100
+ gl_FragColor = vec4( outgoingLight, diffuseColor.a );
101
+ #include <tonemapping_fragment>
102
+ #include <colorspace_fragment>
103
+ #include <fog_fragment>
104
+ #include <premultiplied_alpha_fragment>
105
+ }
106
+ `,
107
+
108
+ } );
109
+
110
+ Object.defineProperties( this, {
111
+
112
+ opacity: {
113
+ get: function () {
114
+
115
+ return this.uniforms.opacity.value;
116
+
117
+ },
118
+
119
+ set: function ( value ) {
120
+
121
+ this.uniforms.opacity.value = value;
122
+
123
+ }
124
+ },
125
+
126
+ color: {
127
+ get: function () {
128
+
129
+ return this.uniforms.diffuse.value;
130
+
131
+ }
132
+ }
133
+
134
+ } );
135
+
136
+ this.setValues( parameters );
137
+ this.isLDrawConditionalLineMaterial = true;
138
+
139
+ }
140
+
141
+ }
142
+
143
+ export { LDrawConditionalLineMaterial };
@@ -0,0 +1,114 @@
1
+ import { Color } from 'three';
2
+ import { attribute, cameraProjectionMatrix, dot, float, Fn, modelViewMatrix, modelViewProjection, NodeMaterial, normalize, positionGeometry, sign, uniform, varyingProperty, vec2, vec4 } from 'three/tsl';
3
+
4
+ class LDrawConditionalLineMaterial extends NodeMaterial {
5
+
6
+ static get type() {
7
+
8
+ return 'LDrawConditionalLineMaterial';
9
+
10
+ }
11
+
12
+ constructor( parameters ) {
13
+
14
+ super();
15
+
16
+ const vertexNode = /*@__PURE__*/ Fn( () => {
17
+
18
+ const control0 = attribute( 'control0', 'vec3' );
19
+ const control1 = attribute( 'control1', 'vec3' );
20
+ const direction = attribute( 'direction', 'vec3' );
21
+
22
+ const mvp = cameraProjectionMatrix.mul( modelViewMatrix );
23
+
24
+ // Transform the line segment ends and control points into camera clip space
25
+
26
+ const c0 = mvp.mul( vec4( control0, 1 ) ).toVar();
27
+ const c1 = mvp.mul( vec4( control1, 1 ) ).toVar();
28
+ const p0 = mvp.mul( vec4( positionGeometry, 1 ) ).toVar();
29
+ const p1 = mvp.mul( vec4( positionGeometry.add( direction ), 1 ) ).toVar();
30
+
31
+ c0.xy.divAssign( c0.w );
32
+ c1.xy.divAssign( c1.w );
33
+ p0.xy.divAssign( p0.w );
34
+ p1.xy.divAssign( p1.w );
35
+
36
+ // Get the direction of the segment and an orthogonal vector
37
+
38
+ const dir = p1.xy.sub( p0.xy ).toVar();
39
+ const norm = vec2( dir.y.negate(), dir.x ).toVar();
40
+
41
+ // Get control point directions from the line
42
+ const c0dir = c0.xy.sub( p1.xy ).toVar();
43
+ const c1dir = c1.xy.sub( p1.xy ).toVar();
44
+
45
+ // If the vectors to the controls points are pointed in different directions away
46
+ // from the line segment then the line should not be drawn.
47
+ const d0 = dot( normalize( norm ), normalize( c0dir ) ).toVar();
48
+ const d1 = dot( normalize( norm ), normalize( c1dir ) ).toVar();
49
+ const discardFlag = sign( d0 ).notEqual( sign( d1 ) ).select( float( 1 ), float( 0 ) );
50
+
51
+ varyingProperty( 'float', 'discardFlag' ).assign( discardFlag );
52
+
53
+ return modelViewProjection;
54
+
55
+ } )();
56
+
57
+ const fragmentNode = /*@__PURE__*/ Fn( () => {
58
+
59
+ const discardFlag = varyingProperty( 'float', 'discardFlag' );
60
+
61
+ discardFlag.greaterThan( float( 0.5 ) ).discard();
62
+
63
+ return vec4( this._diffuseUniform, this._opacityUniform );
64
+
65
+ } )();
66
+
67
+ this.vertexNode = vertexNode;
68
+ this.fragmentNode = fragmentNode;
69
+
70
+ this._diffuseUniform = uniform( new Color() );
71
+ this._opacityUniform = uniform( 1 );
72
+
73
+ //
74
+
75
+ Object.defineProperties( this, {
76
+
77
+ opacity: {
78
+ get: function () {
79
+
80
+ return this._opacityUniform.value;
81
+
82
+ },
83
+
84
+ set: function ( value ) {
85
+
86
+ this._opacityUniform.value = value;
87
+
88
+ }
89
+ },
90
+
91
+ color: {
92
+ get: function () {
93
+
94
+ return this._diffuseUniform.value;
95
+
96
+ },
97
+
98
+ set: function ( value ) {
99
+
100
+ this._diffuseUniform.value.copy( value );
101
+
102
+ }
103
+ }
104
+
105
+ } );
106
+
107
+ this.setValues( parameters );
108
+ this.isLDrawConditionalLineMaterial = true;
109
+
110
+ }
111
+
112
+ }
113
+
114
+ export { LDrawConditionalLineMaterial };
@@ -319,6 +319,8 @@ class MeshGouraudMaterial extends ShaderMaterial {
319
319
 
320
320
  super();
321
321
 
322
+ console.warn( 'THREE.MeshGouraudMaterial: MeshGouraudMaterial has been deprecated and will be removed with r183. Use THREE.MeshLambertMaterial instead.' ); // @deprecated r173
323
+
322
324
  this.isMeshGouraudMaterial = true;
323
325
 
324
326
  this.type = 'MeshGouraudMaterial';
@@ -0,0 +1,76 @@
1
+ import { LinearTransfer, Matrix3, SRGBTransfer } from 'three';
2
+
3
+ // Reference: http://www.russellcottrell.com/photo/matrixCalculator.htm
4
+
5
+ const P3_PRIMARIES = [ 0.680, 0.320, 0.265, 0.690, 0.150, 0.060 ];
6
+ const P3_LUMINANCE_COEFFICIENTS = [ 0.2289, 0.6917, 0.0793 ];
7
+ const REC2020_PRIMARIES = [ 0.708, 0.292, 0.170, 0.797, 0.131, 0.046 ];
8
+ const REC2020_LUMINANCE_COEFFICIENTS = [ 0.2627, 0.6780, 0.0593 ];
9
+ const D65 = [ 0.3127, 0.3290 ];
10
+
11
+ /******************************************************************************
12
+ * Display P3 definitions
13
+ */
14
+
15
+ const LINEAR_DISPLAY_P3_TO_XYZ = /*@__PURE__*/ new Matrix3().set(
16
+ 0.4865709, 0.2656677, 0.1982173,
17
+ 0.2289746, 0.6917385, 0.0792869,
18
+ 0.0000000, 0.0451134, 1.0439444
19
+ );
20
+
21
+ const XYZ_TO_LINEAR_DISPLAY_P3 = /*@__PURE__*/ new Matrix3().set(
22
+ 2.4934969, - 0.9313836, - 0.4027108,
23
+ - 0.8294890, 1.7626641, 0.0236247,
24
+ 0.0358458, - 0.0761724, 0.9568845
25
+ );
26
+
27
+ export const DisplayP3ColorSpace = 'display-p3';
28
+ export const LinearDisplayP3ColorSpace = 'display-p3-linear';
29
+
30
+ export const DisplayP3ColorSpaceImpl = {
31
+ primaries: P3_PRIMARIES,
32
+ whitePoint: D65,
33
+ transfer: SRGBTransfer,
34
+ toXYZ: LINEAR_DISPLAY_P3_TO_XYZ,
35
+ fromXYZ: XYZ_TO_LINEAR_DISPLAY_P3,
36
+ luminanceCoefficients: P3_LUMINANCE_COEFFICIENTS,
37
+ outputColorSpaceConfig: { drawingBufferColorSpace: DisplayP3ColorSpace }
38
+ };
39
+
40
+ export const LinearDisplayP3ColorSpaceImpl = {
41
+ primaries: P3_PRIMARIES,
42
+ whitePoint: D65,
43
+ transfer: LinearTransfer,
44
+ toXYZ: LINEAR_DISPLAY_P3_TO_XYZ,
45
+ fromXYZ: XYZ_TO_LINEAR_DISPLAY_P3,
46
+ luminanceCoefficients: P3_LUMINANCE_COEFFICIENTS,
47
+ workingColorSpaceConfig: { unpackColorSpace: DisplayP3ColorSpace },
48
+ outputColorSpaceConfig: { drawingBufferColorSpace: DisplayP3ColorSpace }
49
+ };
50
+
51
+ /******************************************************************************
52
+ * Rec. 2020 definitions
53
+ */
54
+
55
+ const LINEAR_REC2020_TO_XYZ = /*@__PURE__*/ new Matrix3().set(
56
+ 0.6369580, 0.1446169, 0.1688810,
57
+ 0.2627002, 0.6779981, 0.0593017,
58
+ 0.0000000, 0.0280727, 1.0609851
59
+ );
60
+
61
+ const XYZ_TO_LINEAR_REC2020 = /*@__PURE__*/ new Matrix3().set(
62
+ 1.7166512, - 0.3556708, - 0.2533663,
63
+ - 0.6666844, 1.6164812, 0.0157685,
64
+ 0.0176399, - 0.0427706, 0.9421031
65
+ );
66
+
67
+ export const LinearRec2020ColorSpace = 'rec2020-linear';
68
+
69
+ export const LinearRec2020ColorSpaceImpl = {
70
+ primaries: REC2020_PRIMARIES,
71
+ whitePoint: D65,
72
+ transfer: LinearTransfer,
73
+ toXYZ: LINEAR_REC2020_TO_XYZ,
74
+ fromXYZ: XYZ_TO_LINEAR_REC2020,
75
+ luminanceCoefficients: REC2020_LUMINANCE_COEFFICIENTS,
76
+ };