From 7479772c5ac26d6da4217b1bbc6fdf15a614a26e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 May 2026 19:45:50 +0200 Subject: [PATCH 1/4] chore(deps): update dependency puppeteer to v25.0.4 (#33639) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd15c3ee5e9cde..5f94dfe7f44448 100644 --- a/package-lock.json +++ b/package-lock.json @@ -406,9 +406,9 @@ "license": "BSD-2-Clause" }, "node_modules/@puppeteer/browsers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.2.tgz", - "integrity": "sha512-JnOSHrAdCQOj27P5QnTrd6bkYd9cXXeFMJS5UJF3UmQbpZQAMMO7AaL0NyrT7i2l/43bwjaHguU+LOpBRyx66w==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.3.tgz", + "integrity": "sha512-v3YaiGpzUTgOZkHBFR0iZg58Vto25SqBQxfLUXDiofJccwVl6Mlr7BdLCS1NZgxikdeIHf936cxYWL9IZp3tow==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2787,18 +2787,18 @@ } }, "node_modules/puppeteer": { - "version": "25.0.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.0.2.tgz", - "integrity": "sha512-cXj/5RlDCzSC7k1YdBIm6prb8lK8lEdmScVbcalX1rBn4fqNN1UNuEz/HZZYiDLsK8dOGvyLpGjh6CgxCyqKtg==", + "version": "25.0.4", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.0.4.tgz", + "integrity": "sha512-QFdBAuNOqL0I+AdARTlRR1KcgPk0fo0dU127e1ZQFVxb9QPcpBDIiQp/dMgdbyLXHpF2GRjC/OezDmjKcLCKYw==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.2", + "@puppeteer/browsers": "3.0.3", "chromium-bidi": "16.0.1", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1608973", - "puppeteer-core": "25.0.2", + "puppeteer-core": "25.0.4", "typed-query-selector": "^2.12.2" }, "bin": { @@ -2809,13 +2809,13 @@ } }, "node_modules/puppeteer-core": { - "version": "25.0.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.0.2.tgz", - "integrity": "sha512-Q0IUIHER1S9PiNIfdNFc+pVOj79Tp4b9v0Fv4enigwsLy0Hbgq45KFgqzmN31DeCXh+Uvxnt9r7fMERhAMjs8Q==", + "version": "25.0.4", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.0.4.tgz", + "integrity": "sha512-K1LQKDP6w1rIr1jUyN9obH16TO/DCy86k3q+FBd2prGY+TStxhFySxmaZZuRF+0D3BJXjwCYFke7tMHCH4olTA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.2", + "@puppeteer/browsers": "3.0.3", "chromium-bidi": "16.0.1", "debug": "^4.4.3", "devtools-protocol": "0.0.1608973", From 80b6ea0f97cae0e4580470419f8192c71bc7812b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 May 2026 19:45:59 +0200 Subject: [PATCH 2/4] chore(deps): update dependency eslint-plugin-jsdoc to v63 (#33640) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f94dfe7f44448..109911e1f5146e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "eslint-config-mdcs": "^5.0.0", "eslint-plugin-compat": "^7.0.0", "eslint-plugin-html": "^8.1.3", - "eslint-plugin-jsdoc": "^62.0.0", + "eslint-plugin-jsdoc": "^63.0.0", "globals": "^17.0.0", "jpeg-js": "^0.4.4", "jsdoc": "^4.0.5", @@ -1749,9 +1749,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "62.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.9.0.tgz", - "integrity": "sha512-PY7/X4jrVgoIDncUmITlUqK546Ltmx/Pd4Hdsu4CvSjryQZJI2mEV4vrdMufyTetMiZ5taNSqvK//BTgVUlNkA==", + "version": "63.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.0.tgz", + "integrity": "sha512-eDHuVGyZydr4BKgjXouU7bsn5qaqUlObXBSWRJk3vXcQgXVFnrwWIqpP7uBhRX9NQpk6NIIFyRc6F6omZNi/8g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1766,12 +1766,12 @@ "html-entities": "^2.6.0", "object-deep-merge": "^2.0.0", "parse-imports-exports": "^0.2.4", - "semver": "^7.7.4", + "semver": "^7.8.0", "spdx-expression-parse": "^4.0.0", "to-valid-identifier": "^1.0.0" }, "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" + "node": "^22.13.0 || >=24" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" @@ -2938,9 +2938,9 @@ } }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", "dev": true, "license": "ISC", "bin": { diff --git a/package.json b/package.json index 16a536bd80e1b7..0154f07cb738aa 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "eslint-config-mdcs": "^5.0.0", "eslint-plugin-compat": "^7.0.0", "eslint-plugin-html": "^8.1.3", - "eslint-plugin-jsdoc": "^62.0.0", + "eslint-plugin-jsdoc": "^63.0.0", "globals": "^17.0.0", "jpeg-js": "^0.4.4", "jsdoc": "^4.0.5", From e6354b4cd5bc46f16ba77782e042fd8ac5e0c40d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 May 2026 19:46:56 +0200 Subject: [PATCH 3/4] chore(deps): update github/codeql-action digest to 7211b7c (#33638) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/codeql-code-scanning.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-code-scanning.yml b/.github/workflows/codeql-code-scanning.yml index 30dbf7fe370594..f9ba5948c52fa5 100644 --- a/.github/workflows/codeql-code-scanning.yml +++ b/.github/workflows/codeql-code-scanning.yml @@ -33,16 +33,16 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4 + uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4 with: languages: ${{ matrix.language }} config-file: ./.github/codeql-config.yml queries: security-and-quality - name: Autobuild - uses: github/codeql-action/autobuild@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4 + uses: github/codeql-action/autobuild@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4 + uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4 with: category: "/language:${{matrix.language}}" From fbb5e9e41a58b9ca46441f9a5d5d8658345c37a3 Mon Sep 17 00:00:00 2001 From: Michael Herzog Date: Sun, 24 May 2026 23:12:16 +0200 Subject: [PATCH 4/4] Docs: Add color space notes. (#33636) --- src/materials/LineBasicMaterial.js | 4 +++ src/materials/MeshBasicMaterial.js | 24 +++++++++++++++++ src/materials/MeshDepthMaterial.js | 10 +++++++ src/materials/MeshDistanceMaterial.js | 10 +++++++ src/materials/MeshLambertMaterial.js | 37 +++++++++++++++++++++++++ src/materials/MeshMatcapMaterial.js | 22 +++++++++++++++ src/materials/MeshNormalMaterial.js | 6 +++++ src/materials/MeshPhongMaterial.js | 37 +++++++++++++++++++++++++ src/materials/MeshPhysicalMaterial.js | 38 ++++++++++++++++++++++++++ src/materials/MeshStandardMaterial.js | 39 +++++++++++++++++++++++++++ src/materials/MeshToonMaterial.js | 31 +++++++++++++++++++++ src/materials/PointsMaterial.js | 7 +++++ src/materials/SpriteMaterial.js | 7 +++++ 13 files changed, 272 insertions(+) diff --git a/src/materials/LineBasicMaterial.js b/src/materials/LineBasicMaterial.js index 7f89eeb37cb17f..e51dbd0f648a89 100644 --- a/src/materials/LineBasicMaterial.js +++ b/src/materials/LineBasicMaterial.js @@ -50,6 +50,10 @@ class LineBasicMaterial extends Material { * Sets the color of the lines using data from a texture. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshBasicMaterial.js b/src/materials/MeshBasicMaterial.js index add8d2c5b0f199..e2f2aaa4ef099c 100644 --- a/src/materials/MeshBasicMaterial.js +++ b/src/materials/MeshBasicMaterial.js @@ -50,6 +50,10 @@ class MeshBasicMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -58,6 +62,11 @@ class MeshBasicMaterial extends Material { /** * The light map. Requires a second set of UVs. * + * `lightMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `lightMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ @@ -75,6 +84,9 @@ class MeshBasicMaterial extends Material { * The red channel of this texture is used as the ambient occlusion map. * Requires a second set of UVs. * + * `aoMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -93,6 +105,10 @@ class MeshBasicMaterial extends Material { /** * Specular map used by the material. * + * `specularMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `specularMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -108,6 +124,9 @@ class MeshBasicMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -116,6 +135,11 @@ class MeshBasicMaterial extends Material { /** * The environment map. * + * `envMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `envMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshDepthMaterial.js b/src/materials/MeshDepthMaterial.js index 5bf93deb62ec59..abfa8f2d7e082f 100644 --- a/src/materials/MeshDepthMaterial.js +++ b/src/materials/MeshDepthMaterial.js @@ -46,6 +46,10 @@ class MeshDepthMaterial extends Material { * The color map. May optionally include an alpha channel, typically combined * with {@link Material#transparent} or {@link Material#alphaTest}. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -61,6 +65,9 @@ class MeshDepthMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -74,6 +81,9 @@ class MeshDepthMaterial extends Material { * of each pixel (white being the highest) is mapped against, and * repositions, the vertices of the mesh. * + * `displacementMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshDistanceMaterial.js b/src/materials/MeshDistanceMaterial.js index f5026316066788..142ed98a2e7269 100644 --- a/src/materials/MeshDistanceMaterial.js +++ b/src/materials/MeshDistanceMaterial.js @@ -41,6 +41,10 @@ class MeshDistanceMaterial extends Material { * The color map. May optionally include an alpha channel, typically combined * with {@link Material#transparent} or {@link Material#alphaTest}. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -56,6 +60,9 @@ class MeshDistanceMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -69,6 +76,9 @@ class MeshDistanceMaterial extends Material { * of each pixel (white being the highest) is mapped against, and * repositions, the vertices of the mesh. * + * `displacementMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshLambertMaterial.js b/src/materials/MeshLambertMaterial.js index 9635b0f5e2fac5..7e27c162a01ed6 100644 --- a/src/materials/MeshLambertMaterial.js +++ b/src/materials/MeshLambertMaterial.js @@ -60,6 +60,10 @@ class MeshLambertMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -68,6 +72,11 @@ class MeshLambertMaterial extends Material { /** * The light map. Requires a second set of UVs. * + * `lightMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `lightMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ @@ -85,6 +94,9 @@ class MeshLambertMaterial extends Material { * The red channel of this texture is used as the ambient occlusion map. * Requires a second set of UVs. * + * `aoMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -122,6 +134,10 @@ class MeshLambertMaterial extends Material { * emissive color and the emissive intensity. If you have an emissive map, * be sure to set the emissive color to something other than black. * + * `emissiveMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `emissiveMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -133,6 +149,9 @@ class MeshLambertMaterial extends Material { * the geometry of the object, only the lighting. If a normal map is defined * this will be ignored. * + * `bumpMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -154,6 +173,9 @@ class MeshLambertMaterial extends Material { * convention, the `y` component of `normalScale` should be negated to compensate * for the different handedness. * + * `normalMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -185,6 +207,9 @@ class MeshLambertMaterial extends Material { * displacement map with a matching normal map, since the renderer can * not recompute surface normals from the displaced vertices. * + * `displacementMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -213,6 +238,10 @@ class MeshLambertMaterial extends Material { /** * Specular map used by the material. * + * `specularMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `specularMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -228,6 +257,9 @@ class MeshLambertMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -236,6 +268,11 @@ class MeshLambertMaterial extends Material { /** * The environment map. * + * `envMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `envMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshMatcapMaterial.js b/src/materials/MeshMatcapMaterial.js index 0677bbd75f2b2b..9ca5ec3abe6ae8 100644 --- a/src/materials/MeshMatcapMaterial.js +++ b/src/materials/MeshMatcapMaterial.js @@ -54,6 +54,12 @@ class MeshMatcapMaterial extends Material { /** * The matcap map. * + * `matcap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. HDR `matcap` textures (e.g. `.exr`) + * typically set `texture.colorSpace = LinearSRGBColorSpace`, while LDR + * `matcap` textures (e.g. `.png`, `.jpg`, `.webp`) typically set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -64,6 +70,10 @@ class MeshMatcapMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -75,6 +85,9 @@ class MeshMatcapMaterial extends Material { * the geometry of the object, only the lighting. If a normal map is defined * this will be ignored. * + * `bumpMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -96,6 +109,9 @@ class MeshMatcapMaterial extends Material { * convention, the `y` component of `normalScale` should be negated to compensate * for the different handedness. * + * `normalMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -127,6 +143,9 @@ class MeshMatcapMaterial extends Material { * displacement map with a matching normal map, since the renderer can * not recompute surface normals from the displaced vertices. * + * `displacementMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -162,6 +181,9 @@ class MeshMatcapMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshNormalMaterial.js b/src/materials/MeshNormalMaterial.js index 39ca898278b24d..bb3d650a91b5dd 100644 --- a/src/materials/MeshNormalMaterial.js +++ b/src/materials/MeshNormalMaterial.js @@ -40,6 +40,9 @@ class MeshNormalMaterial extends Material { * the geometry of the object, only the lighting. If a normal map is defined * this will be ignored. * + * `bumpMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -61,6 +64,9 @@ class MeshNormalMaterial extends Material { * convention, the `y` component of `normalScale` should be negated to compensate * for the different handedness. * + * `normalMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshPhongMaterial.js b/src/materials/MeshPhongMaterial.js index fc4b0f1dcb6ba3..aa5b56bef4a329 100644 --- a/src/materials/MeshPhongMaterial.js +++ b/src/materials/MeshPhongMaterial.js @@ -75,6 +75,10 @@ class MeshPhongMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -83,6 +87,11 @@ class MeshPhongMaterial extends Material { /** * The light map. Requires a second set of UVs. * + * `lightMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `lightMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ @@ -100,6 +109,9 @@ class MeshPhongMaterial extends Material { * The red channel of this texture is used as the ambient occlusion map. * Requires a second set of UVs. * + * `aoMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -137,6 +149,10 @@ class MeshPhongMaterial extends Material { * emissive color and the emissive intensity. If you have an emissive map, * be sure to set the emissive color to something other than black. * + * `emissiveMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `emissiveMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -148,6 +164,9 @@ class MeshPhongMaterial extends Material { * the geometry of the object, only the lighting. If a normal map is defined * this will be ignored. * + * `bumpMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -169,6 +188,9 @@ class MeshPhongMaterial extends Material { * convention, the `y` component of `normalScale` should be negated to compensate * for the different handedness. * + * `normalMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -200,6 +222,9 @@ class MeshPhongMaterial extends Material { * displacement map with a matching normal map, since the renderer can * not recompute surface normals from the displaced vertices. * + * `displacementMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -230,6 +255,10 @@ class MeshPhongMaterial extends Material { * highlight contributes and how much of the environment map affects the * surface. * + * `specularMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `specularMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -245,6 +274,9 @@ class MeshPhongMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -253,6 +285,11 @@ class MeshPhongMaterial extends Material { /** * The environment map. * + * `envMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `envMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshPhysicalMaterial.js b/src/materials/MeshPhysicalMaterial.js index f5ed33e7e9f3fc..30b353eb4c5eef 100644 --- a/src/materials/MeshPhysicalMaterial.js +++ b/src/materials/MeshPhysicalMaterial.js @@ -77,6 +77,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * bitangent space, to be rotated by `anisotropyRotation`. The blue channel * contains strength as `[0, 1]` to be multiplied by `anisotropy`. * + * `anisotropyMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -86,6 +89,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The red channel of this texture is multiplied against `clearcoat`, * for per-pixel control over a coating's intensity. * + * `clearcoatMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -103,6 +109,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The green channel of this texture is multiplied against * `clearcoatRoughness`, for per-pixel control over a coating's roughness. * + * `clearcoatRoughnessMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -120,6 +129,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { /** * Can be used to enable independent normals for the clear coat layer. * + * `clearcoatNormalMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -161,6 +173,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The red channel of this texture is multiplied against `iridescence`, for per-pixel * control over iridescence. * + * `iridescenceMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -191,6 +206,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * - `1.0` in the green channel will result in thickness equal to second element of the array. * - Values in-between will linearly interpolate between the elements of the array. * + * `iridescenceThicknessMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -208,6 +226,10 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The RGB channels of this texture are multiplied against `sheenColor`, for per-pixel control * over sheen tint. * + * `sheenColorMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `sheenColorMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -225,6 +247,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The alpha channel of this texture is multiplied against `sheenRoughness`, for per-pixel control * over sheen roughness. * + * `sheenRoughnessMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -234,6 +259,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The red channel of this texture is multiplied against `transmission`, for per-pixel control over * optical transparency. * + * `transmissionMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -253,6 +281,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * A texture that defines the thickness, stored in the green channel. This will * be multiplied by `thickness`. * + * `thicknessMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -290,6 +321,9 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The alpha channel of this texture is multiplied against `specularIntensity`, * for per-pixel control over specular intensity. * + * `specularIntensityMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -307,6 +341,10 @@ class MeshPhysicalMaterial extends MeshStandardMaterial { * The RGB channels of this texture are multiplied against `specularColor`, * for per-pixel control over specular color. * + * `specularColorMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `specularColorMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshStandardMaterial.js b/src/materials/MeshStandardMaterial.js index 2bf8485a66f088..0bde1d771a38bb 100644 --- a/src/materials/MeshStandardMaterial.js +++ b/src/materials/MeshStandardMaterial.js @@ -100,6 +100,10 @@ class MeshStandardMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -108,6 +112,11 @@ class MeshStandardMaterial extends Material { /** * The light map. Requires a second set of UVs. * + * `lightMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `lightMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ @@ -125,6 +134,9 @@ class MeshStandardMaterial extends Material { * The red channel of this texture is used as the ambient occlusion map. * Requires a second set of UVs. * + * `aoMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -162,6 +174,10 @@ class MeshStandardMaterial extends Material { * emissive color and the emissive intensity. If you have an emissive map, * be sure to set the emissive color to something other than black. * + * `emissiveMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `emissiveMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -173,6 +189,9 @@ class MeshStandardMaterial extends Material { * the geometry of the object, only the lighting. If a normal map is defined * this will be ignored. * + * `bumpMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -194,6 +213,9 @@ class MeshStandardMaterial extends Material { * convention, the `y` component of `normalScale` should be negated to compensate * for the different handedness. * + * `normalMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -225,6 +247,9 @@ class MeshStandardMaterial extends Material { * displacement map with a matching normal map, since the renderer can * not recompute surface normals from the displaced vertices. * + * `displacementMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -254,6 +279,9 @@ class MeshStandardMaterial extends Material { * The green channel of this texture is used to alter the roughness of the * material. * + * `roughnessMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -263,6 +291,9 @@ class MeshStandardMaterial extends Material { * The blue channel of this texture is used to alter the metalness of the * material. * + * `metalnessMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -278,6 +309,9 @@ class MeshStandardMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -287,6 +321,11 @@ class MeshStandardMaterial extends Material { * The environment map. To ensure a physically correct rendering, environment maps * are internally pre-processed with {@link PMREMGenerator}. * + * `envMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `envMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ diff --git a/src/materials/MeshToonMaterial.js b/src/materials/MeshToonMaterial.js index ac6570e0508e05..6169941859c7a4 100644 --- a/src/materials/MeshToonMaterial.js +++ b/src/materials/MeshToonMaterial.js @@ -50,6 +50,10 @@ class MeshToonMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -60,6 +64,9 @@ class MeshToonMaterial extends Material { * {@link Texture#minFilter} and {@link Texture#magFilter} to {@link NearestFilter} * when using this type of texture. * + * `gradientMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -68,6 +75,11 @@ class MeshToonMaterial extends Material { /** * The light map. Requires a second set of UVs. * + * `lightMap` represents luminance data, and the texture must be assigned + * a {@link Texture#colorSpace}. Most `lightMap` textures set + * `texture.colorSpace = LinearSRGBColorSpace` and use float-type formats + * such as `.exr` or `.hdr`. + * * @type {?Texture} * @default null */ @@ -85,6 +97,9 @@ class MeshToonMaterial extends Material { * The red channel of this texture is used as the ambient occlusion map. * Requires a second set of UVs. * + * `aoMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -122,6 +137,10 @@ class MeshToonMaterial extends Material { * emissive color and the emissive intensity. If you have an emissive map, * be sure to set the emissive color to something other than black. * + * `emissiveMap` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `emissiveMap` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -133,6 +152,9 @@ class MeshToonMaterial extends Material { * the geometry of the object, only the lighting. If a normal map is defined * this will be ignored. * + * `bumpMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -154,6 +176,9 @@ class MeshToonMaterial extends Material { * convention, the `y` component of `normalScale` should be negated to compensate * for the different handedness. * + * `normalMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -185,6 +210,9 @@ class MeshToonMaterial extends Material { * displacement map with a matching normal map, since the renderer can * not recompute surface normals from the displaced vertices. * + * `displacementMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ @@ -220,6 +248,9 @@ class MeshToonMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ diff --git a/src/materials/PointsMaterial.js b/src/materials/PointsMaterial.js index 393fb8d0ed8392..5dd0ce011374a6 100644 --- a/src/materials/PointsMaterial.js +++ b/src/materials/PointsMaterial.js @@ -65,6 +65,10 @@ class PointsMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -80,6 +84,9 @@ class PointsMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */ diff --git a/src/materials/SpriteMaterial.js b/src/materials/SpriteMaterial.js index 035334e0d54dee..70bd3ce0d42556 100644 --- a/src/materials/SpriteMaterial.js +++ b/src/materials/SpriteMaterial.js @@ -54,6 +54,10 @@ class SpriteMaterial extends Material { * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map * color is modulated by the diffuse `color`. * + * `map` represents color data, and the texture must be assigned a + * {@link Texture#colorSpace}. Most `map` textures set + * `texture.colorSpace = SRGBColorSpace`. + * * @type {?Texture} * @default null */ @@ -69,6 +73,9 @@ class SpriteMaterial extends Material { * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and * luminance/alpha textures will also still work as expected. * + * `alphaMap` represents non-color data. Any texture assigned must have + * `texture.colorSpace = NoColorSpace` (default). + * * @type {?Texture} * @default null */