super-three 0.165.0 → 0.168.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 (462) hide show
  1. package/build/three.cjs +854 -410
  2. package/build/three.module.js +849 -411
  3. package/build/three.module.min.js +1 -1
  4. package/build/three.webgpu.js +77755 -0
  5. package/build/three.webgpu.min.js +6 -0
  6. package/examples/jsm/Addons.js +5 -2
  7. package/examples/jsm/animation/AnimationClipCreator.js +1 -1
  8. package/examples/jsm/capabilities/WebGL.js +27 -21
  9. package/examples/jsm/controls/ArcballControls.js +174 -158
  10. package/examples/jsm/controls/DragControls.js +260 -132
  11. package/examples/jsm/controls/FirstPersonControls.js +175 -163
  12. package/examples/jsm/controls/FlyControls.js +194 -188
  13. package/examples/jsm/controls/OrbitControls.js +777 -786
  14. package/examples/jsm/controls/PointerLockControls.js +24 -15
  15. package/examples/jsm/controls/TrackballControls.js +453 -452
  16. package/examples/jsm/csm/CSMShader.js +4 -4
  17. package/examples/jsm/effects/AnaglyphEffect.js +6 -13
  18. package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
  19. package/examples/jsm/effects/StereoEffect.js +6 -1
  20. package/examples/jsm/environments/RoomEnvironment.js +1 -1
  21. package/examples/jsm/exporters/GLTFExporter.js +13 -4
  22. package/examples/jsm/exporters/USDZExporter.js +29 -8
  23. package/examples/jsm/geometries/TeapotGeometry.js +1 -1
  24. package/examples/jsm/helpers/LightProbeHelper.js +42 -43
  25. package/examples/jsm/helpers/ViewHelper.js +51 -2
  26. package/examples/jsm/libs/tween.module.js +64 -75
  27. package/examples/jsm/lights/RectAreaLightTexturesLib.js +91 -0
  28. package/examples/jsm/lights/RectAreaLightUniformsLib.js +8 -63
  29. package/examples/jsm/lines/webgpu/Line2.js +20 -0
  30. package/examples/jsm/lines/webgpu/LineSegments2.js +376 -0
  31. package/examples/jsm/loaders/FBXLoader.js +23 -45
  32. package/examples/jsm/loaders/GLTFLoader.js +10 -4
  33. package/examples/jsm/loaders/KTX2Loader.js +19 -7
  34. package/examples/jsm/loaders/MaterialXLoader.js +10 -10
  35. package/examples/jsm/loaders/PCDLoader.js +9 -9
  36. package/examples/jsm/loaders/USDZLoader.js +124 -76
  37. package/examples/jsm/loaders/UltraHDRLoader.js +583 -0
  38. package/examples/jsm/loaders/VTKLoader.js +76 -3
  39. package/examples/jsm/misc/GPUComputationRenderer.js +9 -19
  40. package/examples/jsm/modifiers/SimplifyModifier.js +2 -1
  41. package/examples/jsm/objects/InstancedPoints.js +2 -2
  42. package/examples/jsm/objects/SkyMesh.js +188 -0
  43. package/examples/jsm/objects/Water2Mesh.js +159 -0
  44. package/examples/jsm/objects/WaterMesh.js +102 -0
  45. package/examples/jsm/physics/RapierPhysics.js +20 -0
  46. package/examples/jsm/postprocessing/OutlinePass.js +31 -46
  47. package/examples/jsm/postprocessing/RenderTransitionPass.js +13 -38
  48. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
  49. package/examples/jsm/postprocessing/SSAOPass.js +6 -9
  50. package/examples/jsm/postprocessing/UnrealBloomPass.js +4 -4
  51. package/examples/jsm/shaders/BleachBypassShader.js +1 -2
  52. package/examples/jsm/shaders/ColorifyShader.js +1 -2
  53. package/examples/jsm/shaders/FXAAShader.js +0 -2
  54. package/examples/jsm/shaders/GTAOShader.js +1 -1
  55. package/examples/jsm/shaders/LuminosityHighPassShader.js +1 -3
  56. package/examples/jsm/shaders/OutputShader.js +1 -1
  57. package/examples/jsm/transpiler/GLSLDecoder.js +46 -4
  58. package/examples/jsm/transpiler/TSLEncoder.js +24 -22
  59. package/examples/jsm/utils/TextureUtils.js +1 -1
  60. package/package.json +8 -6
  61. package/src/Three.WebGPU.js +200 -0
  62. package/src/Three.js +3 -0
  63. package/src/constants.js +4 -1
  64. package/src/core/Object3D.js +22 -22
  65. package/src/extras/Controls.js +32 -0
  66. package/src/extras/TextureUtils.js +210 -0
  67. package/src/lights/Light.js +1 -0
  68. package/src/lights/LightShadow.js +5 -0
  69. package/{examples/jsm/lights → src/lights/webgpu}/IESSpotLight.js +1 -1
  70. package/src/loaders/ObjectLoader.js +33 -2
  71. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeLoader.js +6 -4
  72. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeMaterialLoader.js +2 -2
  73. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeObjectLoader.js +2 -1
  74. package/src/materials/Material.js +7 -1
  75. package/{examples/jsm/nodes/materials → src/materials/nodes}/InstancedPointsNodeMaterial.js +36 -27
  76. package/{examples/jsm/nodes/materials → src/materials/nodes}/Line2NodeMaterial.js +37 -40
  77. package/src/materials/nodes/LineBasicNodeMaterial.js +27 -0
  78. package/{examples/jsm/nodes/materials → src/materials/nodes}/LineDashedNodeMaterial.js +10 -11
  79. package/src/materials/nodes/MeshBasicNodeMaterial.js +73 -0
  80. package/src/materials/nodes/MeshLambertNodeMaterial.js +43 -0
  81. package/src/materials/nodes/MeshMatcapNodeMaterial.js +53 -0
  82. package/src/materials/nodes/MeshNormalNodeMaterial.js +40 -0
  83. package/src/materials/nodes/MeshPhongNodeMaterial.js +74 -0
  84. package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshPhysicalNodeMaterial.js +22 -20
  85. package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshSSSNodeMaterial.js +6 -6
  86. package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshStandardNodeMaterial.js +28 -11
  87. package/src/materials/nodes/MeshToonNodeMaterial.js +34 -0
  88. package/{examples/jsm/nodes/materials → src/materials/nodes}/NodeMaterial.js +142 -96
  89. package/{examples/jsm/nodes/materials/Materials.js → src/materials/nodes/NodeMaterials.js} +1 -1
  90. package/{examples/jsm/nodes/materials → src/materials/nodes}/PointsNodeMaterial.js +5 -6
  91. package/src/materials/nodes/ShadowNodeMaterial.js +34 -0
  92. package/{examples/jsm/nodes/materials → src/materials/nodes}/SpriteNodeMaterial.js +13 -13
  93. package/{examples/jsm/nodes/materials → src/materials/nodes}/VolumeNodeMaterial.js +14 -16
  94. package/src/math/Box2.js +4 -4
  95. package/src/math/Box3.js +6 -6
  96. package/src/math/ColorManagement.js +10 -0
  97. package/src/math/Matrix2.js +54 -0
  98. package/src/math/Vector4.js +13 -0
  99. package/src/nodes/Nodes.js +164 -0
  100. package/src/nodes/TSL.js +176 -0
  101. package/{examples/jsm → src}/nodes/accessors/AccessorsUtils.js +8 -8
  102. package/src/nodes/accessors/BatchNode.js +124 -0
  103. package/{examples/jsm/nodes/accessors/BitangentNode.js → src/nodes/accessors/Bitangent.js} +9 -9
  104. package/{examples/jsm → src}/nodes/accessors/BufferAttributeNode.js +41 -6
  105. package/{examples/jsm → src}/nodes/accessors/BufferNode.js +4 -4
  106. package/src/nodes/accessors/Camera.js +19 -0
  107. package/{examples/jsm → src}/nodes/accessors/ClippingNode.js +16 -14
  108. package/src/nodes/accessors/CubeTextureNode.js +76 -0
  109. package/src/nodes/accessors/InstanceNode.js +144 -0
  110. package/src/nodes/accessors/InstancedPointsMaterialNode.js +21 -0
  111. package/{examples/jsm → src}/nodes/accessors/MaterialNode.js +66 -49
  112. package/src/nodes/accessors/MaterialProperties.js +3 -0
  113. package/{examples/jsm → src}/nodes/accessors/MaterialReferenceNode.js +6 -4
  114. package/src/nodes/accessors/ModelNode.js +37 -0
  115. package/{examples/jsm → src}/nodes/accessors/ModelViewProjectionNode.js +6 -7
  116. package/{examples/jsm → src}/nodes/accessors/MorphNode.js +35 -31
  117. package/src/nodes/accessors/Normal.js +62 -0
  118. package/{examples/jsm → src}/nodes/accessors/Object3DNode.js +11 -11
  119. package/src/nodes/accessors/PointUVNode.js +26 -0
  120. package/src/nodes/accessors/Position.js +10 -0
  121. package/src/nodes/accessors/ReferenceBaseNode.js +143 -0
  122. package/{examples/jsm → src}/nodes/accessors/ReferenceNode.js +14 -8
  123. package/src/nodes/accessors/ReflectVector.js +10 -0
  124. package/{examples/jsm → src}/nodes/accessors/RendererReferenceNode.js +6 -6
  125. package/{examples/jsm → src}/nodes/accessors/SceneNode.js +5 -6
  126. package/src/nodes/accessors/SkinningNode.js +187 -0
  127. package/{examples/jsm → src}/nodes/accessors/StorageBufferNode.js +54 -6
  128. package/{examples/jsm → src}/nodes/accessors/StorageTextureNode.js +16 -7
  129. package/src/nodes/accessors/Tangent.js +22 -0
  130. package/{examples/jsm → src}/nodes/accessors/Texture3DNode.js +11 -11
  131. package/{examples/jsm/nodes/accessors/TextureBicubicNode.js → src/nodes/accessors/TextureBicubic.js} +3 -32
  132. package/{examples/jsm → src}/nodes/accessors/TextureNode.js +69 -37
  133. package/{examples/jsm → src}/nodes/accessors/TextureSizeNode.js +4 -6
  134. package/{examples/jsm/nodes/accessors/UniformsNode.js → src/nodes/accessors/UniformArrayNode.js} +24 -9
  135. package/{examples/jsm → src}/nodes/accessors/UserDataNode.js +4 -4
  136. package/src/nodes/accessors/VelocityNode.js +83 -0
  137. package/{examples/jsm → src}/nodes/accessors/VertexColorNode.js +6 -5
  138. package/{examples/jsm → src}/nodes/code/CodeNode.js +5 -5
  139. package/{examples/jsm → src}/nodes/code/ExpressionNode.js +4 -4
  140. package/{examples/jsm → src}/nodes/code/FunctionCallNode.js +5 -5
  141. package/{examples/jsm → src}/nodes/code/FunctionNode.js +5 -23
  142. package/{examples/jsm → src}/nodes/code/ScriptableNode.js +18 -6
  143. package/{examples/jsm → src}/nodes/code/ScriptableValueNode.js +6 -7
  144. package/{examples/jsm → src}/nodes/core/AssignNode.js +5 -5
  145. package/{examples/jsm → src}/nodes/core/AttributeNode.js +22 -21
  146. package/{examples/jsm → src}/nodes/core/BypassNode.js +5 -5
  147. package/src/nodes/core/CacheNode.js +46 -0
  148. package/{examples/jsm → src}/nodes/core/ConstNode.js +2 -2
  149. package/{examples/jsm → src}/nodes/core/ContextNode.js +17 -11
  150. package/{examples/jsm → src}/nodes/core/IndexNode.js +17 -6
  151. package/{examples/jsm → src}/nodes/core/InputNode.js +2 -2
  152. package/{examples/jsm → src}/nodes/core/LightingModel.js +2 -2
  153. package/src/nodes/core/MRTNode.js +82 -0
  154. package/{examples/jsm → src}/nodes/core/Node.js +57 -31
  155. package/{examples/jsm → src}/nodes/core/NodeBuilder.js +216 -65
  156. package/src/nodes/core/NodeCache.js +36 -0
  157. package/{examples/jsm → src}/nodes/core/NodeFrame.js +42 -0
  158. package/{examples/jsm → src}/nodes/core/NodeFunction.js +2 -2
  159. package/{examples/jsm → src}/nodes/core/NodeUniform.js +1 -2
  160. package/{examples/jsm → src}/nodes/core/NodeUtils.js +7 -1
  161. package/{examples/jsm → src}/nodes/core/OutputStructNode.js +4 -4
  162. package/{examples/jsm → src}/nodes/core/ParameterNode.js +4 -4
  163. package/src/nodes/core/PropertyNode.js +84 -0
  164. package/{examples/jsm → src}/nodes/core/StackNode.js +26 -10
  165. package/{examples/jsm → src}/nodes/core/StructTypeNode.js +2 -2
  166. package/{examples/jsm → src}/nodes/core/TempNode.js +4 -4
  167. package/src/nodes/core/UniformGroupNode.js +55 -0
  168. package/{examples/jsm → src}/nodes/core/UniformNode.js +14 -5
  169. package/{examples/jsm → src}/nodes/core/VarNode.js +8 -12
  170. package/{examples/jsm → src}/nodes/core/VaryingNode.js +13 -5
  171. package/{examples/jsm → src}/nodes/display/AfterImageNode.js +27 -35
  172. package/src/nodes/display/AnaglyphPassNode.js +61 -0
  173. package/{examples/jsm → src}/nodes/display/AnamorphicNode.js +27 -30
  174. package/src/nodes/display/BleachBypass.js +26 -0
  175. package/src/nodes/display/BlendMode.js +54 -0
  176. package/src/nodes/display/BloomNode.js +335 -0
  177. package/{examples/jsm → src}/nodes/display/BumpMapNode.js +7 -12
  178. package/src/nodes/display/ColorAdjustment.js +46 -0
  179. package/src/nodes/display/ColorSpaceFunctions.js +38 -0
  180. package/src/nodes/display/ColorSpaceNode.js +85 -0
  181. package/src/nodes/display/DenoiseNode.js +201 -0
  182. package/src/nodes/display/DepthOfFieldNode.js +121 -0
  183. package/src/nodes/display/DotScreenNode.js +63 -0
  184. package/src/nodes/display/FXAANode.js +329 -0
  185. package/src/nodes/display/FilmNode.js +53 -0
  186. package/src/nodes/display/FrontFacingNode.js +41 -0
  187. package/src/nodes/display/GTAONode.js +328 -0
  188. package/{examples/jsm → src}/nodes/display/GaussianBlurNode.js +44 -24
  189. package/src/nodes/display/Lut3DNode.js +54 -0
  190. package/src/nodes/display/MotionBlur.js +25 -0
  191. package/{examples/jsm → src}/nodes/display/NormalMapNode.js +9 -11
  192. package/src/nodes/display/ParallaxBarrierPassNode.js +55 -0
  193. package/src/nodes/display/PassNode.js +367 -0
  194. package/src/nodes/display/PixelationPassNode.js +206 -0
  195. package/{examples/jsm → src}/nodes/display/PosterizeNode.js +4 -6
  196. package/src/nodes/display/RGBShiftNode.js +50 -0
  197. package/src/nodes/display/RenderOutputNode.js +56 -0
  198. package/src/nodes/display/SSAAPassNode.js +284 -0
  199. package/src/nodes/display/Sepia.js +17 -0
  200. package/src/nodes/display/SobelOperatorNode.js +123 -0
  201. package/src/nodes/display/StereoCompositePassNode.js +107 -0
  202. package/src/nodes/display/StereoPassNode.js +80 -0
  203. package/src/nodes/display/ToneMappingFunctions.js +190 -0
  204. package/src/nodes/display/ToneMappingNode.js +66 -0
  205. package/src/nodes/display/TransitionNode.js +77 -0
  206. package/src/nodes/display/ViewportDepthNode.js +121 -0
  207. package/src/nodes/display/ViewportDepthTextureNode.js +30 -0
  208. package/{examples/jsm → src}/nodes/display/ViewportNode.js +28 -26
  209. package/src/nodes/display/ViewportSharedTextureNode.js +36 -0
  210. package/{examples/jsm → src}/nodes/display/ViewportTextureNode.js +12 -12
  211. package/{examples/jsm → src}/nodes/fog/FogExp2Node.js +4 -6
  212. package/{examples/jsm → src}/nodes/fog/FogNode.js +5 -7
  213. package/{examples/jsm → src}/nodes/fog/FogRangeNode.js +4 -6
  214. package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_GGX.js +4 -4
  215. package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  216. package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
  217. package/{examples/jsm → src}/nodes/functions/BSDF/DFGApprox.js +2 -2
  218. package/{examples/jsm → src}/nodes/functions/BSDF/D_GGX.js +2 -2
  219. package/{examples/jsm → src}/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
  220. package/{examples/jsm → src}/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  221. package/{examples/jsm → src}/nodes/functions/BSDF/F_Schlick.js +2 -2
  222. package/src/nodes/functions/BSDF/LTC.js +131 -0
  223. package/{examples/jsm → src}/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  224. package/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
  225. package/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  226. package/src/nodes/functions/BasicLightingModel.js +78 -0
  227. package/{examples/jsm → src}/nodes/functions/PhongLightingModel.js +10 -8
  228. package/{examples/jsm → src}/nodes/functions/PhysicalLightingModel.js +73 -31
  229. package/{examples/jsm → src}/nodes/functions/ShadowMaskModel.js +1 -1
  230. package/{examples/jsm → src}/nodes/functions/ToonLightingModel.js +6 -4
  231. package/src/nodes/functions/material/getGeometryRoughness.js +13 -0
  232. package/{examples/jsm → src}/nodes/functions/material/getRoughness.js +2 -2
  233. package/{examples/jsm → src}/nodes/geometry/RangeNode.js +23 -10
  234. package/{examples/jsm → src}/nodes/gpgpu/ComputeNode.js +5 -5
  235. package/src/nodes/lighting/AONode.js +24 -0
  236. package/{examples/jsm → src}/nodes/lighting/AmbientLightNode.js +2 -7
  237. package/src/nodes/lighting/AnalyticLightNode.js +354 -0
  238. package/src/nodes/lighting/BasicEnvironmentNode.js +27 -0
  239. package/src/nodes/lighting/BasicLightMapNode.js +29 -0
  240. package/{examples/jsm → src}/nodes/lighting/DirectionalLightNode.js +3 -9
  241. package/{examples/jsm → src}/nodes/lighting/EnvironmentNode.js +23 -21
  242. package/{examples/jsm → src}/nodes/lighting/HemisphereLightNode.js +4 -7
  243. package/{examples/jsm → src}/nodes/lighting/IESSpotLightNode.js +3 -8
  244. package/{examples/jsm → src}/nodes/lighting/IrradianceNode.js +2 -2
  245. package/{examples/jsm → src}/nodes/lighting/LightNode.js +5 -5
  246. package/src/nodes/lighting/LightProbeNode.js +76 -0
  247. package/{examples/jsm → src}/nodes/lighting/LightUtils.js +3 -3
  248. package/src/nodes/lighting/LightingContextNode.js +64 -0
  249. package/{examples/jsm → src}/nodes/lighting/LightingNode.js +4 -2
  250. package/src/nodes/lighting/LightsNode.js +231 -0
  251. package/{examples/jsm → src}/nodes/lighting/PointLightNode.js +4 -10
  252. package/src/nodes/lighting/RectAreaLightNode.js +93 -0
  253. package/{examples/jsm → src}/nodes/lighting/SpotLightNode.js +4 -10
  254. package/{examples/jsm → src}/nodes/materialx/MaterialXNodes.js +2 -2
  255. package/{examples/jsm → src}/nodes/materialx/lib/mx_hsv.js +43 -46
  256. package/{examples/jsm → src}/nodes/materialx/lib/mx_noise.js +500 -603
  257. package/{examples/jsm → src}/nodes/materialx/lib/mx_transform_color.js +3 -9
  258. package/{examples/jsm/nodes/math/CondNode.js → src/nodes/math/ConditionalNode.js} +31 -13
  259. package/src/nodes/math/Hash.js +13 -0
  260. package/src/nodes/math/MathNode.js +404 -0
  261. package/{examples/jsm → src}/nodes/math/MathUtils.js +0 -7
  262. package/{examples/jsm → src}/nodes/math/OperatorNode.js +100 -58
  263. package/{examples/jsm → src}/nodes/math/TriNoise3D.js +19 -29
  264. package/{examples/jsm → src}/nodes/parsers/GLSLNodeFunction.js +7 -7
  265. package/{examples/jsm → src}/nodes/pmrem/PMREMNode.js +60 -16
  266. package/{examples/jsm → src}/nodes/pmrem/PMREMUtils.js +46 -46
  267. package/src/nodes/procedural/Checker.js +14 -0
  268. package/src/nodes/tsl/TSLBase.js +30 -0
  269. package/{examples/jsm/nodes/shadernode/ShaderNode.js → src/nodes/tsl/TSLCore.js} +106 -96
  270. package/{examples/jsm → src}/nodes/utils/ArrayElementNode.js +2 -2
  271. package/{examples/jsm → src}/nodes/utils/ConvertNode.js +2 -2
  272. package/src/nodes/utils/CubeMapNode.js +157 -0
  273. package/src/nodes/utils/Discard.js +8 -0
  274. package/{examples/jsm → src}/nodes/utils/EquirectUVNode.js +5 -5
  275. package/src/nodes/utils/FlipNode.js +65 -0
  276. package/{examples/jsm → src}/nodes/utils/FunctionOverloadingNode.js +7 -5
  277. package/{examples/jsm → src}/nodes/utils/JoinNode.js +2 -2
  278. package/{examples/jsm → src}/nodes/utils/LoopNode.js +19 -12
  279. package/{examples/jsm → src}/nodes/utils/MatcapUVNode.js +6 -6
  280. package/{examples/jsm → src}/nodes/utils/MaxMipLevelNode.js +12 -6
  281. package/{examples/jsm → src}/nodes/utils/OscNode.js +7 -7
  282. package/src/nodes/utils/Packing.js +4 -0
  283. package/src/nodes/utils/RTTNode.js +130 -0
  284. package/{examples/jsm → src}/nodes/utils/ReflectorNode.js +17 -4
  285. package/{examples/jsm → src}/nodes/utils/RemapNode.js +7 -7
  286. package/{examples/jsm → src}/nodes/utils/RotateNode.js +4 -12
  287. package/{examples/jsm → src}/nodes/utils/SetNode.js +2 -2
  288. package/{examples/jsm → src}/nodes/utils/SplitNode.js +2 -2
  289. package/{examples/jsm → src}/nodes/utils/SpriteSheetUVNode.js +5 -5
  290. package/src/nodes/utils/SpriteUtils.js +47 -0
  291. package/{examples/jsm → src}/nodes/utils/StorageArrayElementNode.js +4 -6
  292. package/{examples/jsm → src}/nodes/utils/TimerNode.js +5 -5
  293. package/{examples/jsm → src}/nodes/utils/TriplanarTexturesNode.js +7 -9
  294. package/src/nodes/utils/UVUtils.js +19 -0
  295. package/src/nodes/utils/ViewportUtils.js +14 -0
  296. package/src/objects/BatchedMesh.js +169 -190
  297. package/src/objects/InstancedMesh.js +1 -1
  298. package/src/renderers/WebGLRenderer.js +60 -23
  299. package/{examples/jsm → src}/renderers/common/Attributes.js +2 -1
  300. package/{examples/jsm → src}/renderers/common/Backend.js +30 -27
  301. package/{examples/jsm → src}/renderers/common/Background.js +12 -4
  302. package/src/renderers/common/BindGroup.js +18 -0
  303. package/{examples/jsm → src}/renderers/common/Bindings.js +45 -32
  304. package/{examples/jsm → src}/renderers/common/ClippingContext.js +18 -7
  305. package/{examples/jsm → src}/renderers/common/Color4.js +1 -1
  306. package/{examples/jsm → src}/renderers/common/CubeRenderTarget.js +16 -4
  307. package/{examples/jsm → src}/renderers/common/Geometries.js +37 -5
  308. package/{examples/jsm → src}/renderers/common/Info.js +34 -6
  309. package/src/renderers/common/PostProcessing.js +90 -0
  310. package/{examples/jsm/objects → src/renderers/common}/QuadMesh.js +8 -3
  311. package/{examples/jsm → src}/renderers/common/RenderContext.js +25 -1
  312. package/{examples/jsm → src}/renderers/common/RenderContexts.js +1 -1
  313. package/{examples/jsm → src}/renderers/common/RenderList.js +1 -1
  314. package/{examples/jsm → src}/renderers/common/RenderObject.js +45 -12
  315. package/{examples/jsm → src}/renderers/common/Renderer.js +151 -73
  316. package/{examples/jsm → src}/renderers/common/SampledTexture.js +14 -5
  317. package/src/renderers/common/StandardRenderer.js +18 -0
  318. package/{examples/jsm → src}/renderers/common/StorageBufferAttribute.js +1 -1
  319. package/{examples/jsm → src}/renderers/common/StorageInstancedBufferAttribute.js +1 -1
  320. package/{examples/jsm → src}/renderers/common/StorageTexture.js +2 -1
  321. package/{examples/jsm → src}/renderers/common/Textures.js +14 -14
  322. package/{examples/jsm → src}/renderers/common/Uniform.js +9 -4
  323. package/{examples/jsm → src}/renderers/common/UniformsGroup.js +69 -31
  324. package/{examples/jsm → src}/renderers/common/extras/PMREMGenerator.js +25 -25
  325. package/src/renderers/common/nodes/NodeBuilderState.js +58 -0
  326. package/src/renderers/common/nodes/NodeLibrary.js +118 -0
  327. package/{examples/jsm → src}/renderers/common/nodes/NodeSampledTexture.js +8 -7
  328. package/{examples/jsm → src}/renderers/common/nodes/NodeSampler.js +2 -1
  329. package/{examples/jsm → src}/renderers/common/nodes/NodeStorageBuffer.js +5 -1
  330. package/{examples/jsm → src}/renderers/common/nodes/NodeUniform.js +3 -3
  331. package/{examples/jsm → src}/renderers/common/nodes/NodeUniformBuffer.js +2 -1
  332. package/{examples/jsm → src}/renderers/common/nodes/NodeUniformsGroup.js +2 -8
  333. package/{examples/jsm → src}/renderers/common/nodes/Nodes.js +69 -21
  334. package/src/renderers/common/nodes/StandardNodeLibrary.js +105 -0
  335. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +16 -1
  336. package/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +1 -1
  337. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +1 -1
  338. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +0 -9
  339. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -10
  340. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  341. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +45 -13
  342. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -4
  343. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +3 -0
  344. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +3 -3
  345. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
  346. package/src/renderers/shaders/ShaderLib/depth.glsl.js +8 -0
  347. package/src/renderers/shaders/UniformsLib.js +3 -0
  348. package/src/renderers/webgl/WebGLAttributes.js +2 -2
  349. package/src/renderers/webgl/WebGLBufferRenderer.js +6 -19
  350. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +6 -18
  351. package/src/renderers/webgl/WebGLLights.js +6 -0
  352. package/src/renderers/webgl/WebGLProgram.js +27 -1
  353. package/src/renderers/webgl/WebGLPrograms.js +1 -1
  354. package/src/renderers/webgl/WebGLProperties.js +7 -0
  355. package/src/renderers/webgl/WebGLTextures.js +75 -57
  356. package/src/renderers/webgl/WebGLUniforms.js +12 -2
  357. package/src/renderers/webgl/WebGLUniformsGroups.js +7 -7
  358. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBackend.js +242 -120
  359. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/nodes/GLSLNodeBuilder.js +227 -44
  360. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLAttributeUtils.js +2 -2
  361. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLConstants.js +1 -0
  362. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLExtensions.js +2 -0
  363. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLState.js +22 -1
  364. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLTextureUtils.js +62 -23
  365. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLUtils.js +1 -1
  366. package/{examples/jsm → src}/renderers/webgpu/WebGPUBackend.js +242 -136
  367. package/{examples/jsm → src}/renderers/webgpu/WebGPURenderer.js +9 -9
  368. package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeBuilder.js +281 -107
  369. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +159 -0
  370. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
  371. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUBindingUtils.js +64 -33
  372. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUConstants.js +4 -1
  373. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUPipelineUtils.js +34 -36
  374. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
  375. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTextureUtils.js +76 -44
  376. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUUtils.js +42 -4
  377. package/src/renderers/webxr/WebXRDepthSensing.js +6 -0
  378. package/src/renderers/webxr/WebXRManager.js +37 -24
  379. package/src/textures/CompressedArrayTexture.js +1 -1
  380. package/examples/jsm/loaders/LogLuvLoader.js +0 -606
  381. package/examples/jsm/nodes/Nodes.js +0 -202
  382. package/examples/jsm/nodes/accessors/BatchNode.js +0 -78
  383. package/examples/jsm/nodes/accessors/CameraNode.js +0 -12
  384. package/examples/jsm/nodes/accessors/CubeTextureNode.js +0 -61
  385. package/examples/jsm/nodes/accessors/InstanceNode.js +0 -94
  386. package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
  387. package/examples/jsm/nodes/accessors/ModelNode.js +0 -36
  388. package/examples/jsm/nodes/accessors/NormalNode.js +0 -14
  389. package/examples/jsm/nodes/accessors/PointUVNode.js +0 -26
  390. package/examples/jsm/nodes/accessors/PositionNode.js +0 -10
  391. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +0 -6
  392. package/examples/jsm/nodes/accessors/SkinningNode.js +0 -124
  393. package/examples/jsm/nodes/accessors/TangentNode.js +0 -23
  394. package/examples/jsm/nodes/core/CacheNode.js +0 -49
  395. package/examples/jsm/nodes/core/NodeCache.js +0 -26
  396. package/examples/jsm/nodes/core/NodeKeywords.js +0 -80
  397. package/examples/jsm/nodes/core/PropertyNode.js +0 -83
  398. package/examples/jsm/nodes/core/UniformGroupNode.js +0 -36
  399. package/examples/jsm/nodes/display/BlendModeNode.js +0 -128
  400. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +0 -99
  401. package/examples/jsm/nodes/display/ColorSpaceNode.js +0 -108
  402. package/examples/jsm/nodes/display/FrontFacingNode.js +0 -40
  403. package/examples/jsm/nodes/display/PassNode.js +0 -201
  404. package/examples/jsm/nodes/display/ToneMappingNode.js +0 -188
  405. package/examples/jsm/nodes/display/ViewportDepthNode.js +0 -97
  406. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +0 -31
  407. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +0 -37
  408. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +0 -13
  409. package/examples/jsm/nodes/lighting/AONode.js +0 -27
  410. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +0 -256
  411. package/examples/jsm/nodes/lighting/LightingContextNode.js +0 -66
  412. package/examples/jsm/nodes/lighting/LightsNode.js +0 -215
  413. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -28
  414. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -28
  415. package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +0 -34
  416. package/examples/jsm/nodes/materials/MeshMatcapNodeMaterial.js +0 -52
  417. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -38
  418. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -65
  419. package/examples/jsm/nodes/materials/MeshToonNodeMaterial.js +0 -34
  420. package/examples/jsm/nodes/materials/ShadowNodeMaterial.js +0 -34
  421. package/examples/jsm/nodes/math/HashNode.js +0 -34
  422. package/examples/jsm/nodes/math/MathNode.js +0 -391
  423. package/examples/jsm/nodes/procedural/CheckerNode.js +0 -42
  424. package/examples/jsm/nodes/utils/DiscardNode.js +0 -27
  425. package/examples/jsm/nodes/utils/PackingNode.js +0 -55
  426. package/examples/jsm/nodes/utils/RotateUVNode.js +0 -35
  427. package/examples/jsm/renderers/common/PostProcessing.js +0 -33
  428. package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +0 -44
  429. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +0 -104
  430. /package/{examples/jsm/nodes/accessors/UVNode.js → src/nodes/accessors/UV.js} +0 -0
  431. /package/{examples/jsm → src}/nodes/core/NodeAttribute.js +0 -0
  432. /package/{examples/jsm → src}/nodes/core/NodeCode.js +0 -0
  433. /package/{examples/jsm → src}/nodes/core/NodeFunctionInput.js +0 -0
  434. /package/{examples/jsm → src}/nodes/core/NodeParser.js +0 -0
  435. /package/{examples/jsm → src}/nodes/core/NodeVar.js +0 -0
  436. /package/{examples/jsm → src}/nodes/core/NodeVarying.js +0 -0
  437. /package/{examples/jsm → src}/nodes/core/UniformGroup.js +0 -0
  438. /package/{examples/jsm → src}/nodes/core/constants.js +0 -0
  439. /package/{examples/jsm → src}/nodes/materialx/DISCLAIMER.md +0 -0
  440. /package/{examples/jsm → src}/nodes/parsers/GLSLNodeParser.js +0 -0
  441. /package/{examples/jsm → src}/renderers/common/Animation.js +0 -0
  442. /package/{examples/jsm → src}/renderers/common/Binding.js +0 -0
  443. /package/{examples/jsm → src}/renderers/common/Buffer.js +0 -0
  444. /package/{examples/jsm → src}/renderers/common/BufferUtils.js +0 -0
  445. /package/{examples/jsm → src}/renderers/common/ChainMap.js +0 -0
  446. /package/{examples/jsm → src}/renderers/common/ComputePipeline.js +0 -0
  447. /package/{examples/jsm → src}/renderers/common/Constants.js +0 -0
  448. /package/{examples/jsm → src}/renderers/common/DataMap.js +0 -0
  449. /package/{examples/jsm → src}/renderers/common/Pipeline.js +0 -0
  450. /package/{examples/jsm → src}/renderers/common/Pipelines.js +0 -0
  451. /package/{examples/jsm → src}/renderers/common/ProgrammableStage.js +0 -0
  452. /package/{examples/jsm → src}/renderers/common/RenderBundle.js +0 -0
  453. /package/{examples/jsm → src}/renderers/common/RenderBundles.js +0 -0
  454. /package/{examples/jsm → src}/renderers/common/RenderLists.js +0 -0
  455. /package/{examples/jsm → src}/renderers/common/RenderObjects.js +0 -0
  456. /package/{examples/jsm → src}/renderers/common/RenderPipeline.js +0 -0
  457. /package/{examples/jsm → src}/renderers/common/Sampler.js +0 -0
  458. /package/{examples/jsm → src}/renderers/common/StorageBuffer.js +0 -0
  459. /package/{examples/jsm → src}/renderers/common/UniformBuffer.js +0 -0
  460. /package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBufferRenderer.js +0 -0
  461. /package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLCapabilities.js +0 -0
  462. /package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeParser.js +0 -0
