super-three 0.156.0 → 0.157.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 (223) hide show
  1. package/build/three.cjs +753 -277
  2. package/build/three.js +753 -277
  3. package/build/three.min.js +2 -2
  4. package/build/three.module.js +750 -276
  5. package/build/three.module.min.js +1 -1
  6. package/examples/jsm/capabilities/WebGL.js +17 -0
  7. package/examples/jsm/controls/DragControls.js +3 -2
  8. package/examples/jsm/csm/CSMShader.js +25 -21
  9. package/examples/jsm/exporters/EXRExporter.js +102 -24
  10. package/examples/jsm/exporters/GLTFExporter.js +1 -1
  11. package/examples/jsm/libs/rhino3dm/rhino3dm.js +8726 -4
  12. package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +8737 -4
  13. package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  14. package/examples/jsm/lights/LightProbeGenerator.js +37 -3
  15. package/examples/jsm/lines/LineMaterial.js +90 -156
  16. package/examples/jsm/loaders/3DMLoader.js +378 -104
  17. package/examples/jsm/loaders/GLTFLoader.js +1 -1
  18. package/examples/jsm/loaders/LDrawLoader.js +22 -16
  19. package/examples/jsm/loaders/RGBELoader.js +1 -1
  20. package/examples/jsm/loaders/USDZLoader.js +215 -12
  21. package/examples/jsm/materials/MeshGouraudMaterial.js +22 -18
  22. package/examples/jsm/nodes/Nodes.js +5 -1
  23. package/examples/jsm/nodes/accessors/BitangentNode.js +1 -1
  24. package/examples/jsm/nodes/accessors/BufferAttributeNode.js +2 -2
  25. package/examples/jsm/nodes/accessors/BufferNode.js +1 -1
  26. package/examples/jsm/nodes/accessors/CameraNode.js +1 -1
  27. package/examples/jsm/nodes/accessors/CubeTextureNode.js +2 -2
  28. package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +6 -5
  29. package/examples/jsm/nodes/accessors/InstanceNode.js +2 -2
  30. package/examples/jsm/nodes/accessors/LineMaterialNode.js +7 -9
  31. package/examples/jsm/nodes/accessors/MaterialNode.js +34 -46
  32. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +9 -9
  33. package/examples/jsm/nodes/accessors/ModelNode.js +1 -1
  34. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +5 -4
  35. package/examples/jsm/nodes/accessors/MorphNode.js +4 -4
  36. package/examples/jsm/nodes/accessors/NormalNode.js +1 -1
  37. package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
  38. package/examples/jsm/nodes/accessors/PointUVNode.js +1 -1
  39. package/examples/jsm/nodes/accessors/PositionNode.js +1 -1
  40. package/examples/jsm/nodes/accessors/ReferenceNode.js +13 -7
  41. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +2 -2
  42. package/examples/jsm/nodes/accessors/SceneNode.js +2 -2
  43. package/examples/jsm/nodes/accessors/SkinningNode.js +2 -2
  44. package/examples/jsm/nodes/accessors/StorageBufferNode.js +1 -1
  45. package/examples/jsm/nodes/accessors/TangentNode.js +1 -1
  46. package/examples/jsm/nodes/accessors/TextureBicubicNode.js +2 -2
  47. package/examples/jsm/nodes/accessors/TextureNode.js +12 -6
  48. package/examples/jsm/nodes/accessors/TextureSizeNode.js +2 -2
  49. package/examples/jsm/nodes/accessors/TextureStoreNode.js +1 -1
  50. package/examples/jsm/nodes/accessors/UVNode.js +1 -1
  51. package/examples/jsm/nodes/accessors/UserDataNode.js +2 -2
  52. package/examples/jsm/nodes/code/CodeNode.js +1 -1
  53. package/examples/jsm/nodes/code/ExpressionNode.js +1 -1
  54. package/examples/jsm/nodes/code/FunctionCallNode.js +1 -1
  55. package/examples/jsm/nodes/code/FunctionNode.js +18 -7
  56. package/examples/jsm/nodes/code/ScriptableNode.js +2 -2
  57. package/examples/jsm/nodes/code/ScriptableValueNode.js +2 -2
  58. package/examples/jsm/nodes/core/ArrayUniformNode.js +1 -1
  59. package/examples/jsm/nodes/core/AttributeNode.js +1 -1
  60. package/examples/jsm/nodes/core/BypassNode.js +1 -1
  61. package/examples/jsm/nodes/core/CacheNode.js +1 -1
  62. package/examples/jsm/nodes/core/ConstNode.js +1 -1
  63. package/examples/jsm/nodes/core/ContextNode.js +2 -2
  64. package/examples/jsm/nodes/core/IndexNode.js +1 -1
  65. package/examples/jsm/nodes/core/InputNode.js +1 -1
  66. package/examples/jsm/nodes/core/Node.js +28 -13
  67. package/examples/jsm/nodes/core/NodeBuilder.js +3 -17
  68. package/examples/jsm/nodes/core/NodeFrame.js +37 -14
  69. package/examples/jsm/nodes/core/OutputStructNode.js +8 -4
  70. package/examples/jsm/nodes/core/PropertyNode.js +3 -3
  71. package/examples/jsm/nodes/core/StackNode.js +1 -1
  72. package/examples/jsm/nodes/core/StructTypeNode.js +1 -1
  73. package/examples/jsm/nodes/core/TempNode.js +1 -1
  74. package/examples/jsm/nodes/core/UniformNode.js +3 -1
  75. package/examples/jsm/nodes/core/VarNode.js +1 -1
  76. package/examples/jsm/nodes/core/VaryingNode.js +1 -1
  77. package/examples/jsm/nodes/core/constants.js +1 -1
  78. package/examples/jsm/nodes/display/BlendModeNode.js +2 -2
  79. package/examples/jsm/nodes/display/BumpMapNode.js +2 -2
  80. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +2 -2
  81. package/examples/jsm/nodes/display/ColorSpaceNode.js +2 -2
  82. package/examples/jsm/nodes/display/FrontFacingNode.js +1 -1
  83. package/examples/jsm/nodes/display/NormalMapNode.js +2 -2
  84. package/examples/jsm/nodes/display/PosterizeNode.js +2 -2
  85. package/examples/jsm/nodes/display/ToneMappingNode.js +2 -2
  86. package/examples/jsm/nodes/display/ViewportDepthNode.js +2 -2
  87. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +1 -1
  88. package/examples/jsm/nodes/display/ViewportNode.js +2 -2
  89. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +1 -1
  90. package/examples/jsm/nodes/display/ViewportTextureNode.js +1 -1
  91. package/examples/jsm/nodes/fog/FogExp2Node.js +2 -2
  92. package/examples/jsm/nodes/fog/FogNode.js +2 -2
  93. package/examples/jsm/nodes/fog/FogRangeNode.js +2 -2
  94. package/examples/jsm/nodes/geometry/RangeNode.js +2 -2
  95. package/examples/jsm/nodes/gpgpu/ComputeNode.js +1 -1
  96. package/examples/jsm/nodes/lighting/AONode.js +2 -2
  97. package/examples/jsm/nodes/lighting/AmbientLightNode.js +3 -3
  98. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +4 -4
  99. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +4 -4
  100. package/examples/jsm/nodes/lighting/EnvironmentNode.js +2 -2
  101. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +3 -3
  102. package/examples/jsm/nodes/lighting/IESSpotLightNode.js +2 -2
  103. package/examples/jsm/nodes/lighting/LightNode.js +2 -2
  104. package/examples/jsm/nodes/lighting/LightingContextNode.js +3 -3
  105. package/examples/jsm/nodes/lighting/LightingNode.js +1 -1
  106. package/examples/jsm/nodes/lighting/LightsNode.js +4 -4
  107. package/examples/jsm/nodes/lighting/PointLightNode.js +3 -3
  108. package/examples/jsm/nodes/lighting/SpotLightNode.js +4 -4
  109. package/examples/jsm/nodes/materials/Line2NodeMaterial.js +449 -0
  110. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +1 -1
  111. package/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +2 -2
  112. package/examples/jsm/nodes/materials/Materials.js +1 -0
  113. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +1 -1
  114. package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +2 -2
  115. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +2 -2
  116. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +3 -3
  117. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
  118. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +3 -3
  119. package/examples/jsm/nodes/materials/NodeMaterial.js +27 -26
  120. package/examples/jsm/nodes/materials/PointsNodeMaterial.js +1 -1
  121. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +2 -2
  122. package/examples/jsm/nodes/math/CondNode.js +1 -1
  123. package/examples/jsm/nodes/math/HashNode.js +8 -9
  124. package/examples/jsm/nodes/math/MathNode.js +2 -2
  125. package/examples/jsm/nodes/math/OperatorNode.js +1 -1
  126. package/examples/jsm/nodes/procedural/CheckerNode.js +3 -3
  127. package/examples/jsm/nodes/shadernode/ShaderNode.js +81 -28
  128. package/examples/jsm/nodes/utils/ArrayElementNode.js +1 -1
  129. package/examples/jsm/nodes/utils/ConvertNode.js +1 -1
  130. package/examples/jsm/nodes/utils/DiscardNode.js +1 -1
  131. package/examples/jsm/nodes/utils/EquirectUVNode.js +2 -2
  132. package/examples/jsm/nodes/utils/JoinNode.js +1 -1
  133. package/examples/jsm/nodes/utils/LoopNode.js +11 -11
  134. package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -2
  135. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +1 -1
  136. package/examples/jsm/nodes/utils/OscNode.js +2 -2
  137. package/examples/jsm/nodes/utils/PackingNode.js +2 -2
  138. package/examples/jsm/nodes/utils/RemapNode.js +2 -2
  139. package/examples/jsm/nodes/utils/RotateUVNode.js +2 -2
  140. package/examples/jsm/nodes/utils/SetNode.js +62 -0
  141. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +2 -2
  142. package/examples/jsm/nodes/utils/SplitNode.js +1 -1
  143. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +2 -2
  144. package/examples/jsm/nodes/utils/TimerNode.js +2 -2
  145. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +2 -2
  146. package/examples/jsm/objects/Sky.js +1 -3
  147. package/examples/jsm/postprocessing/OutputPass.js +3 -2
  148. package/examples/jsm/renderers/common/Background.js +2 -2
  149. package/examples/jsm/renderers/common/Bindings.js +3 -5
  150. package/examples/jsm/renderers/common/Pipelines.js +7 -7
  151. package/examples/jsm/renderers/common/RenderContext.js +3 -0
  152. package/examples/jsm/renderers/common/RenderObject.js +40 -16
  153. package/examples/jsm/renderers/common/RenderObjects.js +8 -14
  154. package/examples/jsm/renderers/common/Renderer.js +40 -13
  155. package/examples/jsm/renderers/common/SampledTexture.js +4 -2
  156. package/examples/jsm/renderers/common/StorageTexture.js +19 -0
  157. package/examples/jsm/renderers/common/Textures.js +14 -9
  158. package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +35 -0
  159. package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +20 -10
  160. package/examples/jsm/renderers/common/nodes/NodeSampler.js +0 -6
  161. package/examples/jsm/renderers/common/nodes/Nodes.js +51 -24
  162. package/examples/jsm/renderers/webgl/WebGLBackend.js +100 -5
  163. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +92 -6
  164. package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +13 -0
  165. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +3 -3
  166. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +14 -2
  167. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +5 -5
  168. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +6 -3
  169. package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +5 -5
  170. package/examples/jsm/renderers/webgpu/utils/WebGPUTexturePassUtils.js +285 -0
  171. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +197 -167
  172. package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
  173. package/examples/jsm/shaders/MMDToonShader.js +4 -4
  174. package/examples/jsm/shaders/OutputShader.js +2 -2
  175. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +6 -6
  176. package/examples/jsm/utils/BufferGeometryUtils.js +6 -4
  177. package/package.json +1 -1
  178. package/src/Three.js +0 -2
  179. package/src/animation/AnimationUtils.js +3 -20
  180. package/src/animation/KeyframeTrack.js +8 -8
  181. package/src/cameras/Camera.js +1 -5
  182. package/src/cameras/CubeCamera.js +14 -8
  183. package/src/constants.js +7 -1
  184. package/src/core/RenderTarget.js +16 -7
  185. package/src/extras/core/CurvePath.js +4 -1
  186. package/src/loaders/MaterialLoader.js +1 -1
  187. package/src/loaders/ObjectLoader.js +6 -0
  188. package/src/materials/Material.js +8 -8
  189. package/src/math/Color.js +1 -5
  190. package/src/math/ColorManagement.js +82 -60
  191. package/src/objects/Sprite.js +2 -2
  192. package/src/renderers/WebGLMultiviewRenderTarget.js +35 -0
  193. package/src/renderers/WebGLRenderer.js +78 -22
  194. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
  195. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js +1 -1
  196. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +35 -2
  197. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -9
  198. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +19 -15
  199. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +2 -2
  200. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +4 -4
  201. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +3 -3
  202. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -6
  203. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +4 -4
  204. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +1 -1
  205. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +16 -16
  206. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +3 -3
  207. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +1 -1
  208. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -1
  209. package/src/renderers/shaders/UniformsUtils.js +2 -2
  210. package/src/renderers/webgl/WebGLBackground.js +5 -4
  211. package/src/renderers/webgl/WebGLLights.js +14 -3
  212. package/src/renderers/webgl/WebGLMultiview.js +100 -0
  213. package/src/renderers/webgl/WebGLProgram.js +84 -5
  214. package/src/renderers/webgl/WebGLPrograms.js +11 -2
  215. package/src/renderers/webgl/WebGLTextures.js +214 -26
  216. package/src/renderers/webgl/WebGLUtils.js +21 -23
  217. package/src/renderers/webxr/WebXRManager.js +36 -12
  218. package/src/scenes/Fog.js +1 -0
  219. package/src/scenes/FogExp2.js +1 -0
  220. package/src/textures/Source.js +2 -2
  221. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureMipmapUtils.js +0 -163
  222. package/src/lights/AmbientLightProbe.js +0 -21
  223. package/src/lights/HemisphereLightProbe.js +0 -30
