@needle-tools/three 0.153.1 → 0.154.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/build/three.cjs +1260 -1517
  2. package/build/three.js +1267 -1524
  3. package/build/three.min.js +7 -8
  4. package/build/three.module.js +859 -1097
  5. package/build/three.module.min.js +6 -7
  6. package/examples/jsm/controls/ArcballControls.js +2 -1
  7. package/examples/jsm/controls/FlyControls.js +25 -9
  8. package/examples/jsm/controls/OrbitControls.js +7 -1
  9. package/examples/jsm/csm/CSM.js +1 -1
  10. package/examples/jsm/effects/AnaglyphEffect.js +1 -1
  11. package/examples/jsm/effects/OutlineEffect.js +1 -1
  12. package/examples/jsm/effects/ParallaxBarrierEffect.js +1 -1
  13. package/examples/jsm/environments/RoomEnvironment.js +6 -2
  14. package/examples/jsm/lines/LineMaterial.js +1 -1
  15. package/examples/jsm/loaders/3DMLoader.js +1 -1
  16. package/examples/jsm/loaders/3MFLoader.js +5 -1
  17. package/examples/jsm/loaders/AMFLoader.js +5 -1
  18. package/examples/jsm/loaders/ColladaLoader.js +4 -1
  19. package/examples/jsm/loaders/FBXLoader.js +9 -2
  20. package/examples/jsm/loaders/LDrawLoader.js +4 -7
  21. package/examples/jsm/loaders/PLYLoader.js +16 -6
  22. package/examples/jsm/loaders/VRMLLoader.js +16 -4
  23. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -2
  24. package/examples/jsm/math/MeshSurfaceSampler.js +76 -35
  25. package/examples/jsm/nodes/Nodes.js +20 -15
  26. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +21 -8
  27. package/examples/jsm/nodes/accessors/CameraNode.js +25 -4
  28. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +7 -1
  29. package/examples/jsm/nodes/accessors/InstanceNode.js +2 -4
  30. package/examples/jsm/nodes/accessors/MaterialNode.js +55 -47
  31. package/examples/jsm/nodes/accessors/ModelNode.js +3 -1
  32. package/examples/jsm/nodes/accessors/MorphNode.js +70 -0
  33. package/examples/jsm/nodes/accessors/NormalNode.js +3 -2
  34. package/examples/jsm/nodes/accessors/Object3DNode.js +10 -2
  35. package/examples/jsm/nodes/accessors/SceneNode.js +46 -0
  36. package/examples/jsm/nodes/accessors/SkinningNode.js +43 -62
  37. package/examples/jsm/nodes/accessors/TangentNode.js +2 -2
  38. package/examples/jsm/nodes/accessors/TextureBicubicNode.js +94 -0
  39. package/examples/jsm/nodes/accessors/TextureNode.js +68 -6
  40. package/examples/jsm/nodes/accessors/TextureSizeNode.js +35 -0
  41. package/examples/jsm/nodes/accessors/UVNode.js +1 -1
  42. package/examples/jsm/nodes/code/CodeNode.js +3 -0
  43. package/examples/jsm/nodes/code/FunctionNode.js +25 -4
  44. package/examples/jsm/nodes/core/BypassNode.js +2 -2
  45. package/examples/jsm/nodes/core/ContextNode.js +2 -0
  46. package/examples/jsm/nodes/core/IndexNode.js +66 -0
  47. package/examples/jsm/nodes/core/LightingModel.js +2 -1
  48. package/examples/jsm/nodes/core/Node.js +12 -15
  49. package/examples/jsm/nodes/core/NodeBuilder.js +24 -5
  50. package/examples/jsm/nodes/core/PropertyNode.js +4 -0
  51. package/examples/jsm/nodes/core/StackNode.js +1 -1
  52. package/examples/jsm/nodes/core/UniformNode.js +1 -1
  53. package/examples/jsm/nodes/core/VarNode.js +1 -3
  54. package/examples/jsm/nodes/display/BlendModeNode.js +9 -9
  55. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +7 -7
  56. package/examples/jsm/nodes/display/ColorSpaceNode.js +50 -49
  57. package/examples/jsm/nodes/display/NormalMapNode.js +3 -3
  58. package/examples/jsm/nodes/display/ToneMappingNode.js +8 -8
  59. package/examples/jsm/nodes/display/ViewportDepthNode.js +69 -0
  60. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +34 -0
  61. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +6 -5
  62. package/examples/jsm/nodes/display/ViewportTextureNode.js +23 -15
  63. package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +5 -5
  64. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -8
  65. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  66. package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +43 -0
  67. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +4 -4
  68. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +2 -2
  69. package/examples/jsm/nodes/functions/BSDF/EnvironmentBRDF.js +13 -0
  70. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +2 -4
  71. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
  72. package/examples/jsm/nodes/functions/PhongLightingModel.js +7 -7
  73. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +129 -18
  74. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +2 -2
  75. package/examples/jsm/nodes/functions/material/getRoughness.js +3 -3
  76. package/examples/jsm/nodes/geometry/RangeNode.js +1 -1
  77. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -2
  78. package/examples/jsm/nodes/lighting/EnvironmentNode.js +91 -62
  79. package/examples/jsm/nodes/lighting/LightUtils.js +2 -2
  80. package/examples/jsm/nodes/lighting/LightingContextNode.js +17 -15
  81. package/examples/jsm/nodes/lighting/PointLightNode.js +3 -3
  82. package/examples/jsm/nodes/lighting/SpotLightNode.js +3 -3
  83. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -15
  84. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -15
  85. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -10
  86. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -9
  87. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +41 -0
  88. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +1 -14
  89. package/examples/jsm/nodes/materials/NodeMaterial.js +79 -28
  90. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +0 -9
  91. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -7
  92. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +3 -3
  93. package/examples/jsm/nodes/materialx/lib/mx_noise.js +14 -14
  94. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +4 -4
  95. package/examples/jsm/nodes/math/MathNode.js +6 -0
  96. package/examples/jsm/nodes/math/OperatorNode.js +1 -1
  97. package/examples/jsm/nodes/procedural/CheckerNode.js +3 -3
  98. package/examples/jsm/nodes/shadernode/ShaderNode.js +24 -4
  99. package/examples/jsm/nodes/utils/LoopNode.js +1 -1
  100. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +1 -1
  101. package/examples/jsm/objects/GroundProjectedSkybox.js +1 -1
  102. package/examples/jsm/objects/Reflector.js +1 -1
  103. package/examples/jsm/objects/Refractor.js +1 -1
  104. package/examples/jsm/objects/Sky.js +1 -1
  105. package/examples/jsm/objects/Water.js +1 -1
  106. package/examples/jsm/objects/Water2.js +1 -1
  107. package/examples/jsm/offscreen/scene.js +1 -0
  108. package/examples/jsm/postprocessing/EffectComposer.js +2 -0
  109. package/examples/jsm/postprocessing/OutlinePass.js +1 -3
  110. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -12
  111. package/examples/jsm/postprocessing/SavePass.js +3 -1
  112. package/examples/jsm/postprocessing/TAARenderPass.js +14 -2
  113. package/examples/jsm/postprocessing/TexturePass.js +2 -1
  114. package/examples/jsm/postprocessing/UnrealBloomPass.js +9 -10
  115. package/examples/jsm/renderers/common/Backend.js +2 -0
  116. package/examples/jsm/renderers/common/Background.js +7 -6
  117. package/examples/jsm/renderers/common/Pipelines.js +26 -14
  118. package/examples/jsm/renderers/common/RenderObject.js +18 -0
  119. package/examples/jsm/renderers/common/RenderObjects.js +29 -29
  120. package/examples/jsm/renderers/common/Renderer.js +48 -6
  121. package/examples/jsm/renderers/common/nodes/Nodes.js +1 -1
  122. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +340 -0
  123. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +23 -19
  124. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +123 -41
  125. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +29 -9
  126. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +4 -0
  127. package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +8 -13
  128. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +85 -3
  129. package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +5 -1
  130. package/examples/jsm/shaders/BlendShader.js +1 -2
  131. package/examples/jsm/shaders/BokehShader2.js +1 -1
  132. package/examples/jsm/shaders/CopyShader.js +2 -2
  133. package/examples/jsm/shaders/ToonShader.js +4 -4
  134. package/examples/jsm/shaders/WaterRefractionShader.js +1 -1
  135. package/examples/jsm/webxr/OculusHandPointerModel.js +34 -13
  136. package/package.json +2 -1
  137. package/src/Three.Legacy.js +0 -228
  138. package/src/animation/PropertyBinding.js +1 -1
  139. package/src/constants.js +1 -1
  140. package/src/core/BufferAttribute.js +0 -24
  141. package/src/core/BufferGeometry.js +0 -7
  142. package/src/loaders/Loader.js +2 -0
  143. package/src/loaders/MaterialLoader.js +1 -0
  144. package/src/materials/Material.js +3 -0
  145. package/src/objects/Skeleton.js +0 -2
  146. package/src/renderers/WebGLRenderer.js +9 -21
  147. package/src/renderers/shaders/ShaderChunk/alphahash_fragment.glsl.js +7 -0
  148. package/src/renderers/shaders/ShaderChunk/alphahash_pars_fragment.glsl.js +68 -0
  149. package/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +6 -0
  150. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -0
  151. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +9 -1
  152. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +1 -1
  153. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +1 -1
  154. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +1 -1
  155. package/src/renderers/shaders/ShaderChunk.js +10 -6
  156. package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
  157. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -1
  158. package/src/renderers/shaders/ShaderLib/cube.glsl.js +1 -1
  159. package/src/renderers/shaders/ShaderLib/depth.glsl.js +2 -0
  160. package/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +2 -0
  161. package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -1
  162. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -2
  163. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +4 -2
  164. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +4 -2
  165. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +4 -2
  166. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +4 -2
  167. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -2
  168. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +4 -2
  169. package/src/renderers/shaders/ShaderLib/points.glsl.js +4 -2
  170. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
  171. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +4 -2
  172. package/src/renderers/webgl/WebGLObjects.js +23 -3
  173. package/src/renderers/webgl/WebGLProgram.js +24 -5
  174. package/src/renderers/webgl/WebGLPrograms.js +3 -0
  175. package/src/renderers/webxr/WebXRManager.js +11 -33
  176. package/src/scenes/Scene.js +0 -14
  177. package/examples/jsm/nodes/core/InstanceIndexNode.js +0 -45
  178. /package/src/renderers/shaders/ShaderChunk/{encodings_fragment.glsl.js → colorspace_fragment.glsl.js} +0 -0
  179. /package/src/renderers/shaders/ShaderChunk/{encodings_pars_fragment.glsl.js → colorspace_pars_fragment.glsl.js} +0 -0
  180. /package/src/renderers/shaders/ShaderChunk/{output_fragment.glsl.js → opaque_fragment.glsl.js} +0 -0
