Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Material: Remove alphaWrite #23361

Merged
merged 1 commit into from
Jan 27, 2022
Merged

Material: Remove alphaWrite #23361

merged 1 commit into from
Jan 27, 2022

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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Joe Tipping <[email protected]>
Co-authored-by: Josh <[email protected]>
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
1 participant