-
-
Notifications
You must be signed in to change notification settings - Fork 35.4k
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
MeshPhongMaterial is rendered black on Huaweï MediaPad T3 #12679
Comments
see #12592 (comment) It seems both issues are related in some way... |
It's not the Huawei M3, mine is T3 10"
I will check at work today, but from my memory, no problem with Lambert... |
there is a lot of going on between two versions, actually. I thought doing quick diff between the shaders will highlight it, but no. still, if you want to save yourself some time, here are the files: |
Indeed, the lot of differences make me crasy as i'm not familiar with shaders... The other problem is what tablets/phones are concerned by this issue... (Please forgive my english) |
Idk if it's possible to use 3js lights in custom shader, but you could always put your lights world positions and params in uniforms by hand |
Is this still an issue? |
I haven't test last revision since we give back Huawei tablets to our client. Thanks you for your comments. |
@mrdoob This still seems to be an issue and it also seems to be more widespread than it used to. We have recently started getting more and more reports from our users (3d editor on mobile devices), who are experiencing this issue. As far as I can tell, it affects all releases from r73-r91. I will see if I can compile a list of affected devices. I will also provide some sample screenshots and material parameters, that produce different results. |
A list of devices (and gpus) would indeed be super helpful! |
Same issue on Samsung SM-T555 (Galaxy A). It does support OES_texture_float but not the filtering extension OES_texture_float_linear, whilst supporting OES_texture_half_float_linear and OES_texture_half_float. Can textures be switched vom type=Float to HalfFloat eaysily? |
I'll add a list of devices that my users are having issues on. I have tried to reproduce on around 30 devices and am unable to find one with the issue. What I do know is that it started happening a lot more often when people upgraded from an older version of Android to Android 7.0. Some of our users are willing to help us debug, so if you have a specific fix you want to try out, I can forward it to our users. I'll also note, that this example fails on all of the listed devices (scene completely black): https://threejs.org/examples/?q=lights#webgl_lights_pointlights2, screenshot included. Affected devices that I am aware of:
|
@mrdoob Is there anything else I can provide you with to help with debugging? |
@EerikKivistik Not for now. That list is great. I'll try to buy one of these. Thanks! |
I was wondering that myself, why this issue started spreading with Android 7.0+. There is always the chance that the users are running something like CyanogenMod, that causes this. But that is just a shot in the dark. As far as I know, it can be upgraded to 7.0 via official channels, so shouldn't be too much fiddling. |
For my Samsung SM-T555 (Galaxy A) with Android Version 7.1.1 and Samsung Experience version 8.5 it doesn't work. No user mod involved here. |
Yeah, the issue seems to getting more prevalent, at this point I think we are getting a few hundred reports a week from our users. Any news on your end @mrdoob? |
@EerikKivistik The Moto G4 Play (XT1609) I bought is not receiving the 7.1 update 🙁 |
@mrdoob According to Wikipedia XT1609 is the Verizon Model of this Phone. https://en.wikipedia.org/wiki/Moto_G4 |
In #14137 it was discovered that changing precision to Could you guys try passing the precision to the material like this? var material = new THREE.MeshPhongMaterial( { precision: 'mediump' } );
var material = new THREE.MeshStandardMaterial( { precision: 'mediump' } ); |
@EerikKivistik btw, what's with the black border around "G" icon, is it normal? |
@makc No clue, it's a screenshot sent to me by a user of our software. |
How did you do that? 🤔 |
I think you answered that question yourself in another thread already :) |
Thank you everyone ! EDIT : I can't mark subject resolved... |
with some phones that need medium precision to work nice, while some other phones need high precision, what are we, app-level devs, are supposed to do? I guess someone needs to make an utility that, given user agent, would apply fixes to materials
or maybe all materials (via THREE.ShaderLib or what was that place) |
No idea... 😕 I think we are trying to move the shaders code to mediump...
I don't think we can get the device info out of the user agent... 😕 |
Device
This occur on Huaweï MediaPad T3 10 (AGS-L09) - Androïd 7 / EMUI 5.1 / Snapdragon 425 / 2Go RAM / 800x1280
Note that this issue DO NOT occur on these other devices tested on my own :
Description of the problem
Mesh with MeshPhongMaterial is rendered black, the sample of official documentation is concerned too.
All my test with MeshPhongMaterial do the same, whatever light used...
No problem with MeshLambertMaterial (but can't use it since it don't accept bumpMap
As an old code of mine worked, I've done many test that revealed this issue happen since version 74 of Three.js. Version 73 worked (as 72 and 71)
Warnings on Chrome console :
--From Fragment Shader:
Link was successful.
Three.js version
Browser
OS
WebGL report :
The text was updated successfully, but these errors were encountered: