env: chrome 76.0.3809.89
android:Android 9
address:https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=3D%20Tiles%20Clipping%20Planes.html
Incorrect display on the phone
env: chrome 76.0.3809.89
android:Android 9
address:https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=3D%20Tiles%20Clipping%20Planes.html
Incorrect display on the phone
Thanks for reporting this. I can recreate it on my phone. Can you tell me what type of phone yours is? And post a screenshot of opening https://webglreport.com/ on your phone?
I posted details of my phone and some debugging info here:
Hi!
I have found out that with certain Adreno GPU:s gl_FragCoord.w is zero all the time. I am preparing a fix for this, but could use some help from the experts… I think it would be good to use v_positionEC as a varying to clip calculations:
I would use just v_positionEC here:
var shaderCode =
" float clipDistance = clip(vec4(v_positionEC, 1.0), " +
samplerUniformName +
And here it would already be an eye-space position:
function clippingFunctionUnion(clippingPlanesLength) {
var functionString =
"float clip(vec4 position, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)\n" +
"{\n" +
" vec3 clipNormal = vec3(0.0);\n" +
" vec3 clipPosition = vec3(0.0);\n" +
There is one observations though that discourages my approach: For some reason the clip in sandcastle with aeroplane model works even without the fix. I am wondering if rendering the aeroplane model sets some extensions on that enable the gl_FragCoord.w?
@sam.rothstein @omar Maybe you could ping someone to check the Android clip stuff? We have tested this using ten android devices and a missing gl_FragCoord.w seems to bother almost 50% of modern Android devices.