@@ -5,7 +5,9 @@ import {
5
5
  SphericalHarmonics3,
6
6
  Vector3,
7
7
  SRGBColorSpace,
8
- NoColorSpace
8
+ NoColorSpace,
9
+ HalfFloatType,
10
+ DataUtils
9
11
  } from 'three';
10
12
 
11
13
  class LightProbeGenerator {
@@ -140,18 +142,50 @@ class LightProbeGenerator {
140
142
  const sh = new SphericalHarmonics3();
141
143
  const shCoefficients = sh.coefficients;
142
144
 
145
+ const dataType = cubeRenderTarget.texture.type;
146
+
143
147
  for ( let faceIndex = 0; faceIndex < 6; faceIndex ++ ) {
144
148
 
145
149
  const imageWidth = cubeRenderTarget.width; // assumed to be square
146
- const data = new Uint8Array( imageWidth * imageWidth * 4 );
150
+
151
+ let data;
152
+
153
+ if ( dataType === HalfFloatType ) {
154
+
155
+ data = new Uint16Array( imageWidth * imageWidth * 4 );
156
+
157
+ } else {
158
+
159
+ // assuming UnsignedByteType
160
+
161
+ data = new Uint8Array( imageWidth * imageWidth * 4 );
162
+
163
+ }
164
+
147
165
  renderer.readRenderTargetPixels( cubeRenderTarget, 0, 0, imageWidth, imageWidth, data, faceIndex );
148
166
 
149
167
  const pixelSize = 2 / imageWidth;
150
168
 
151
169
  for ( let i = 0, il = data.length; i < il; i += 4 ) { // RGBA assumed
152
170
 
171
+ let r, g, b;
172
+
173
+ if ( dataType === HalfFloatType ) {
174
+
175
+ r = DataUtils.fromHalfFloat( data[ i ] );
176
+ g = DataUtils.fromHalfFloat( data[ i + 1 ] );
177
+ b = DataUtils.fromHalfFloat( data[ i + 2 ] );
178
+
179
+ } else {
180
+
181
+ r = data[ i ] / 255;
182
+ g = data[ i + 1 ] / 255;
183
+ b = data[ i + 2 ] / 255;
184
+
185
+ }
186
+
153
187
  // pixel color
154
- color.setRGB( data[ i ] / 255, data[ i + 1 ] / 255, data[ i + 2 ] / 255 );
188
+ color.setRGB( r, g, b );
155
189
 
156
190
  // convert to linear color space
157
191
  convertColorToLinear( color, cubeRenderTarget.texture.colorSpace );
@@ -453,247 +453,181 @@ class LineMaterial extends ShaderMaterial {
453
453
 
454
454
  this.isLineMaterial = true;
455
455
 
456
- Object.defineProperties( this, {
457
-
458
- color: {
459
-
460
- enumerable: true,
461
-
462
- get: function () {
463
-
464
- return this.uniforms.diffuse.value;
465
-
466
- },
467
-
468
- set: function ( value ) {
469
-
470
- this.uniforms.diffuse.value = value;
471
-
472
- }
473
-
474
- },
475
-
476
- worldUnits: {
477
-
478
- enumerable: true,
479
-
480
- get: function () {
481
-
482
- return 'WORLD_UNITS' in this.defines;
483
-
484
- },
485
-
486
- set: function ( value ) {
487
-
488
- if ( value === true ) {
489
-
490
- this.defines.WORLD_UNITS = '';
491
-
492
- } else {
493
-
494
- delete this.defines.WORLD_UNITS;
495
-
496
- }
497
-
498
- }
499
-
500
- },
501
-
502
- linewidth: {
503
-
504
- enumerable: true,
505
-
506
- get: function () {
507
-
508
- return this.uniforms.linewidth.value;
509
-
510
- },
511
-
512
- set: function ( value ) {
513
-
514
- this.uniforms.linewidth.value = value;
515
-
516
- }
517
-
518
- },
519
-
520
- dashed: {
521
-
522
- enumerable: true,
456
+ this.setValues( parameters );
523
457
 
524
- get: function () {
458
+ }
525
459
 
526
- return Boolean( 'USE_DASH' in this.defines );
460
+ get color() {
527
461
 
528
- },
462
+ return this.uniforms.diffuse.value;
529
463
 
530
- set( value ) {
464
+ }
531
465
 
532
- if ( Boolean( value ) !== Boolean( 'USE_DASH' in this.defines ) ) {
466
+ set color( value ) {
533
467
 
534
- this.needsUpdate = true;
468
+ this.uniforms.diffuse.value = value;
535
469
 
536
- }
470
+ }
537
471
 
538
- if ( value === true ) {
472
+ get worldUnits() {
539
473
 
540
- this.defines.USE_DASH = '';
474
+ return 'WORLD_UNITS' in this.defines;
541
475
 
542
- } else {
476
+ }
543
477
 
544
- delete this.defines.USE_DASH;
478
+ set worldUnits( value ) {
545
479
 
546
- }
547
-
548
- }
480
+ if ( value === true ) {
549
481
 
550
- },
482
+ this.defines.WORLD_UNITS = '';
551
483
 
552
- dashScale: {
484
+ } else {
553
485
 
554
- enumerable: true,
486
+ delete this.defines.WORLD_UNITS;
555
487
 
556
- get: function () {
488
+ }
557
489
 
558
- return this.uniforms.dashScale.value;
490
+ }
559
491
 
560
- },
492
+ get linewidth() {
561
493
 
562
- set: function ( value ) {
494
+ return this.uniforms.linewidth.value;
563
495
 
564
- this.uniforms.dashScale.value = value;
496
+ }
565
497
 
566
- }
498
+ set linewidth( value ) {
567
499
 
568
- },
500
+ if ( ! this.uniforms.linewidth ) return;
501
+ this.uniforms.linewidth.value = value;
569
502
 
570
- dashSize: {
503
+ }
571
504
 
572
- enumerable: true,
505
+ get dashed() {
573
506
 
574
- get: function () {
507
+ return 'USE_DASH' in this.defines;
575
508
 
576
- return this.uniforms.dashSize.value;
509
+ }
577
510
 
578
- },
511
+ set dashed( value ) {
579
512
 
580
- set: function ( value ) {
513
+ if ( ( value === true ) !== this.dashed ) {
581
514
 
582
- this.uniforms.dashSize.value = value;
515
+ this.needsUpdate = true;
583
516
 
584
- }
517
+ }
585
518
 
586
- },
519
+ if ( value === true ) {
587
520
 
588
- dashOffset: {
521
+ this.defines.USE_DASH = '';
589
522
 
590
- enumerable: true,
523
+ } else {
591
524
 
592
- get: function () {
525
+ delete this.defines.USE_DASH;
593
526
 
594
- return this.uniforms.dashOffset.value;
527
+ }
595
528
 
596
- },
529
+ }
597
530
 
598
- set: function ( value ) {
531
+ get dashScale() {
599
532
 
600
- this.uniforms.dashOffset.value = value;
533
+ return this.uniforms.dashScale.value;
601
534
 
602
- }
535
+ }
603
536
 
604
- },
537
+ set dashScale( value ) {
605
538
 
606
- gapSize: {
539
+ this.uniforms.dashScale.value = value;
607
540
 
608
- enumerable: true,
541
+ }
609
542
 
610
- get: function () {
543
+ get dashSize() {
611
544
 
612
- return this.uniforms.gapSize.value;
545
+ return this.uniforms.dashSize.value;
613
546
 
614
- },
547
+ }
615
548
 
616
- set: function ( value ) {
549
+ set dashSize( value ) {
617
550
 
618
- this.uniforms.gapSize.value = value;
551
+ this.uniforms.dashSize.value = value;
619
552
 
620
- }
553
+ }
621
554
 
622
- },
555
+ get dashOffset() {
623
556
 
624
- opacity: {
557
+ return this.uniforms.dashOffset.value;
625
558
 
626
- enumerable: true,
559
+ }
627
560
 
628
- get: function () {
561
+ set dashOffset( value ) {
629
562
 
630
- return this.uniforms.opacity.value;
563
+ this.uniforms.dashOffset.value = value;
631
564
 
632
- },
565
+ }
633
566
 
634
- set: function ( value ) {
567
+ get gapSize() {
635
568
 
636
- this.uniforms.opacity.value = value;
569
+ return this.uniforms.gapSize.value;
637
570
 
638
- }
571
+ }
639
572
 
640
- },
573
+ set gapSize( value ) {
641
574
 
642
- resolution: {
575
+ this.uniforms.gapSize.value = value;
643
576
 
644
- enumerable: true,
577
+ }
645
578
 
646
- get: function () {
579
+ get opacity() {
647
580
 
648
- return this.uniforms.resolution.value;
581
+ return this.uniforms.opacity.value;
649
582
 
650
- },
583
+ }
651
584
 
652
- set: function ( value ) {
585
+ set opacity( value ) {
653
586
 
654
- this.uniforms.resolution.value.copy( value );
587
+ if ( ! this.uniforms ) return;
588
+ this.uniforms.opacity.value = value;
655
589
 
656
- }
590
+ }
657
591
 
658
- },
592
+ get resolution() {
659
593
 
660
- alphaToCoverage: {
594
+ return this.uniforms.resolution.value;
661
595
 
662
- enumerable: true,
596
+ }
663
597
 
664
- get: function () {
598
+ set resolution( value ) {
665
599
 
666
- return Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines );
600
+ this.uniforms.resolution.value.copy( value );
667
601
 
668
- },
602
+ }
669
603
 
670
- set: function ( value ) {
604
+ get alphaToCoverage() {
671
605
 
672
- if ( Boolean( value ) !== Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines ) ) {
606
+ return 'USE_ALPHA_TO_COVERAGE' in this.defines;
673
607
 
674
- this.needsUpdate = true;
608
+ }
675
609
 
676
- }
610
+ set alphaToCoverage( value ) {
677
611
 
678
- if ( value === true ) {
612
+ if ( ! this.defines ) return;
679
613
 
680
- this.defines.USE_ALPHA_TO_COVERAGE = '';
681
- this.extensions.derivatives = true;
614
+ if ( ( value === true ) !== this.alphaToCoverage ) {
682
615
 
683
- } else {
616
+ this.needsUpdate = true;
684
617
 
685
- delete this.defines.USE_ALPHA_TO_COVERAGE;
686
- this.extensions.derivatives = false;
618
+ }
687
619
 
688
- }
620
+ if ( value === true ) {
689
621
 
690
- }
622
+ this.defines.USE_ALPHA_TO_COVERAGE = '';
623
+ this.extensions.derivatives = true;
691
624
 
692
- }
625
+ } else {
693
626
 
694
- } );
627
+ delete this.defines.USE_ALPHA_TO_COVERAGE;
628
+ this.extensions.derivatives = false;
695
629
 
696
- this.setValues( parameters );
630
+ }
697
631
 
698
632
  }
699
633