-
-
Notifications
You must be signed in to change notification settings - Fork 35.5k
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
WebGLRenderer: Remove RGBEEncoding and RGBEFormat. #23060
Conversation
Thanks! |
Is it possible to revert this? There're still devices out there not supporting floating point texture extensions. |
No sorry. We definitely remove all inline GLSL decodes. You have to enhance the build-in shaders by yourself if you still need RGBA8 HDR textures. |
I see. May I ask what's the motivation behind it? It certainly makes keeping our fork up-to-date with main repo more difficult, so I'm curious about what we are paying for. |
The general approach of inline decode and encodes is problematic. It produces wrong texture filtering and can break blending. Since WebGL 2 is now mature enough, we've decided to make Float16 mandatory for HDR workflows. |
)" This reverts commit cee9706.
TBH I don't know anyone complaining |
)" This reverts commit cee9706.
)" This reverts commit cee9706.
What devices are those?
Out of curiosity, what other modifications did you need to do that required a fork? |
@mrdoob Sorry, not devices. Platforms actually. WeChat Mini Program only supports WebGL and a very limited set of extensions(not the same set depending on OS/device). And they won't add WebGL2 support in the near future(we know because we're working closely with Mini Program group). But WeChat has over 1 billion users so I expect a lot of people sticking to below r136 just to keep their app running on WeChat. These people will be Chinese developers so the feedback won't be as strong as the actual impact because of the language barrier. Other mini programs, namely Taobao from Alibaba and TicTok, have similar levels of WebGL support the last time I checked it(several months ago). As of our fork, there are two big things that are important to us but I don't see hope merging into upstream:
|
That's unfortunate... Right now there are 3 code paths: WebGL1, WebGL2 and WebGPU... We do not have the resources to maintain all of them and we have to align with the stacks modern browsers are focusing on (WebGL2 and WebGPU). Hopefully WeChat and co will update to WebGL2 and WebGPU soon.
This shouldn't require a fork. We implemented this workaround too last year. |
Totally understand. Your work on three.js has been incredible, and we owe huge thanks to all three.js contributors. I was not complaining about removing this feature, just trying to give information that you might not have and see if it changes the decision. We'll pay what we have to for supporting outdated platforms.
If you're referring to #21202, that's a different bug. The bug we were trying to fix can be reproduced with this page. You should see a black quad in a gray background, but with Adreno 6xx GPU the quad would be blue. |
…rdoob#23060)" (#48)" This reverts commit c4c447a.
)" This reverts commit cee9706.
Hmm, is that because Adreno ignores the precision of numbers when using structs? |
Yes, I believe so. |
Grrrr |
I've made an issue in the Khronos WebGL repo for this but so far not a whole lot more info, yet: |
Would it be possible for you to ask them what are the reasons they won't add WebGL2? |
They have other priorities. There's no strong enough motivation for them to put resources into WebGL2. |
)" This reverts commit cee9706.
Related issue: -
Description
This PR removes
RGBEEncoding
andRGBEFormat
.That means
RGBELoader
andHDRCubeTextureLoader
do not supportUnsignedByteType
anymore.