@@ -33,24 +33,28 @@ const COLOR_SPACES = {
33
33
  [ LinearSRGBColorSpace ]: {
34
34
  transfer: LinearTransfer,
35
35
  primaries: Rec709Primaries,
36
+ luminanceCoefficients: [ 0.2126, 0.7152, 0.0722 ],
36
37
  toReference: ( color ) => color,
37
38
  fromReference: ( color ) => color,
38
39
  },
39
40
  [ SRGBColorSpace ]: {
40
41
  transfer: SRGBTransfer,
41
42
  primaries: Rec709Primaries,
43
+ luminanceCoefficients: [ 0.2126, 0.7152, 0.0722 ],
42
44
  toReference: ( color ) => color.convertSRGBToLinear(),
43
45
  fromReference: ( color ) => color.convertLinearToSRGB(),
44
46
  },
45
47
  [ LinearDisplayP3ColorSpace ]: {
46
48
  transfer: LinearTransfer,
47
49
  primaries: P3Primaries,
50
+ luminanceCoefficients: [ 0.2289, 0.6917, 0.0793 ],
48
51
  toReference: ( color ) => color.applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),
49
52
  fromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ),
50
53
  },
51
54
  [ DisplayP3ColorSpace ]: {
52
55
  transfer: SRGBTransfer,
53
56
  primaries: P3Primaries,
57
+ luminanceCoefficients: [ 0.2289, 0.6917, 0.0793 ],
54
58
  toReference: ( color ) => color.convertSRGBToLinear().applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),
55
59
  fromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ).convertLinearToSRGB(),
56
60
  },
@@ -123,6 +127,12 @@ export const ColorManagement = {
123
127
 
124
128
  },
125
129
 
130
+ getLuminanceCoefficients: function ( target, colorSpace = this._workingColorSpace ) {
131
+
132
+ return target.fromArray( COLOR_SPACES[ colorSpace ].luminanceCoefficients );
133
+
134
+ },
135
+
126
136
  };
127
137
 
128
138
 
@@ -0,0 +1,54 @@
1
+ export class Matrix2 {
2
+
3
+ constructor( n11, n12, n21, n22 ) {
4
+
5
+ Matrix2.prototype.isMatrix2 = true;
6
+
7
+ this.elements = [
8
+ 1, 0,
9
+ 0, 1,
10
+ ];
11
+
12
+ if ( n11 !== undefined ) {
13
+
14
+ this.set( n11, n12, n21, n22 );
15
+
16
+ }
17
+
18
+ }
19
+
20
+ identity() {
21
+
22
+ this.set(
23
+ 1, 0,
24
+ 0, 1,
25
+ );
26
+
27
+ return this;
28
+
29
+ }
30
+
31
+ fromArray( array, offset = 0 ) {
32
+
33
+ for ( let i = 0; i < 4; i ++ ) {
34
+
35
+ this.elements[ i ] = array[ i + offset ];
36
+
37
+ }
38
+
39
+ return this;
40
+
41
+ }
42
+
43
+ set( n11, n12, n21, n22 ) {
44
+
45
+ const te = this.elements;
46
+
47
+ te[ 0 ] = n11; te[ 2 ] = n12;
48
+ te[ 1 ] = n21; te[ 3 ] = n22;
49
+
50
+ return this;
51
+
52
+ }
53
+
54
+ }
@@ -413,6 +413,19 @@ class Vector4 {
413
413
 
414
414
  }
