three-stdlib 2.23.5 → 2.23.7

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.
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const THREE = require("three");
4
+ class CapsuleGeometry extends THREE.LatheGeometry {
5
+ constructor(radius = 1, length = 1, capSegments = 4, radialSegments = 8) {
6
+ const path = new THREE.Path();
7
+ path.absarc(0, -length / 2, radius, Math.PI * 1.5, 0);
8
+ path.absarc(0, length / 2, radius, 0, Math.PI * 0.5);
9
+ super(path.getPoints(capSegments), radialSegments);
10
+ this.type = "CapsuleGeometry";
11
+ this.parameters = {
12
+ radius,
13
+ height: length,
14
+ capSegments,
15
+ radialSegments
16
+ };
17
+ }
18
+ static fromJSON(data) {
19
+ return new CapsuleGeometry(data.radius, data.length, data.capSegments, data.radialSegments);
20
+ }
21
+ }
22
+ exports.CapsuleGeometry = CapsuleGeometry;
@@ -0,0 +1,22 @@
1
+ import { LatheGeometry, Path } from "three";
2
+ class CapsuleGeometry extends LatheGeometry {
3
+ constructor(radius = 1, length = 1, capSegments = 4, radialSegments = 8) {
4
+ const path = new Path();
5
+ path.absarc(0, -length / 2, radius, Math.PI * 1.5, 0);
6
+ path.absarc(0, length / 2, radius, 0, Math.PI * 0.5);
7
+ super(path.getPoints(capSegments), radialSegments);
8
+ this.type = "CapsuleGeometry";
9
+ this.parameters = {
10
+ radius,
11
+ height: length,
12
+ capSegments,
13
+ radialSegments
14
+ };
15
+ }
16
+ static fromJSON(data) {
17
+ return new CapsuleGeometry(data.radius, data.length, data.capSegments, data.radialSegments);
18
+ }
19
+ }
20
+ export {
21
+ CapsuleGeometry
22
+ };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
+ const CapsuleGeometry = require("../_polyfill/CapsuleGeometry.cjs");
4
5
  class MMDPhysics {
5
6
  /**
6
7
  * @param {THREE.SkinnedMesh} mesh
@@ -815,7 +816,7 @@ class MMDPhysicsHelper extends THREE.Object3D {
815
816
  case 1:
816
817
  return new THREE.BoxGeometry(param2.width * 2, param2.height * 2, param2.depth * 2, 8, 8, 8);
817
818
  case 2:
818
- return new THREE.CapsuleGeometry(param2.width, param2.height, 8, 16);
819
+ return new CapsuleGeometry.CapsuleGeometry(param2.width, param2.height, 8, 16);
819
820
  default:
820
821
  return null;
821
822
  }
@@ -1,4 +1,5 @@
1
- import { Vector3, Matrix4, Quaternion, Euler, Bone, Object3D, MeshBasicMaterial, Color, CapsuleGeometry, BoxGeometry, SphereGeometry, Mesh } from "three";
1
+ import { Vector3, Matrix4, Quaternion, Euler, Bone, Object3D, MeshBasicMaterial, Color, BoxGeometry, SphereGeometry, Mesh } from "three";
2
+ import { CapsuleGeometry } from "../_polyfill/CapsuleGeometry.js";
2
3
  class MMDPhysics {
3
4
  /**
4
5
  * @param {THREE.SkinnedMesh} mesh
@@ -560,7 +560,7 @@ class GLTFWriter {
560
560
  context.putImageData(composite, 0, 0);
561
561
  const reference = metalnessMap || roughnessMap;
562
562
  const texture = reference.clone();
563
- texture.source = new THREE.Source(canvas);
563
+ texture.source = new THREE.Texture(canvas).source;
564
564
  if ("colorSpace" in texture)
565
565
  texture.colorSpace = "";
566
566
  else
@@ -1,4 +1,4 @@
1
- import { PlaneGeometry, ShaderMaterial, Uniform, Mesh, PerspectiveCamera, Scene, WebGLRenderer, Texture, NearestFilter, NearestMipmapNearestFilter, NearestMipmapLinearFilter, LinearFilter, LinearMipmapNearestFilter, LinearMipmapLinearFilter, ClampToEdgeWrapping, RepeatWrapping, MirroredRepeatWrapping, Color, MathUtils, Vector3, CompressedTexture, Source, RGBAFormat, DoubleSide, REVISION, BufferAttribute, PropertyBinding, InterpolateDiscrete, Matrix4, InterpolateLinear } from "three";
1
+ import { PlaneGeometry, ShaderMaterial, Uniform, Mesh, PerspectiveCamera, Scene, WebGLRenderer, Texture, NearestFilter, NearestMipmapNearestFilter, NearestMipmapLinearFilter, LinearFilter, LinearMipmapNearestFilter, LinearMipmapLinearFilter, ClampToEdgeWrapping, RepeatWrapping, MirroredRepeatWrapping, Color, MathUtils, Vector3, CompressedTexture, RGBAFormat, DoubleSide, REVISION, BufferAttribute, PropertyBinding, InterpolateDiscrete, Matrix4, InterpolateLinear } from "three";
2
2
  let _renderer;
3
3
  let fullscreenQuadGeometry;
4
4
  let fullscreenQuadMaterial;
@@ -558,7 +558,7 @@ class GLTFWriter {
558
558
  context.putImageData(composite, 0, 0);
559
559
  const reference = metalnessMap || roughnessMap;
560
560
  const texture = reference.clone();
561
- texture.source = new Source(canvas);
561
+ texture.source = new Texture(canvas).source;
562
562
  if ("colorSpace" in texture)
563
563
  texture.colorSpace = "";
564
564
  else
@@ -132,11 +132,10 @@ class GLTFLoader extends THREE.Loader {
132
132
  let json;
133
133
  const extensions = {};
134
134
  const plugins = {};
135
- const textDecoder = new TextDecoder();
136
135
  if (typeof data === "string") {
137
136
  json = JSON.parse(data);
138
137
  } else if (data instanceof ArrayBuffer) {
139
- const magic = textDecoder.decode(new Uint8Array(data, 0, 4));
138
+ const magic = THREE.LoaderUtils.decodeText(new Uint8Array(data.slice(0, 4)));
140
139
  if (magic === BINARY_EXTENSION_HEADER_MAGIC) {
141
140
  try {
142
141
  extensions[EXTENSIONS.KHR_BINARY_GLTF] = new GLTFBinaryExtension(data);
@@ -147,7 +146,7 @@ class GLTFLoader extends THREE.Loader {
147
146
  }
148
147
  json = JSON.parse(extensions[EXTENSIONS.KHR_BINARY_GLTF].content);
149
148
  } else {
150
- json = JSON.parse(textDecoder.decode(data));
149
+ json = JSON.parse(THREE.LoaderUtils.decodeText(new Uint8Array(data)));
151
150
  }
152
151
  } else {
153
152
  json = data;
@@ -348,7 +347,7 @@ class GLTFMaterialsUnlitExtension {
348
347
  materialParams.opacity = array[3];
349
348
  }
350
349
  if (metallicRoughness.baseColorTexture !== void 0) {
351
- pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, THREE.SRGBColorSpace));
350
+ pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, 3001));
352
351
  }
353
352
  }
354
353
  return Promise.all(pending);
@@ -490,7 +489,7 @@ class GLTFMaterialsSheenExtension {
490
489
  materialParams.sheenRoughness = extension.sheenRoughnessFactor;
491
490
  }
492
491
  if (extension.sheenColorTexture !== void 0) {
493
- pending.push(parser.assignTexture(materialParams, "sheenColorMap", extension.sheenColorTexture, THREE.SRGBColorSpace));
492
+ pending.push(parser.assignTexture(materialParams, "sheenColorMap", extension.sheenColorTexture, 3001));
494
493
  }
495
494
  if (extension.sheenRoughnessTexture !== void 0) {
496
495
  pending.push(parser.assignTexture(materialParams, "sheenRoughnessMap", extension.sheenRoughnessTexture));
@@ -608,7 +607,8 @@ class GLTFMaterialsSpecularExtension {
608
607
  materialParams.specularColor = new THREE.Color(colorArray[0], colorArray[1], colorArray[2]);
609
608
  if (extension.specularColorTexture !== void 0) {
610
609
  pending.push(
611
- parser.assignTexture(materialParams, "specularColorMap", extension.specularColorTexture, THREE.SRGBColorSpace)
610
+ parser.assignTexture(materialParams, "specularColorMap", extension.specularColorTexture, 3001)
611
+ // sRGBEncoding
612
612
  );
613
613
  }
614
614
  return Promise.all(pending);
@@ -890,9 +890,8 @@ class GLTFBinaryExtension {
890
890
  this.content = null;
891
891
  this.body = null;
892
892
  const headerView = new DataView(data, 0, BINARY_EXTENSION_HEADER_LENGTH);
893
- const textDecoder = new TextDecoder();
894
893
  this.header = {
895
- magic: textDecoder.decode(new Uint8Array(data.slice(0, 4))),
894
+ magic: THREE.LoaderUtils.decodeText(new Uint8Array(data.slice(0, 4))),
896
895
  version: headerView.getUint32(4, true),
897
896
  length: headerView.getUint32(8, true)
898
897
  };
@@ -911,7 +910,7 @@ class GLTFBinaryExtension {
911
910
  chunkIndex += 4;
912
911
  if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON) {
913
912
  const contentArray = new Uint8Array(data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength);
914
- this.content = textDecoder.decode(contentArray);
913
+ this.content = THREE.LoaderUtils.decodeText(contentArray);
915
914
  } else if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN) {
916
915
  const byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex;
917
916
  this.body = data.slice(byteOffset, byteOffset + chunkLength);
@@ -1041,7 +1040,7 @@ class GLTFCubicSplineInterpolant extends THREE.Interpolant {
1041
1040
  return result;
1042
1041
  }
1043
1042
  }
1044
- const _q = new THREE.Quaternion();
1043
+ const _q = /* @__PURE__ */ new THREE.Quaternion();
1045
1044
  class GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant {
1046
1045
  interpolate_(i1, t0, t, t1) {
1047
1046
  const result = super.interpolate_(i1, t0, t, t1);
@@ -1104,10 +1103,18 @@ const ATTRIBUTES = {
1104
1103
  POSITION: "position",
1105
1104
  NORMAL: "normal",
1106
1105
  TANGENT: "tangent",
1107
- TEXCOORD_0: "uv",
1108
- TEXCOORD_1: "uv1",
1109
- TEXCOORD_2: "uv2",
1110
- TEXCOORD_3: "uv3",
1106
+ // uv => uv1, 4 uv channels
1107
+ // https://github.com/mrdoob/three.js/pull/25943
1108
+ // https://github.com/mrdoob/three.js/pull/25788
1109
+ ...THREE.REVISION.replace(/\D+/g, "") >= 152 ? {
1110
+ TEXCOORD_0: "uv",
1111
+ TEXCOORD_1: "uv1",
1112
+ TEXCOORD_2: "uv2",
1113
+ TEXCOORD_3: "uv3"
1114
+ } : {
1115
+ TEXCOORD_0: "uv",
1116
+ TEXCOORD_1: "uv2"
1117
+ },
1111
1118
  COLOR_0: "color",
1112
1119
  WEIGHTS_0: "skinWeight",
1113
1120
  JOINTS_0: "skinIndex"
@@ -1277,7 +1284,7 @@ function getImageURIMimeType(uri) {
1277
1284
  return "image/webp";
1278
1285
  return "image/png";
1279
1286
  }
1280
- const _identityMatrix = new THREE.Matrix4();
1287
+ const _identityMatrix = /* @__PURE__ */ new THREE.Matrix4();
1281
1288
  class GLTFParser {
1282
1289
  constructor(json = {}, options = {}) {
1283
1290
  this.json = json;
@@ -1759,7 +1766,7 @@ class GLTFParser {
1759
1766
  * @param {Object} mapDef
1760
1767
  * @return {Promise<Texture>}
1761
1768
  */
1762
- assignTexture(materialParams, mapName, mapDef, colorSpace) {
1769
+ assignTexture(materialParams, mapName, mapDef, encoding) {
1763
1770
  const parser = this;
1764
1771
  return this.getDependency("texture", mapDef.index).then(function(texture) {
1765
1772
  if (!texture)
@@ -1776,8 +1783,11 @@ class GLTFParser {
1776
1783
  parser.associations.set(texture, gltfReference);
1777
1784
  }
1778
1785
  }
1779
- if (colorSpace !== void 0) {
1780
- texture.colorSpace = colorSpace;
1786
+ if (encoding !== void 0) {
1787
+ if ("colorSpace" in texture)
1788
+ texture.colorSpace = encoding === 3001 ? "srgb" : "srgb-linear";
1789
+ else
1790
+ texture.encoding = encoding;
1781
1791
  }
1782
1792
  materialParams[mapName] = texture;
1783
1793
  return texture;
@@ -1880,7 +1890,7 @@ class GLTFParser {
1880
1890
  materialParams.opacity = array[3];
1881
1891
  }
1882
1892
  if (metallicRoughness.baseColorTexture !== void 0) {
1883
- pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, THREE.SRGBColorSpace));
1893
+ pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, 3001));
1884
1894
  }
1885
1895
  materialParams.metalness = metallicRoughness.metallicFactor !== void 0 ? metallicRoughness.metallicFactor : 1;
1886
1896
  materialParams.roughness = metallicRoughness.roughnessFactor !== void 0 ? metallicRoughness.roughnessFactor : 1;
@@ -1930,7 +1940,7 @@ class GLTFParser {
1930
1940
  materialParams.emissive = new THREE.Color().fromArray(materialDef.emissiveFactor);
1931
1941
  }
1932
1942
  if (materialDef.emissiveTexture !== void 0 && materialType !== THREE.MeshBasicMaterial) {
1933
- pending.push(parser.assignTexture(materialParams, "emissiveMap", materialDef.emissiveTexture, THREE.SRGBColorSpace));
1943
+ pending.push(parser.assignTexture(materialParams, "emissiveMap", materialDef.emissiveTexture, 3001));
1934
1944
  }
1935
1945
  return Promise.all(pending).then(function() {
1936
1946
  const material = new materialType(materialParams);
@@ -1,4 +1,4 @@
1
- import { Loader, LoaderUtils, FileLoader, Color, SpotLight, PointLight, DirectionalLight, MeshBasicMaterial, SRGBColorSpace, MeshPhysicalMaterial, Vector2, Matrix4, Vector3, Quaternion, InstancedMesh, Object3D, Interpolant, NearestFilter, LinearFilter, NearestMipmapNearestFilter, LinearMipmapNearestFilter, NearestMipmapLinearFilter, LinearMipmapLinearFilter, ClampToEdgeWrapping, MirroredRepeatWrapping, RepeatWrapping, InterpolateLinear, InterpolateDiscrete, MeshStandardMaterial, FrontSide, TextureLoader, ImageBitmapLoader, BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute, Texture, PointsMaterial, Material, LineBasicMaterial, DoubleSide, PropertyBinding, BufferGeometry, SkinnedMesh, Mesh, TriangleStripDrawMode, TriangleFanDrawMode, LineSegments, Line, LineLoop, Points, Group, PerspectiveCamera, MathUtils, OrthographicCamera, Skeleton, VectorKeyframeTrack, QuaternionKeyframeTrack, NumberKeyframeTrack, AnimationClip, Bone, Box3, Sphere } from "three";
1
+ import { Loader, LoaderUtils, FileLoader, Color, SpotLight, PointLight, DirectionalLight, MeshBasicMaterial, MeshPhysicalMaterial, Vector2, Matrix4, Vector3, Quaternion, InstancedMesh, Object3D, Interpolant, NearestFilter, LinearFilter, NearestMipmapNearestFilter, LinearMipmapNearestFilter, NearestMipmapLinearFilter, LinearMipmapLinearFilter, ClampToEdgeWrapping, MirroredRepeatWrapping, RepeatWrapping, REVISION, InterpolateLinear, InterpolateDiscrete, MeshStandardMaterial, FrontSide, TextureLoader, ImageBitmapLoader, BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute, Texture, PointsMaterial, Material, LineBasicMaterial, DoubleSide, PropertyBinding, BufferGeometry, SkinnedMesh, Mesh, TriangleStripDrawMode, TriangleFanDrawMode, LineSegments, Line, LineLoop, Points, Group, PerspectiveCamera, MathUtils, OrthographicCamera, Skeleton, VectorKeyframeTrack, QuaternionKeyframeTrack, NumberKeyframeTrack, AnimationClip, Bone, Box3, Sphere } from "three";
2
2
  import { toTrianglesDrawMode } from "../utils/BufferGeometryUtils.js";
3
3
  class GLTFLoader extends Loader {
4
4
  constructor(manager) {
@@ -130,11 +130,10 @@ class GLTFLoader extends Loader {
130
130
  let json;
131
131
  const extensions = {};
132
132
  const plugins = {};
133
- const textDecoder = new TextDecoder();
134
133
  if (typeof data === "string") {
135
134
  json = JSON.parse(data);
136
135
  } else if (data instanceof ArrayBuffer) {
137
- const magic = textDecoder.decode(new Uint8Array(data, 0, 4));
136
+ const magic = LoaderUtils.decodeText(new Uint8Array(data.slice(0, 4)));
138
137
  if (magic === BINARY_EXTENSION_HEADER_MAGIC) {
139
138
  try {
140
139
  extensions[EXTENSIONS.KHR_BINARY_GLTF] = new GLTFBinaryExtension(data);
@@ -145,7 +144,7 @@ class GLTFLoader extends Loader {
145
144
  }
146
145
  json = JSON.parse(extensions[EXTENSIONS.KHR_BINARY_GLTF].content);
147
146
  } else {
148
- json = JSON.parse(textDecoder.decode(data));
147
+ json = JSON.parse(LoaderUtils.decodeText(new Uint8Array(data)));
149
148
  }
150
149
  } else {
151
150
  json = data;
@@ -346,7 +345,7 @@ class GLTFMaterialsUnlitExtension {
346
345
  materialParams.opacity = array[3];
347
346
  }
348
347
  if (metallicRoughness.baseColorTexture !== void 0) {
349
- pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, SRGBColorSpace));
348
+ pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, 3001));
350
349
  }
351
350
  }
352
351
  return Promise.all(pending);
@@ -488,7 +487,7 @@ class GLTFMaterialsSheenExtension {
488
487
  materialParams.sheenRoughness = extension.sheenRoughnessFactor;
489
488
  }
490
489
  if (extension.sheenColorTexture !== void 0) {
491
- pending.push(parser.assignTexture(materialParams, "sheenColorMap", extension.sheenColorTexture, SRGBColorSpace));
490
+ pending.push(parser.assignTexture(materialParams, "sheenColorMap", extension.sheenColorTexture, 3001));
492
491
  }
493
492
  if (extension.sheenRoughnessTexture !== void 0) {
494
493
  pending.push(parser.assignTexture(materialParams, "sheenRoughnessMap", extension.sheenRoughnessTexture));
@@ -606,7 +605,8 @@ class GLTFMaterialsSpecularExtension {
606
605
  materialParams.specularColor = new Color(colorArray[0], colorArray[1], colorArray[2]);
607
606
  if (extension.specularColorTexture !== void 0) {
608
607
  pending.push(
609
- parser.assignTexture(materialParams, "specularColorMap", extension.specularColorTexture, SRGBColorSpace)
608
+ parser.assignTexture(materialParams, "specularColorMap", extension.specularColorTexture, 3001)
609
+ // sRGBEncoding
610
610
  );
611
611
  }
612
612
  return Promise.all(pending);
@@ -888,9 +888,8 @@ class GLTFBinaryExtension {
888
888
  this.content = null;
889
889
  this.body = null;
890
890
  const headerView = new DataView(data, 0, BINARY_EXTENSION_HEADER_LENGTH);
891
- const textDecoder = new TextDecoder();
892
891
  this.header = {
893
- magic: textDecoder.decode(new Uint8Array(data.slice(0, 4))),
892
+ magic: LoaderUtils.decodeText(new Uint8Array(data.slice(0, 4))),
894
893
  version: headerView.getUint32(4, true),
895
894
  length: headerView.getUint32(8, true)
896
895
  };
@@ -909,7 +908,7 @@ class GLTFBinaryExtension {
909
908
  chunkIndex += 4;
910
909
  if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON) {
911
910
  const contentArray = new Uint8Array(data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength);
912
- this.content = textDecoder.decode(contentArray);
911
+ this.content = LoaderUtils.decodeText(contentArray);
913
912
  } else if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN) {
914
913
  const byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex;
915
914
  this.body = data.slice(byteOffset, byteOffset + chunkLength);
@@ -1039,7 +1038,7 @@ class GLTFCubicSplineInterpolant extends Interpolant {
1039
1038
  return result;
1040
1039
  }
1041
1040
  }
1042
- const _q = new Quaternion();
1041
+ const _q = /* @__PURE__ */ new Quaternion();
1043
1042
  class GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant {
1044
1043
  interpolate_(i1, t0, t, t1) {
1045
1044
  const result = super.interpolate_(i1, t0, t, t1);
@@ -1102,10 +1101,18 @@ const ATTRIBUTES = {
1102
1101
  POSITION: "position",
1103
1102
  NORMAL: "normal",
1104
1103
  TANGENT: "tangent",
1105
- TEXCOORD_0: "uv",
1106
- TEXCOORD_1: "uv1",
1107
- TEXCOORD_2: "uv2",
1108
- TEXCOORD_3: "uv3",
1104
+ // uv => uv1, 4 uv channels
1105
+ // https://github.com/mrdoob/three.js/pull/25943
1106
+ // https://github.com/mrdoob/three.js/pull/25788
1107
+ ...REVISION.replace(/\D+/g, "") >= 152 ? {
1108
+ TEXCOORD_0: "uv",
1109
+ TEXCOORD_1: "uv1",
1110
+ TEXCOORD_2: "uv2",
1111
+ TEXCOORD_3: "uv3"
1112
+ } : {
1113
+ TEXCOORD_0: "uv",
1114
+ TEXCOORD_1: "uv2"
1115
+ },
1109
1116
  COLOR_0: "color",
1110
1117
  WEIGHTS_0: "skinWeight",
1111
1118
  JOINTS_0: "skinIndex"
@@ -1275,7 +1282,7 @@ function getImageURIMimeType(uri) {
1275
1282
  return "image/webp";
1276
1283
  return "image/png";
1277
1284
  }
1278
- const _identityMatrix = new Matrix4();
1285
+ const _identityMatrix = /* @__PURE__ */ new Matrix4();
1279
1286
  class GLTFParser {
1280
1287
  constructor(json = {}, options = {}) {
1281
1288
  this.json = json;
@@ -1757,7 +1764,7 @@ class GLTFParser {
1757
1764
  * @param {Object} mapDef
1758
1765
  * @return {Promise<Texture>}
1759
1766
  */
1760
- assignTexture(materialParams, mapName, mapDef, colorSpace) {
1767
+ assignTexture(materialParams, mapName, mapDef, encoding) {
1761
1768
  const parser = this;
1762
1769
  return this.getDependency("texture", mapDef.index).then(function(texture) {
1763
1770
  if (!texture)
@@ -1774,8 +1781,11 @@ class GLTFParser {
1774
1781
  parser.associations.set(texture, gltfReference);
1775
1782
  }
1776
1783
  }
1777
- if (colorSpace !== void 0) {
1778
- texture.colorSpace = colorSpace;
1784
+ if (encoding !== void 0) {
1785
+ if ("colorSpace" in texture)
1786
+ texture.colorSpace = encoding === 3001 ? "srgb" : "srgb-linear";
1787
+ else
1788
+ texture.encoding = encoding;
1779
1789
  }
1780
1790
  materialParams[mapName] = texture;
1781
1791
  return texture;
@@ -1878,7 +1888,7 @@ class GLTFParser {
1878
1888
  materialParams.opacity = array[3];
1879
1889
  }
1880
1890
  if (metallicRoughness.baseColorTexture !== void 0) {
1881
- pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, SRGBColorSpace));
1891
+ pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, 3001));
1882
1892
  }
1883
1893
  materialParams.metalness = metallicRoughness.metallicFactor !== void 0 ? metallicRoughness.metallicFactor : 1;
1884
1894
  materialParams.roughness = metallicRoughness.roughnessFactor !== void 0 ? metallicRoughness.roughnessFactor : 1;
@@ -1928,7 +1938,7 @@ class GLTFParser {
1928
1938
  materialParams.emissive = new Color().fromArray(materialDef.emissiveFactor);
1929
1939
  }
1930
1940
  if (materialDef.emissiveTexture !== void 0 && materialType !== MeshBasicMaterial) {
1931
- pending.push(parser.assignTexture(materialParams, "emissiveMap", materialDef.emissiveTexture, SRGBColorSpace));
1941
+ pending.push(parser.assignTexture(materialParams, "emissiveMap", materialDef.emissiveTexture, 3001));
1932
1942
  }
1933
1943
  return Promise.all(pending).then(function() {
1934
1944
  const material = new materialType(materialParams);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-stdlib",
3
- "version": "2.23.5",
3
+ "version": "2.23.7",
4
4
  "description": "stand-alone library of threejs examples",
5
5
  "keywords": [
6
6
  "three",