Skip to content

Conversation

@mrdoob
Copy link
Owner

@mrdoob mrdoob commented Jan 27, 2022

Fixes: #23353

Description

(Hoping to merge this ASAP and publish 0.137.3)

After #23230 we now have a regression when someone does this: https://jsfiddle.net/7rt8L1jo/

material.opacity = 0.5;
material.transparent = false;

The best way that I can think of to fix that is to set gl_FragColor = 1.0 in the shader when transparent === false, which is pretty much what I tried to do in #18631 two years ago.

As far as I can read, the only use case that that change broke was this:

This breaks AdditiveBlending when texture.a < 1 and material.transparent is false.

Which I think is totally fair to break in exchange of solving this regression.

To me material.transparent = false means that the object is opaque so forcing alpha to 1.0 makes sense.

After this change material.alphaWrite (introduced in #23166) is no longer needed.

/cc @Mugen87 @donmccurdy @WestLangley

@mrdoob mrdoob added this to the r137 milestone Jan 27, 2022
@mrdoob mrdoob mentioned this pull request Jan 27, 2022
@mrdoob mrdoob merged commit 15d3dfa into dev Jan 27, 2022
@mrdoob mrdoob deleted the alphawrite branch January 27, 2022 23:16
0b5vr added a commit to 0b5vr/three-ts-types that referenced this pull request Jan 28, 2022
joshuaellis added a commit to three-types/three-ts-types that referenced this pull request Mar 1, 2022
* fix(WebXRManager): setAnimationLoop should accept null like WebGLRenderer (#158)

* fix: Missing Property in Raycaster (#160)

* Fix Missing Property in Raycaster

Adds uv2 to Intersection interface to more accurately reflect the original documentation.

See: (https://threejs.org/docs/#api/en/core/Raycaster.intersectObject)[https://threejs.org/docs/#api/en/core/Raycaster.intersectObject]
This has been submitted in response to Josh's request in (this PR)[DefinitelyTyped/DefinitelyTyped#58462]

* Add name to contributors

* r137 (#162)

* feat: autodetect sRGB compression

* feat: remove inline sRGB decode

* chore: remove roughness mipmapper

* feat: added constant SRGB8

* feat: WebGLCubeUVMaps: Add support for render targets

* chore: Remove RGBFormat (#159)

* change: Remove RGBFormat

See: mrdoob/three.js#23223
See: mrdoob/three.js#23228

* change: Remove .format from Material

See: mrdoob/three.js#23219

It will be replaced with .alphaWrite later

See: mrdoob/three.js#23166

* test: remove use of RGBFormat from a test case

* feat: add LDrawUtils

* chore: make ConvexGeometry points optional

* chore: remove RGBIntegerFormat

* feat: Box3 now supports computing minimal bounds for setFromObject

* feat(Material): Add a new property .alphaWrite (#161)

Since it's undocumented I could not fill the doc comment properly,,,

See: mrdoob/three.js#23166

* chore: remove UnsignedShort565Type

* chore: remove RoomEnvironment from OTHER_FILES

* chore: remove LDrawLoader from OTHER_FILES

* chore: fix linting

* chore: fix linting

Co-authored-by: 0b5vr <0b5vr@0b5vr.com>

* feat: add PackedPhongMaterial

* fix: Scene Utils are not in namespace

resolves #153

* r137

* change (Material): remove `alphaWrite`

See: mrdoob/three.js#23361

Co-authored-by: Cody Bennett <hi@codyb.co>
Co-authored-by: Joe Tipping <39060404+Gallahron@users.noreply.github.com>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
MykhailoStrelnykov pushed a commit to Chronos-Samples/three-ts-types that referenced this pull request Dec 22, 2025
* fix(WebXRManager): setAnimationLoop should accept null like WebGLRenderer (three-types#158)

* fix: Missing Property in Raycaster (three-types#160)

* Fix Missing Property in Raycaster

Adds uv2 to Intersection interface to more accurately reflect the original documentation.

See: (https://threejs.org/docs/#api/en/core/Raycaster.intersectObject)[https://threejs.org/docs/#api/en/core/Raycaster.intersectObject]
This has been submitted in response to Josh's request in (this PR)[DefinitelyTyped/DefinitelyTyped#58462]

* Add name to contributors

* r137 (three-types#162)

* feat: autodetect sRGB compression

* feat: remove inline sRGB decode

* chore: remove roughness mipmapper

* feat: added constant SRGB8

* feat: WebGLCubeUVMaps: Add support for render targets

* chore: Remove RGBFormat (three-types#159)

* change: Remove RGBFormat

See: mrdoob/three.js#23223
See: mrdoob/three.js#23228

* change: Remove .format from Material

See: mrdoob/three.js#23219

It will be replaced with .alphaWrite later

See: mrdoob/three.js#23166

* test: remove use of RGBFormat from a test case

* feat: add LDrawUtils

* chore: make ConvexGeometry points optional

* chore: remove RGBIntegerFormat

* feat: Box3 now supports computing minimal bounds for setFromObject

* feat(Material): Add a new property .alphaWrite (three-types#161)

Since it's undocumented I could not fill the doc comment properly,,,

See: mrdoob/three.js#23166

* chore: remove UnsignedShort565Type

* chore: remove RoomEnvironment from OTHER_FILES

* chore: remove LDrawLoader from OTHER_FILES

* chore: fix linting

* chore: fix linting

Co-authored-by: 0b5vr <0b5vr@0b5vr.com>

* feat: add PackedPhongMaterial

* fix: Scene Utils are not in namespace

resolves three-types#153

* r137

* change (Material): remove `alphaWrite`

See: mrdoob/three.js#23361

Co-authored-by: Cody Bennett <hi@codyb.co>
Co-authored-by: Joe Tipping <39060404+Gallahron@users.noreply.github.com>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Texture bug on r137

2 participants