Comments (2)
Just to add, material blend modes currently set alpha blend state to match color blend state. NORMAL blend state is:
this._blendState.setAlphaBlend(BLENDEQUATION_ADD, BLENDMODE_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_ALPHA);
See here.
from engine.
Yeah this is a general rendering issue (not specific to GS) when generating any render target that will be blended with premulitplied alpha. The problem is material's "normal" blending type must be changed to accommodate premultiplied alpha render target.
You could change all the alpha blended materials in your scene, but this is hugely cumbersome. Ideally the engine would natively support a Premultiplied Render Target
mode or similar and handle it internally.
I've solved problem this in the past by monkey-patching Material.blendType
setter to modify the resulting alpha blend:
this._blendState.setAlphaBlend(BLENDEQUATION_ADD, BLENDMODE_ONE, BLENDMODE_ONE_MINUS_SRC_ALPHA);
Not a great solution.
I wonder whether we could change the NORMAL blend type to output premultiplied alpha values like above. The current NORMAL blend type doesn't generate a useful alpha channel anyway and I don't think developers will be depending on it.
cc @mvaligursky
from engine.
Related Issues (20)
- 1.69.0 Install error - Node 16.0 HOT 10
- Implement material level uniform buffer (WebGPU initially) HOT 3
- Invalid base value of anim target
- Handle device lost on WebGPU
- Standalone engine extras import failed HOT 1
- Changing opacity of transparent material forces shader recompilation HOT 6
- WebXR direct hand input HOT 2
- Docs: update normals in mesh example
- Anim Blend Tree takes incorrect name HOT 1
- Some WebXR examples throw error when refreshed HOT 2
- Add support for the XR emulator HOT 2
- Mesh collider no longer scales in real time HOT 1
- Weighted Blended Order Independent Transparency HOT 1
- Anim Blend Tree accessor override
- Anim Blend Tree 1D weights issue
- Debug bundled ESM engine build fails to build with Vite HOT 2
- Source map shows incorrect scope HOT 5
- Copy-Paste folder HOT 1
- Examples - build step takes progressively longer each time
- Camera non-default viewport size ignores camera clear color HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from engine.