@@ -51,6 +51,7 @@ varying vec3 vWorldPosition;
51
51
  #include <map_pars_fragment>
52
52
  #include <alphamap_pars_fragment>
53
53
  #include <alphatest_pars_fragment>
54
+ #include <alphahash_pars_fragment>
54
55
  #include <clipping_planes_pars_fragment>
55
56
 
56
57
  void main () {
@@ -62,6 +63,7 @@ void main () {
62
63
  #include <map_fragment>
63
64
  #include <alphamap_fragment>
64
65
  #include <alphatest_fragment>
66
+ #include <alphahash_fragment>
65
67
 
66
68
  float dist = length( vWorldPosition - referencePosition );
67
69
  dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
@@ -29,7 +29,7 @@ void main() {
29
29
  gl_FragColor = texture2D( tEquirect, sampleUV );
30
30
 
31
31
  #include <tonemapping_fragment>
32
- #include <encodings_fragment>
32
+ #include <colorspace_fragment>
33
33
 
34
34
  }
35
35
  `;
@@ -65,9 +65,9 @@ void main() {
65
65
 
66
66
  outgoingLight = diffuseColor.rgb; // simple shader
67
67
 
68
- #include <output_fragment>
68
+ #include <opaque_fragment>
69
69
  #include <tonemapping_fragment>
70
- #include <encodings_fragment>
70
+ #include <colorspace_fragment>
71
71
  #include <fog_fragment>
72
72
  #include <premultiplied_alpha_fragment>
73
73
 
@@ -56,6 +56,7 @@ uniform float opacity;
56
56
  #include <map_pars_fragment>
57
57
  #include <alphamap_pars_fragment>
58
58
  #include <alphatest_pars_fragment>
59
+ #include <alphahash_pars_fragment>
59
60
  #include <aomap_pars_fragment>
60
61
  #include <lightmap_pars_fragment>
61
62
  #include <envmap_common_pars_fragment>
@@ -76,6 +77,7 @@ void main() {
76
77
  #include <color_fragment>
77
78
  #include <alphamap_fragment>
78
79
  #include <alphatest_fragment>
80
+ #include <alphahash_fragment>
79
81
  #include <specularmap_fragment>
80
82
 
81
83
  ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
@@ -101,9 +103,9 @@ void main() {
101
103
 
102
104
  #include <envmap_fragment>
103
105
 
104
- #include <output_fragment>
106
+ #include <opaque_fragment>
105
107
  #include <tonemapping_fragment>
106
- #include <encodings_fragment>
108
+ #include <colorspace_fragment>
107
109
  #include <fog_fragment>
108
110
  #include <premultiplied_alpha_fragment>
109
111
  #include <dithering_fragment>
@@ -62,6 +62,7 @@ uniform float opacity;
62
62
  #include <map_pars_fragment>
63
63
  #include <alphamap_pars_fragment>
64
64
  #include <alphatest_pars_fragment>
65
+ #include <alphahash_pars_fragment>
65
66
  #include <aomap_pars_fragment>
66
67
  #include <lightmap_pars_fragment>
67
68
  #include <emissivemap_pars_fragment>
@@ -92,6 +93,7 @@ void main() {
92
93
  #include <color_fragment>
93
94
  #include <alphamap_fragment>
94
95
  #include <alphatest_fragment>
96
+ #include <alphahash_fragment>
95
97
  #include <specularmap_fragment>
96
98
  #include <normal_fragment_begin>
97
99
  #include <normal_fragment_maps>
@@ -109,9 +111,9 @@ void main() {
109
111
  vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
110
112
 
111
113
  #include <envmap_fragment>
112
- #include <output_fragment>
114
+ #include <opaque_fragment>
113
115
  #include <tonemapping_fragment>
114
- #include <encodings_fragment>
116
+ #include <colorspace_fragment>
115
117
  #include <fog_fragment>
116
118
  #include <premultiplied_alpha_fragment>
117
119
  #include <dithering_fragment>
@@ -58,6 +58,7 @@ varying vec3 vViewPosition;
58
58
  #include <map_pars_fragment>
59
59
  #include <alphamap_pars_fragment>
60
60
  #include <alphatest_pars_fragment>
61
+ #include <alphahash_pars_fragment>
61
62
  #include <fog_pars_fragment>
62
63
  #include <normal_pars_fragment>
63
64
  #include <bumpmap_pars_fragment>
@@ -76,6 +77,7 @@ void main() {
76
77
  #include <color_fragment>
77
78
  #include <alphamap_fragment>
78
79
  #include <alphatest_fragment>
80
+ #include <alphahash_fragment>
79
81
  #include <normal_fragment_begin>
80
82
  #include <normal_fragment_maps>
81
83
 
@@ -96,9 +98,9 @@ void main() {
96
98
 
97
99
  vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
98
100
 
99
- #include <output_fragment>
101
+ #include <opaque_fragment>
100
102
  #include <tonemapping_fragment>
101
- #include <encodings_fragment>
103
+ #include <colorspace_fragment>
102
104
  #include <fog_fragment>
103
105
  #include <premultiplied_alpha_fragment>
104
106
  #include <dithering_fragment>
@@ -64,6 +64,7 @@ uniform float opacity;
64
64
  #include <map_pars_fragment>
65
65
  #include <alphamap_pars_fragment>
66
66
  #include <alphatest_pars_fragment>
67
+ #include <alphahash_pars_fragment>
67
68
  #include <aomap_pars_fragment>
68
69
  #include <lightmap_pars_fragment>
69
70
  #include <emissivemap_pars_fragment>
@@ -94,6 +95,7 @@ void main() {
94
95
  #include <color_fragment>
95
96
  #include <alphamap_fragment>
96
97
  #include <alphatest_fragment>
98
+ #include <alphahash_fragment>
97
99
  #include <specularmap_fragment>
98
100
  #include <normal_fragment_begin>
99
101
  #include <normal_fragment_maps>
@@ -111,9 +113,9 @@ void main() {
111
113
  vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
112
114
 
113
115
  #include <envmap_fragment>
114
- #include <output_fragment>
116
+ #include <opaque_fragment>
115
117
  #include <tonemapping_fragment>
116
- #include <encodings_fragment>
118
+ #include <colorspace_fragment>
117
119
  #include <fog_fragment>
118
120
  #include <premultiplied_alpha_fragment>
119
121
  #include <dithering_fragment>
@@ -130,6 +130,7 @@ varying vec3 vViewPosition;
130
130
  #include <map_pars_fragment>
131
131
  #include <alphamap_pars_fragment>
132
132
  #include <alphatest_pars_fragment>
133
+ #include <alphahash_pars_fragment>
133
134
  #include <aomap_pars_fragment>
134
135
  #include <lightmap_pars_fragment>
135
136
  #include <emissivemap_pars_fragment>
@@ -165,6 +166,7 @@ void main() {
165
166
  #include <color_fragment>
166
167
  #include <alphamap_fragment>
167
168
  #include <alphatest_fragment>
169
+ #include <alphahash_fragment>
168
170
  #include <roughnessmap_fragment>
169
171
  #include <metalnessmap_fragment>
170
172
  #include <normal_fragment_begin>
@@ -209,9 +211,9 @@ void main() {
209
211
 
210
212
  #endif
211
213
 
212
- #include <output_fragment>
214
+ #include <opaque_fragment>
213
215
  #include <tonemapping_fragment>
214
- #include <encodings_fragment>
216
+ #include <colorspace_fragment>
215
217
  #include <fog_fragment>
216
218
  #include <premultiplied_alpha_fragment>
217
219
  #include <dithering_fragment>
@@ -60,6 +60,7 @@ uniform float opacity;
60
60
  #include <map_pars_fragment>
61
61
  #include <alphamap_pars_fragment>
62
62
  #include <alphatest_pars_fragment>
63
+ #include <alphahash_pars_fragment>
63
64
  #include <aomap_pars_fragment>
64
65
  #include <lightmap_pars_fragment>
65
66
  #include <emissivemap_pars_fragment>
@@ -88,6 +89,7 @@ void main() {
88
89
  #include <color_fragment>
89
90
  #include <alphamap_fragment>
90
91
  #include <alphatest_fragment>
92
+ #include <alphahash_fragment>
91
93
  #include <normal_fragment_begin>
92
94
  #include <normal_fragment_maps>
93
95
  #include <emissivemap_fragment>
@@ -103,9 +105,9 @@ void main() {
103
105
 
104
106
  vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
105
107
 
106
- #include <output_fragment>
108
+ #include <opaque_fragment>
107
109
  #include <tonemapping_fragment>
108
- #include <encodings_fragment>
110
+ #include <colorspace_fragment>
109
111
  #include <fog_fragment>
110
112
  #include <premultiplied_alpha_fragment>
111
113
  #include <dithering_fragment>
@@ -56,6 +56,7 @@ uniform float opacity;
56
56
  #include <color_pars_fragment>
57
57
  #include <map_particle_pars_fragment>
58
58
  #include <alphatest_pars_fragment>
59
+ #include <alphahash_pars_fragment>
59
60
  #include <fog_pars_fragment>
60
61
  #include <logdepthbuf_pars_fragment>
61
62
  #include <clipping_planes_pars_fragment>
@@ -71,12 +72,13 @@ void main() {
71
72
  #include <map_particle_fragment>
72
73
  #include <color_fragment>
73
74
  #include <alphatest_fragment>
75
+ #include <alphahash_fragment>
74
76
 
75
77
  outgoingLight = diffuseColor.rgb;
76
78
 
77
- #include <output_fragment>
79
+ #include <opaque_fragment>
78
80
  #include <tonemapping_fragment>
79
- #include <encodings_fragment>
81
+ #include <colorspace_fragment>
80
82
  #include <fog_fragment>
81
83
  #include <premultiplied_alpha_fragment>
82
84
 
@@ -47,7 +47,7 @@ void main() {
47
47
  gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
48
48
 
49
49
  #include <tonemapping_fragment>
50
- #include <encodings_fragment>
50
+ #include <colorspace_fragment>
51
51
  #include <fog_fragment>
52
52
 
53
53
  }
@@ -52,6 +52,7 @@ uniform float opacity;
52
52
  #include <map_pars_fragment>
53
53
  #include <alphamap_pars_fragment>
54
54
  #include <alphatest_pars_fragment>
55
+ #include <alphahash_pars_fragment>
55
56
  #include <fog_pars_fragment>
56
57
  #include <logdepthbuf_pars_fragment>
57
58
  #include <clipping_planes_pars_fragment>
@@ -67,12 +68,13 @@ void main() {
67
68
  #include <map_fragment>
68
69
  #include <alphamap_fragment>
69
70
  #include <alphatest_fragment>
71
+ #include <alphahash_fragment>
70
72
 
71
73
  outgoingLight = diffuseColor.rgb;
72
74
 
73
- #include <output_fragment>
75
+ #include <opaque_fragment>
74
76
  #include <tonemapping_fragment>
75
- #include <encodings_fragment>
77
+ #include <colorspace_fragment>
76
78
  #include <fog_fragment>
77
79
 
78
80
  }
@@ -27,11 +27,31 @@ function WebGLObjects( gl, geometries, attributes, info ) {
27
27
 
28
28
  }
29
29
 
30
- attributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );
30
+ if ( updateMap.get( object ) !== frame ) {
31
31
 
32
- if ( object.instanceColor !== null ) {
32
+ attributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );
33
33
 
34
- attributes.update( object.instanceColor, gl.ARRAY_BUFFER );
34
+ if ( object.instanceColor !== null ) {
35
+
36
+ attributes.update( object.instanceColor, gl.ARRAY_BUFFER );
37
+
38
+ }
39
+
40
+ updateMap.set( object, frame );
41
+
42
+ }
43
+
44
+ }
45
+
46
+ if ( object.isSkinnedMesh ) {
47
+
48
+ const skeleton = object.skeleton;
49
+
50
+ if ( updateMap.get( skeleton ) !== frame ) {
51
+
52
+ skeleton.update();
53
+
54
+ updateMap.set( skeleton, frame );
35
55
 
36
56
  }
37
57
 
@@ -211,13 +211,30 @@ function resolveIncludes( string ) {
211
211
 
212
212
  }
213
213
 
214
+ const shaderChunkMap = new Map( [
215
+ [ 'encodings_fragment', 'colorspace_fragment' ], // @deprecated, r154
216
+ [ 'encodings_pars_fragment', 'colorspace_pars_fragment' ], // @deprecated, r154
217
+ [ 'output_fragment', 'opaque_fragment' ], // @deprecated, r154
218
+ ] );
219
+
214
220
  function includeReplacer( match, include ) {
215
221
 
216
- const string = ShaderChunk[ include ];
222
+ let string = ShaderChunk[ include ];
217
223
 
218
224
  if ( string === undefined ) {
219
225
 
220
- throw new Error( 'Can not resolve #include <' + include + '>' );
226
+ const newInclude = shaderChunkMap.get( include );
227
+
228
+ if ( newInclude !== undefined ) {
229
+
230
+ string = ShaderChunk[ newInclude ];
231
+ console.warn( 'THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.', include, newInclude );
232
+
233
+ } else {
234
+
235
+ throw new Error( 'Can not resolve #include <' + include + '>' );
236
+
237
+ }
221
238
 
222
239
  }
223
240
 
@@ -493,6 +510,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
493
510
  parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',
494
511
  parameters.metalnessMap ? '#define USE_METALNESSMAP' : '',
495
512
  parameters.alphaMap ? '#define USE_ALPHAMAP' : '',
513
+ parameters.alphaHash ? '#define USE_ALPHAHASH' : '',
496
514
 
497
515
  parameters.transmission ? '#define USE_TRANSMISSION' : '',
498
516
  parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',
@@ -536,7 +554,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
536
554
 
537
555
  //
538
556
 
539
- parameters.vertexTangents ? '#define USE_TANGENT' : '',
557
+ parameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',
540
558
  parameters.vertexColors ? '#define USE_COLOR' : '',
541
559
  parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',
542
560
  parameters.vertexUv1s ? '#define USE_UV1' : '',
@@ -714,6 +732,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
714
732
 
715
733
  parameters.alphaMap ? '#define USE_ALPHAMAP' : '',
716
734
  parameters.alphaTest ? '#define USE_ALPHATEST' : '',
735
+ parameters.alphaHash ? '#define USE_ALPHAHASH' : '',
717
736
 
718
737
  parameters.sheen ? '#define USE_SHEEN' : '',
719
738
  parameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',
@@ -723,7 +742,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
723
742
  parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',
724
743
  parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',
725
744
 
726
- parameters.vertexTangents ? '#define USE_TANGENT' : '',
745
+ parameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',
727
746
  parameters.vertexColors || parameters.instancingColor ? '#define USE_COLOR' : '',
728
747
  parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',
729
748
  parameters.vertexUv1s ? '#define USE_UV1' : '',
@@ -760,7 +779,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
760
779
  parameters.dithering ? '#define DITHERING' : '',
761
780
  parameters.opaque ? '#define OPAQUE' : '',
762
781
 
763
- ShaderChunk[ 'encodings_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below
782
+ ShaderChunk[ 'colorspace_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below
764
783
  getTexelEncodingFunction( 'linearToOutputTexel', parameters.outputColorSpace ),
765
784
 
766
785
  parameters.useDepthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '',
@@ -152,6 +152,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
152
152
 
153
153
  const HAS_ALPHATEST = material.alphaTest > 0;
154
154
 
155
+ const HAS_ALPHAHASH = !! material.alphaHash;
156
+
155
157
  const HAS_EXTENSIONS = !! material.extensions;
156
158
 
157
159
  const HAS_ATTRIBUTE_UV1 = !! geometry.attributes.uv1;
@@ -232,6 +234,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
232
234
 
233
235
  alphaMap: HAS_ALPHAMAP,
234
236
  alphaTest: HAS_ALPHATEST,
237
+ alphaHash: HAS_ALPHAHASH,
235
238
 
236
239
  combine: material.combine,
237
240
 
@@ -42,8 +42,6 @@ class WebXRManager extends EventDispatcher {
42
42
 
43
43
  //
44
44
 
45
- let userCamera = null;
46
-
47
45
  const cameraL = new PerspectiveCamera();
48
46
  cameraL.layers.enable( 1 );
49
47
  cameraL.viewport = new Vector4();
@@ -63,23 +61,11 @@ class WebXRManager extends EventDispatcher {
63
61
 
64
62
  //
65
63
 
66
- this.cameraAutoUpdate = true; // @deprecated, r153
64
+ this.cameraAutoUpdate = true;
67
65
  this.enabled = false;
68
66
 
69
67
  this.isPresenting = false;
70
68
 
71
- this.getCamera = function () {
72
-
73
- return cameraXR;
74
-
75
- };
76
-
77
- this.setUserCamera = function ( value ) {
78
-
79
- userCamera = value;
80
-
81
- };
82
-
83
69
  this.getController = function ( index ) {
84
70
 
85
71
  let controller = controllers[ index ];
@@ -516,15 +502,9 @@ class WebXRManager extends EventDispatcher {
516
502
 
517
503
  }
518
504
 
519
- this.updateCameraXR = function ( camera ) {
520
-
521
- if ( session === null ) return camera;
522
-
523
- if ( userCamera ) {
524
-
525
- camera = userCamera;
505
+ this.updateCamera = function ( camera ) {
526
506
 
527
- }
507
+ if ( session === null ) return;
528
508
 
529
509
  cameraXR.near = cameraR.near = cameraL.near = camera.near;
530
510
  cameraXR.far = cameraR.far = cameraL.far = camera.far;
@@ -570,19 +550,11 @@ class WebXRManager extends EventDispatcher {
570
550
 
571
551
  // update user camera and its children
572
552
 
573
- if ( userCamera ) {
574
-
575
- updateUserCamera( cameraXR, parent );
576
-
577
- }
578
-
579
- return cameraXR;
553
+ updateUserCamera( camera, cameraXR, parent );
580
554
 
581
555
  };
582
556
 
583
- function updateUserCamera( cameraXR, parent ) {
584
-
585
- const camera = userCamera;
557
+ function updateUserCamera( camera, cameraXR, parent ) {
586
558
 
587
559
  if ( parent === null ) {
588
560
 
@@ -619,6 +591,12 @@ class WebXRManager extends EventDispatcher {
619
591
 
620
592
  }
621
593
 
594
+ this.getCamera = function () {
595
+
596
+ return cameraXR;
597
+
598
+ };
599
+
622
600
  this.getFoveation = function () {
623
601
 
624
602
  if ( glProjLayer === null && glBaseLayer === null ) {
@@ -58,20 +58,6 @@ class Scene extends Object3D {
58
58
 
59
59
  }
60
60
 
61
- get autoUpdate() { // @deprecated, r144
62
-
63
- console.warn( 'THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144.' );
64
- return this.matrixWorldAutoUpdate;
65
-
66
- }
67
-
68
- set autoUpdate( value ) { // @deprecated, r144
69
-
70
- console.warn( 'THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144.' );
71
- this.matrixWorldAutoUpdate = value;
72
-
73
- }
74
-
75
61
  }
76
62
 
77
63
  export { Scene };
@@ -1,45 +0,0 @@
1
- import Node, { addNodeClass } from './Node.js';
2
- import { varying } from '../core/VaryingNode.js';
3
- import { nodeImmutable } from '../shadernode/ShaderNode.js';
4
-
5
- class InstanceIndexNode extends Node {
6
-
7
- constructor() {
8
-
9
- super( 'uint' );
10
-
11
- this.isInstanceIndexNode = true;
12
-
13
- }
14
-
15
- generate( builder ) {
16
-
17
- const nodeType = this.getNodeType( builder );
18
-
19
- const propertyName = builder.getInstanceIndex();
20
-
21
- let output = null;
22
-
23
- if ( builder.shaderStage === 'vertex' || builder.shaderStage === 'compute' ) {
24
-
25
- output = propertyName;
26
-
27
- } else {
28
-
29
- const nodeVarying = varying( this );
30
-
31
- output = nodeVarying.build( builder, nodeType );
32
-
33
- }
34
-
35
- return output;
36
-
37
- }
38
-
39
- }
40
-
41
- export default InstanceIndexNode;
42
-
43
- export const instanceIndex = nodeImmutable( InstanceIndexNode );
44
-
45
- addNodeClass( InstanceIndexNode );