415
415
 
416
+ setFromMatrixPosition( m ) {
417
+
418
+ const e = m.elements;
419
+
420
+ this.x = e[ 12 ];
421
+ this.y = e[ 13 ];
422
+ this.z = e[ 14 ];
423
+ this.w = e[ 15 ];
424
+
425
+ return this;
426
+
427
+ }
428
+
416
429
  min( v ) {
417
430
 
418
431
  this.x = Math.min( this.x, v.x );
@@ -0,0 +1,164 @@
1
+ // constants
2
+ export * from './core/constants.js';
3
+
4
+ // core
5
+ export { default as AssignNode } from './core/AssignNode.js';
6
+ export { default as AttributeNode } from './core/AttributeNode.js';
7
+ export { default as BypassNode } from './core/BypassNode.js';
8
+ export { default as CacheNode } from './core/CacheNode.js';
9
+ export { default as ConstNode } from './core/ConstNode.js';
10
+ export { default as ContextNode } from './core/ContextNode.js';
11
+ export { default as IndexNode } from './core/IndexNode.js';
12
+ export { default as LightingModel } from './core/LightingModel.js';
13
+ export { default as Node, registerNode } from './core/Node.js';
14
+ export { default as VarNode } from './core/VarNode.js';
15
+ export { default as NodeAttribute } from './core/NodeAttribute.js';
16
+ export { default as NodeBuilder } from './core/NodeBuilder.js';
17
+ export { default as NodeCache } from './core/NodeCache.js';
18
+ export { default as NodeCode } from './core/NodeCode.js';
19
+ export { default as NodeFrame } from './core/NodeFrame.js';
20
+ export { default as NodeFunctionInput } from './core/NodeFunctionInput.js';
21
+ export { default as NodeUniform } from './core/NodeUniform.js';
22
+ export { default as NodeVar } from './core/NodeVar.js';
23
+ export { default as NodeVarying } from './core/NodeVarying.js';
24
+ export { default as ParameterNode } from './core/ParameterNode.js';
25
+ export { default as PropertyNode } from './core/PropertyNode.js';
26
+ export { default as StackNode } from './core/StackNode.js';
27
+ export { default as TempNode } from './core/TempNode.js';
28
+ export { default as UniformGroupNode } from './core/UniformGroupNode.js';
29
+ export { default as UniformNode } from './core/UniformNode.js';
30
+ export { default as VaryingNode } from './core/VaryingNode.js';
31
+ export { default as OutputStructNode } from './core/OutputStructNode.js';
32
+ export { default as MRTNode } from './core/MRTNode.js';
33
+
34
+ import * as NodeUtils from './core/NodeUtils.js';
35
+ export { NodeUtils };
36
+
37
+ // utils
38
+ export { default as ArrayElementNode } from './utils/ArrayElementNode.js';
39
+ export { default as ConvertNode } from './utils/ConvertNode.js';
40
+ export { default as EquirectUVNode } from './utils/EquirectUVNode.js';
41
+ export { default as FunctionOverloadingNode } from './utils/FunctionOverloadingNode.js';
42
+ export { default as JoinNode } from './utils/JoinNode.js';
43
+ export { default as LoopNode } from './utils/LoopNode.js';
44
+ export { default as MatcapUVNode } from './utils/MatcapUVNode.js';
45
+ export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode.js';
46
+ export { default as OscNode } from './utils/OscNode.js';
47
+ export { default as RemapNode } from './utils/RemapNode.js';
48
+ export { default as RotateNode } from './utils/RotateNode.js';
49
+ export { default as SetNode } from './utils/SetNode.js';
50
+ export { default as SplitNode } from './utils/SplitNode.js';
51
+ export { default as SpriteSheetUVNode } from './utils/SpriteSheetUVNode.js';
52
+ export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
53
+ export { default as TimerNode } from './utils/TimerNode.js';
54
+ export { default as TriplanarTexturesNode } from './utils/TriplanarTexturesNode.js';
55
+ export { default as ReflectorNode } from './utils/ReflectorNode.js';
56
+ export { default as RTTNode } from './utils/RTTNode.js';
57
+
58
+ // accessors
59
+ export { default as UniformArrayNode } from './accessors/UniformArrayNode.js';
60
+ export { default as BufferAttributeNode } from './accessors/BufferAttributeNode.js';
61
+ export { default as BufferNode } from './accessors/BufferNode.js';
62
+ export { default as VertexColorNode } from './accessors/VertexColorNode.js';
63
+ export { default as CubeTextureNode } from './accessors/CubeTextureNode.js';
64
+ export { default as InstanceNode } from './accessors/InstanceNode.js';
65
+ export { default as BatchNode } from './accessors/BatchNode.js';
66
+ export { default as MaterialNode } from './accessors/MaterialNode.js';
67
+ export { default as MaterialReferenceNode } from './accessors/MaterialReferenceNode.js';
68
+ export { default as RendererReferenceNode } from './accessors/RendererReferenceNode.js';
69
+ export { default as MorphNode } from './accessors/MorphNode.js';
70
+ export { default as ModelNode } from './accessors/ModelNode.js';
71
+ export { default as ModelViewProjectionNode } from './accessors/ModelViewProjectionNode.js';
72
+ export { default as Object3DNode } from './accessors/Object3DNode.js';
73
+ export { default as PointUVNode } from './accessors/PointUVNode.js';
74
+ export { default as ReferenceNode } from './accessors/ReferenceNode.js';
75
+ export { default as SkinningNode } from './accessors/SkinningNode.js';
76
+ export { default as SceneNode } from './accessors/SceneNode.js';
77
+ export { default as StorageBufferNode } from './accessors/StorageBufferNode.js';
78
+ export { default as TextureNode } from './accessors/TextureNode.js';
79
+ export { default as TextureSizeNode } from './accessors/TextureSizeNode.js';
80
+ export { default as StorageTextureNode } from './accessors/StorageTextureNode.js';
81
+ export { default as Texture3DNode } from './accessors/Texture3DNode.js';
82
+ export { default as UserDataNode } from './accessors/UserDataNode.js';
83
+
84
+ // display
85
+ export { default as BumpMapNode } from './display/BumpMapNode.js';
86
+ export { default as ColorSpaceNode } from './display/ColorSpaceNode.js';
87
+ export { default as FrontFacingNode } from './display/FrontFacingNode.js';
88
+ export { default as NormalMapNode } from './display/NormalMapNode.js';
89
+ export { default as PosterizeNode } from './display/PosterizeNode.js';
90
+ export { default as ToneMappingNode } from './display/ToneMappingNode.js';
91
+ export { default as ViewportNode } from './display/ViewportNode.js';
92
+ export { default as ViewportTextureNode } from './display/ViewportTextureNode.js';
93
+ export { default as ViewportSharedTextureNode } from './display/ViewportSharedTextureNode.js';
94
+ export { default as ViewportDepthTextureNode } from './display/ViewportDepthTextureNode.js';
95
+ export { default as ViewportDepthNode } from './display/ViewportDepthNode.js';
96
+ export { default as GaussianBlurNode } from './display/GaussianBlurNode.js';
97
+ export { default as AfterImageNode } from './display/AfterImageNode.js';
98
+ export { default as AnamorphicNode } from './display/AnamorphicNode.js';
99
+ export { default as SobelOperatorNode } from './display/SobelOperatorNode.js';
100
+ export { default as DepthOfFieldNode } from './display/DepthOfFieldNode.js';
101
+ export { default as DotScreenNode } from './display/DotScreenNode.js';
102
+ export { default as RGBShiftNode } from './display/RGBShiftNode.js';
103
+ export { default as FilmNode } from './display/FilmNode.js';
104
+ export { default as Lut3DNode } from './display/Lut3DNode.js';
105
+ export { default as GTAONode } from './display/GTAONode.js';
106
+ export { default as DenoiseNode } from './display/DenoiseNode.js';
107
+ export { default as FXAANode } from './display/FXAANode.js';
108
+ export { default as BloomNode } from './display/BloomNode.js';
109
+ export { default as TransitionNode } from './display/TransitionNode.js';
110
+ export { default as RenderOutputNode } from './display/RenderOutputNode.js';
111
+ export { default as PixelationPassNode } from './display/PixelationPassNode.js';
112
+ export { default as SSAAPassNode } from './display/SSAAPassNode.js';
113
+ export { default as StereoPassNode } from './display/StereoPassNode.js';
114
+ export { default as AnaglyphPassNode } from './display/AnaglyphPassNode.js';
115
+ export { default as ParallaxBarrierPassNode } from './display/ParallaxBarrierPassNode.js';
116
+ export { default as PassNode } from './display/PassNode.js';
117
+
118
+ // code
119
+ export { default as ExpressionNode } from './code/ExpressionNode.js';
120
+ export { default as CodeNode } from './code/CodeNode.js';
121
+ export { default as FunctionCallNode } from './code/FunctionCallNode.js';
122
+ export { default as FunctionNode } from './code/FunctionNode.js';
123
+ export { default as ScriptableNode } from './code/ScriptableNode.js';
124
+ export { default as ScriptableValueNode } from './code/ScriptableValueNode.js';
125
+
126
+ // fog
127
+ export { default as FogNode } from './fog/FogNode.js';
128
+ export { default as FogRangeNode } from './fog/FogRangeNode.js';
129
+ export { default as FogExp2Node } from './fog/FogExp2Node.js';
130
+
131
+ // geometry
132
+ export { default as RangeNode } from './geometry/RangeNode.js';
133
+
134
+ // gpgpu
135
+ export { default as ComputeNode } from './gpgpu/ComputeNode.js';
136
+
137
+ // lighting
138
+ export { default as LightNode } from './lighting/LightNode.js';
139
+ export { default as PointLightNode } from './lighting/PointLightNode.js';
140
+ export { default as DirectionalLightNode } from './lighting/DirectionalLightNode.js';
141
+ export { default as RectAreaLightNode } from './lighting/RectAreaLightNode.js';
142
+ export { default as SpotLightNode } from './lighting/SpotLightNode.js';
143
+ export { default as IESSpotLightNode } from './lighting/IESSpotLightNode.js';
144
+ export { default as AmbientLightNode } from './lighting/AmbientLightNode.js';
145
+ export { default as LightsNode } from './lighting/LightsNode.js';
146
+ export { default as LightingNode } from './lighting/LightingNode.js';
147
+ export { default as LightingContextNode } from './lighting/LightingContextNode.js';
148
+ export { default as HemisphereLightNode } from './lighting/HemisphereLightNode.js';
149
+ export { default as LightProbeNode } from './lighting/LightProbeNode.js';
150
+ export { default as EnvironmentNode } from './lighting/EnvironmentNode.js';
151
+ export { default as BasicEnvironmentNode } from './lighting/BasicEnvironmentNode.js';
152
+ export { default as IrradianceNode } from './lighting/IrradianceNode.js';
153
+ export { default as AONode } from './lighting/AONode.js';
154
+ export { default as AnalyticLightNode } from './lighting/AnalyticLightNode.js';
155
+
156
+ // pmrem
157
+ export { default as PMREMNode } from './pmrem/PMREMNode.js';
158
+
159
+ // parsers
160
+ export { default as GLSLNodeParser } from './parsers/GLSLNodeParser.js'; // @TODO: Move to jsm/renderers/webgl.
161
+
162
+ // lighting models
163
+ export { default as PhongLightingModel } from './functions/PhongLightingModel.js';
164
+ export { default as PhysicalLightingModel } from './functions/PhysicalLightingModel.js';
@@ -0,0 +1,176 @@
1
+ // constants
2
+ export * from './core/constants.js';
3
+
4
+ // core
5
+ export * from './core/AssignNode.js';
6
+ export * from './core/AttributeNode.js';
7
+ export * from './core/BypassNode.js';
8
+ export * from './core/CacheNode.js';
9
+ export * from './core/ContextNode.js';
10
+ export * from './core/IndexNode.js';
11
+ export * from './core/ParameterNode.js';
12
+ export * from './core/PropertyNode.js';
13
+ export * from './core/StackNode.js';
14
+ export * from './core/UniformGroupNode.js';
15
+ export * from './core/UniformNode.js';
16
+ export * from './core/VaryingNode.js';
17
+ export * from './core/OutputStructNode.js';
18
+ export * from './core/MRTNode.js';
19
+
20
+ // math
21
+ export * from './math/Hash.js';
22
+ export * from './math/MathUtils.js';
23
+ export * from './math/TriNoise3D.js';
24
+
25
+ // utils
26
+ export { default as EquirectUVNode, equirectUV } from './utils/EquirectUVNode.js';
27
+ export { default as FunctionOverloadingNode, overloadingFn } from './utils/FunctionOverloadingNode.js';
28
+ export { default as LoopNode, Loop, Continue, Break } from './utils/LoopNode.js';
29
+ export { default as MatcapUVNode, matcapUV } from './utils/MatcapUVNode.js';
30
+ export { default as MaxMipLevelNode, maxMipLevel } from './utils/MaxMipLevelNode.js';
31
+ export { default as OscNode, oscSine, oscSquare, oscTriangle, oscSawtooth } from './utils/OscNode.js';
32
+ export * from './utils/Packing.js';
33
+ export { default as RemapNode, remap, remapClamp } from './utils/RemapNode.js';
34
+ export * from './utils/UVUtils.js';
35
+ export * from './utils/SpriteUtils.js';
36
+ export * from './utils/ViewportUtils.js';
37
+ export { default as RotateNode, rotate } from './utils/RotateNode.js';
38
+ export { default as SpriteSheetUVNode, spritesheetUV } from './utils/SpriteSheetUVNode.js';
39
+ export { default as TimerNode, timerLocal, timerGlobal, timerDelta, frameId } from './utils/TimerNode.js';
40
+ export { default as TriplanarTexturesNode, triplanarTextures, triplanarTexture } from './utils/TriplanarTexturesNode.js';
41
+ export { default as ReflectorNode, reflector } from './utils/ReflectorNode.js';
42
+ export { default as RTTNode, rtt, convertToTexture } from './utils/RTTNode.js';
43
+
44
+ // three.js shading language
45
+ export * from './tsl/TSLBase.js';
46
+
47
+ // accessors
48
+ export * from './accessors/AccessorsUtils.js';
49
+ export { default as UniformArrayNode, uniformArray } from './accessors/UniformArrayNode.js';
50
+ export * from './accessors/Bitangent.js';
51
+ export { default as BufferAttributeNode, bufferAttribute, dynamicBufferAttribute, instancedBufferAttribute, instancedDynamicBufferAttribute } from './accessors/BufferAttributeNode.js';
52
+ export { default as BufferNode, buffer } from './accessors/BufferNode.js';
53
+ export * from './accessors/Camera.js';
54
+ export { default as VertexColorNode, vertexColor } from './accessors/VertexColorNode.js';
55
+ export { default as CubeTextureNode, cubeTexture } from './accessors/CubeTextureNode.js';
56
+ export { default as InstanceNode, instance } from './accessors/InstanceNode.js';
57
+ export { default as BatchNode, batch } from './accessors/BatchNode.js';
58
+ export { default as MaterialNode, materialAlphaTest, materialColor, materialShininess, materialEmissive, materialOpacity, materialSpecular, materialSpecularStrength, materialReflectivity, materialRoughness, materialMetalness, materialNormal, materialClearcoat, materialClearcoatRoughness, materialClearcoatNormal, materialRotation, materialSheen, materialSheenRoughness, materialIridescence, materialIridescenceIOR, materialIridescenceThickness, materialLineScale, materialLineDashSize, materialLineGapSize, materialLineWidth, materialLineDashOffset, materialPointWidth, materialAnisotropy, materialAnisotropyVector, materialDispersion, materialLightMap, materialAOMap } from './accessors/MaterialNode.js';
59
+ export * from './accessors/MaterialProperties.js';
60
+ export { default as MaterialReferenceNode, materialReference } from './accessors/MaterialReferenceNode.js';
61
+ export { default as RendererReferenceNode, rendererReference } from './accessors/RendererReferenceNode.js';
62
+ export { default as MorphNode, morphReference } from './accessors/MorphNode.js';
63
+ export * from './accessors/TextureBicubic.js';
64
+ export { default as ModelNode, modelDirection, modelViewMatrix, modelNormalMatrix, modelWorldMatrix, modelPosition, modelViewPosition, modelScale, modelWorldMatrixInverse } from './accessors/ModelNode.js';
65
+ export { default as ModelViewProjectionNode, modelViewProjection } from './accessors/ModelViewProjectionNode.js';
66
+ export * from './accessors/Normal.js';
67
+ export { default as Object3DNode, objectDirection, objectViewMatrix, objectNormalMatrix, objectWorldMatrix, objectPosition, objectScale, objectViewPosition } from './accessors/Object3DNode.js';
68
+ export { default as PointUVNode, pointUV } from './accessors/PointUVNode.js';
69
+ export * from './accessors/Position.js';
70
+ export { default as ReferenceNode, reference, referenceBuffer } from './accessors/ReferenceNode.js';
71
+ export * from './accessors/ReflectVector.js';
72
+ export { default as SkinningNode, skinning, skinningReference } from './accessors/SkinningNode.js';
73
+ export { default as SceneNode, backgroundBlurriness, backgroundIntensity } from './accessors/SceneNode.js';
74
+ export { default as StorageBufferNode, storage, storageObject } from './accessors/StorageBufferNode.js';
75
+ export * from './accessors/Tangent.js';
76
+ export { default as TextureNode, texture, textureLoad, /*textureLevel,*/ sampler } from './accessors/TextureNode.js';
77
+ export { default as TextureSizeNode, textureSize } from './accessors/TextureSizeNode.js';
78
+ export { default as StorageTextureNode, storageTexture, textureStore } from './accessors/StorageTextureNode.js';
79
+ export { default as Texture3DNode, texture3D } from './accessors/Texture3DNode.js';
80
+ export * from './accessors/UV.js';
81
+ export { default as UserDataNode, userData } from './accessors/UserDataNode.js';
82
+ export * from './accessors/VelocityNode.js';
83
+
84
+ // display
85
+ export * from './display/BlendMode.js';
86
+ export { default as BumpMapNode, bumpMap } from './display/BumpMapNode.js';
87
+ export * from './display/ColorAdjustment.js';
88
+ export { default as ColorSpaceNode, toOutputColorSpace, toWorkingColorSpace } from './display/ColorSpaceNode.js';
89
+ export { default as FrontFacingNode, frontFacing, faceDirection } from './display/FrontFacingNode.js';
90
+ export { default as NormalMapNode, normalMap } from './display/NormalMapNode.js';
91
+ export { default as PosterizeNode, posterize } from './display/PosterizeNode.js';
92
+ export { default as ToneMappingNode, toneMapping } from './display/ToneMappingNode.js';
93
+ export { default as ViewportNode, viewport, viewportCoordinate, viewportResolution, viewportUV, viewportTopLeft, viewportBottomLeft } from './display/ViewportNode.js';
94
+ export { default as ViewportTextureNode, viewportTexture, viewportMipTexture } from './display/ViewportTextureNode.js';
95
+ export { default as ViewportSharedTextureNode, viewportSharedTexture } from './display/ViewportSharedTextureNode.js';
96
+ export { default as ViewportDepthTextureNode, viewportDepthTexture } from './display/ViewportDepthTextureNode.js';
97
+ export { default as ViewportDepthNode, viewZToOrthographicDepth, orthographicDepthToViewZ, viewZToPerspectiveDepth, perspectiveDepthToViewZ, depth, linearDepth, viewportLinearDepth } from './display/ViewportDepthNode.js';
98
+ export { default as GaussianBlurNode, gaussianBlur } from './display/GaussianBlurNode.js';
99
+ export { default as AfterImageNode, afterImage } from './display/AfterImageNode.js';
100
+ export { default as AnamorphicNode, anamorphic } from './display/AnamorphicNode.js';
101
+ export { default as SobelOperatorNode, sobel } from './display/SobelOperatorNode.js';
102
+ export { default as DepthOfFieldNode, dof } from './display/DepthOfFieldNode.js';
103
+ export { default as DotScreenNode, dotScreen } from './display/DotScreenNode.js';
104
+ export { default as RGBShiftNode, rgbShift } from './display/RGBShiftNode.js';
105
+ export { default as FilmNode, film } from './display/FilmNode.js';
106
+ export { default as Lut3DNode, lut3D } from './display/Lut3DNode.js';
107
+ export * from './display/MotionBlur.js';
108
+ export { default as GTAONode, ao } from './display/GTAONode.js';
109
+ export { default as DenoiseNode, denoise } from './display/DenoiseNode.js';
110
+ export { default as FXAANode, fxaa } from './display/FXAANode.js';
111
+ export { default as BloomNode, bloom } from './display/BloomNode.js';
112
+ export { default as TransitionNode, transition } from './display/TransitionNode.js';
113
+ export { default as RenderOutputNode, renderOutput } from './display/RenderOutputNode.js';
114
+ export { default as PixelationPassNode, pixelationPass } from './display/PixelationPassNode.js';
115
+ export { default as SSAAPassNode, ssaaPass } from './display/SSAAPassNode.js';
116
+ export { default as StereoPassNode, stereoPass } from './display/StereoPassNode.js';
117
+ export { default as AnaglyphPassNode, anaglyphPass } from './display/AnaglyphPassNode.js';
118
+ export { default as ParallaxBarrierPassNode, parallaxBarrierPass } from './display/ParallaxBarrierPassNode.js';
119
+ export { bleach } from './display/BleachBypass.js';
120
+ export { sepia } from './display/Sepia.js';
121
+
122
+ export { default as PassNode, pass, passTexture, depthPass } from './display/PassNode.js';
123
+
124
+ import * as ColorSpaceFunctions from './display/ColorSpaceFunctions.js';
125
+ export { ColorSpaceFunctions };
126
+
127
+ import * as ToneMappingFunctions from './display/ToneMappingFunctions.js';
128
+ export { ToneMappingFunctions };
129
+
130
+ // code
131
+ export { default as ExpressionNode, expression } from './code/ExpressionNode.js';
132
+ export { default as CodeNode, code, js, wgsl, glsl } from './code/CodeNode.js';
133
+ export { default as FunctionCallNode, call } from './code/FunctionCallNode.js';
134
+ export { default as FunctionNode, wgslFn, glslFn } from './code/FunctionNode.js';
135
+ export { default as ScriptableNode, scriptable, global } from './code/ScriptableNode.js';
136
+ export { default as ScriptableValueNode, scriptableValue } from './code/ScriptableValueNode.js';
137
+
138
+ // fog
139
+ export { default as FogNode, fog } from './fog/FogNode.js';
140
+ export { default as FogRangeNode, rangeFog } from './fog/FogRangeNode.js';
141
+ export { default as FogExp2Node, densityFog } from './fog/FogExp2Node.js';
142
+
143
+ // geometry
144
+ export { default as RangeNode, range } from './geometry/RangeNode.js';
145
+
146
+ // gpgpu
147
+ export { default as ComputeNode, compute } from './gpgpu/ComputeNode.js';
148
+
149
+ // lighting
150
+ export { default as LightNode, lightTargetDirection } from './lighting/LightNode.js';
151
+ export { default as LightsNode, lights } from './lighting/LightsNode.js';
152
+ export { default as LightingContextNode, lightingContext } from './lighting/LightingContextNode.js';
153
+
154
+ // pmrem
155
+ export { default as PMREMNode, pmremTexture } from './pmrem/PMREMNode.js';
156
+ export * from './pmrem/PMREMUtils.js';
157
+
158
+ // procedural
159
+ export * from './procedural/Checker.js';
160
+
161
+ // materialX
162
+ export * from './materialx/MaterialXNodes.js';
163
+
164
+ // functions
165
+ export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
166
+ export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
167
+ export { default as D_GGX } from './functions/BSDF/D_GGX.js';
168
+ export { default as DFGApprox } from './functions/BSDF/DFGApprox.js';
169
+ export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
170
+ export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
171
+ export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
172
+
173
+ export * from './lighting/LightUtils.js';
174
+
175
+ export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness.js';
176
+ export { default as getRoughness } from './functions/material/getRoughness.js';
@@ -1,17 +1,17 @@
1
- import { bitangentView } from './BitangentNode.js';
2
- import { normalView, transformedNormalView } from './NormalNode.js';
3
- import { tangentView } from './TangentNode.js';
4
- import { mat3 } from '../shadernode/ShaderNode.js';
1
+ import { bitangentView } from './Bitangent.js';
2
+ import { normalView, transformedNormalView } from './Normal.js';
3
+ import { tangentView } from './Tangent.js';
4
+ import { mat3 } from '../tsl/TSLBase.js';
5
5
  import { mix } from '../math/MathNode.js';
6
6
  import { anisotropy, anisotropyB, roughness } from '../core/PropertyNode.js';
7
- import { positionViewDirection } from './PositionNode.js';
7
+ import { positionViewDirection } from './Position.js';
8
8
 
9
- export const TBNViewMatrix = mat3( tangentView, bitangentView, normalView );
9
+ export const TBNViewMatrix = /*@__PURE__*/ mat3( tangentView, bitangentView, normalView );
10
10
 
11
- export const parallaxDirection = positionViewDirection.mul( TBNViewMatrix )/*.normalize()*/;
11
+ export const parallaxDirection = /*@__PURE__*/ positionViewDirection.mul( TBNViewMatrix )/*.normalize()*/;
12
12
  export const parallaxUV = ( uv, scale ) => uv.sub( parallaxDirection.mul( scale ) );
13
13
 
14
- export const transformedBentNormalView = ( () => {
14
+ export const transformedBentNormalView = /*@__PURE__*/ ( () => {
15
15
 
16
16
  // https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/anisotropy
17
17
 
@@ -0,0 +1,124 @@
1
+ import Node, { registerNode } from '../core/Node.js';
2
+ import { normalLocal } from './Normal.js';
3
+ import { positionLocal } from './Position.js';
4
+ import { nodeProxy, vec3, mat3, mat4, int, ivec2, float, Fn } from '../tsl/TSLBase.js';
5
+ import { textureLoad } from './TextureNode.js';
6
+ import { textureSize } from './TextureSizeNode.js';
7
+ import { tangentLocal } from './Tangent.js';
8
+ import { instanceIndex, drawIndex } from '../core/IndexNode.js';
9
+ import { varyingProperty } from '../core/PropertyNode.js';
10
+
11
+ class BatchNode extends Node {
12
+
13
+ constructor( batchMesh ) {
14
+
15
+ super( 'void' );
16
+
17
+ this.batchMesh = batchMesh;
18
+
19
+
20
+ this.batchingIdNode = null;
21
+
22
+ }
23
+
24
+ setup( builder ) {
25
+
26
+ // POSITION
27
+
28
+ if ( this.batchingIdNode === null ) {
29
+
30
+ if ( builder.getDrawIndex() === null ) {
31
+
32
+ this.batchingIdNode = instanceIndex;
33
+
34
+ } else {
35
+
36
+ this.batchingIdNode = drawIndex;
37
+
38
+ }
39
+
40
+ }
41
+
42
+ const getIndirectIndex = Fn( ( [ id ] ) => {
43
+
44
+ const size = textureSize( textureLoad( this.batchMesh._indirectTexture ), 0 );
45
+ const x = int( id ).modInt( int( size ) );
46
+ const y = int( id ).div( int( size ) );
47
+ return textureLoad( this.batchMesh._indirectTexture, ivec2( x, y ) ).x;
48
+
49
+ } ).setLayout( {
50
+ name: 'getIndirectIndex',
51
+ type: 'uint',
52
+ inputs: [
53
+ { name: 'id', type: 'int' }
54
+ ]
55
+ } );
56
+
57
+ const indirectId = getIndirectIndex( int( this.batchingIdNode ) );
58
+
59
+ const matricesTexture = this.batchMesh._matricesTexture;
60
+
61
+ const size = textureSize( textureLoad( matricesTexture ), 0 );
62
+ const j = float( indirectId ).mul( 4 ).toInt().toVar();
63
+
64
+ const x = j.modInt( size );
65
+ const y = j.div( int( size ) );
66
+ const batchingMatrix = mat4(
67
+ textureLoad( matricesTexture, ivec2( x, y ) ),
68
+ textureLoad( matricesTexture, ivec2( x.add( 1 ), y ) ),
69
+ textureLoad( matricesTexture, ivec2( x.add( 2 ), y ) ),
70
+ textureLoad( matricesTexture, ivec2( x.add( 3 ), y ) )
71
+ );
72
+
73
+
74
+ const colorsTexture = this.batchMesh._colorsTexture;
75
+
76
+ if ( colorsTexture !== null ) {
77
+
78
+ const getBatchingColor = Fn( ( [ id ] ) => {
79
+
80
+ const size = textureSize( textureLoad( colorsTexture ), 0 ).x;
81
+ const j = id;
82
+ const x = j.modInt( size );
83
+ const y = j.div( size );
84
+ return textureLoad( colorsTexture, ivec2( x, y ) ).rgb;
85
+
86
+ } ).setLayout( {
87
+ name: 'getBatchingColor',
88
+ type: 'vec3',
89
+ inputs: [
90
+ { name: 'id', type: 'int' }
91
+ ]
92
+ } );
93
+
94
+ const color = getBatchingColor( indirectId );
95
+
96
+ varyingProperty( 'vec3', 'vBatchColor' ).assign( color );
97
+
98
+ }
99
+
100
+ const bm = mat3( batchingMatrix );
101
+
102
+ positionLocal.assign( batchingMatrix.mul( positionLocal ) );
103
+
104
+ const transformedNormal = normalLocal.div( vec3( bm[ 0 ].dot( bm[ 0 ] ), bm[ 1 ].dot( bm[ 1 ] ), bm[ 2 ].dot( bm[ 2 ] ) ) );
105
+
106
+ const batchingNormal = bm.mul( transformedNormal ).xyz;
107
+
108
+ normalLocal.assign( batchingNormal );
109
+
110
+ if ( builder.hasGeometryAttribute( 'tangent' ) ) {
111
+
112
+ tangentLocal.mulAssign( bm );
113
+
114
+ }
115
+
116
+ }
117
+
118
+ }
119
+
120
+ export default BatchNode;
121
+
122
+ BatchNode.type = /*@__PURE__*/ registerNode( 'Batch', BatchNode );
123
+
124
+ export const batch = /*@__PURE__*/ nodeProxy( BatchNode );
@@ -1,13 +1,13 @@
1
1
  import { varying } from '../core/VaryingNode.js';
2
- import { cameraViewMatrix } from './CameraNode.js';
3
- import { normalGeometry, normalLocal, normalView, normalWorld, transformedNormalView } from './NormalNode.js';
4
- import { tangentGeometry, tangentLocal, tangentView, tangentWorld, transformedTangentView } from './TangentNode.js';
2
+ import { cameraViewMatrix } from './Camera.js';
3
+ import { normalGeometry, normalLocal, normalView, normalWorld, transformedNormalView } from './Normal.js';
4
+ import { tangentGeometry, tangentLocal, tangentView, tangentWorld, transformedTangentView } from './Tangent.js';
5
5
 
6
6
  const getBitangent = ( crossNormalTangent ) => crossNormalTangent.mul( tangentGeometry.w ).xyz;
7
7
 
8
- export const bitangentGeometry = /*#__PURE__*/ varying( getBitangent( normalGeometry.cross( tangentGeometry ) ), 'v_bitangentGeometry' ).normalize().toVar( 'bitangentGeometry' );
9
- export const bitangentLocal = /*#__PURE__*/ varying( getBitangent( normalLocal.cross( tangentLocal ) ), 'v_bitangentLocal' ).normalize().toVar( 'bitangentLocal' );
10
- export const bitangentView = /*#__PURE__*/ varying( getBitangent( normalView.cross( tangentView ) ), 'v_bitangentView' ).normalize().toVar( 'bitangentView' );
11
- export const bitangentWorld = /*#__PURE__*/ varying( getBitangent( normalWorld.cross( tangentWorld ) ), 'v_bitangentWorld' ).normalize().toVar( 'bitangentWorld' );
12
- export const transformedBitangentView = /*#__PURE__*/ getBitangent( transformedNormalView.cross( transformedTangentView ) ).normalize().toVar( 'transformedBitangentView' );
13
- export const transformedBitangentWorld = /*#__PURE__*/ transformedBitangentView.transformDirection( cameraViewMatrix ).normalize().toVar( 'transformedBitangentWorld' );
8
+ export const bitangentGeometry = /*@__PURE__*/ varying( getBitangent( normalGeometry.cross( tangentGeometry ) ), 'v_bitangentGeometry' ).normalize().toVar( 'bitangentGeometry' );
9
+ export const bitangentLocal = /*@__PURE__*/ varying( getBitangent( normalLocal.cross( tangentLocal ) ), 'v_bitangentLocal' ).normalize().toVar( 'bitangentLocal' );
10
+ export const bitangentView = /*@__PURE__*/ varying( getBitangent( normalView.cross( tangentView ) ), 'v_bitangentView' ).normalize().toVar( 'bitangentView' );
11
+ export const bitangentWorld = /*@__PURE__*/ varying( getBitangent( normalWorld.cross( tangentWorld ) ), 'v_bitangentWorld' ).normalize().toVar( 'bitangentWorld' );
12
+ export const transformedBitangentView = /*@__PURE__*/ getBitangent( transformedNormalView.cross( transformedTangentView ) ).normalize().toVar( 'transformedBitangentView' );
13
+ export const transformedBitangentWorld = /*@__PURE__*/ transformedBitangentView.transformDirection( cameraViewMatrix ).normalize().toVar( 'transformedBitangentWorld' );