Closed damix911 closed 4 years ago
I did a very rough analysis of the problem.
I think that this could be an issue with Tile3DLayer
not enabling depth testing.
If you look at the code for ScenegraphLayer for instance it does not enable depth testing explicitly.
On the converse this ElevationLayer here, does enable it.
Now, if you look at the initialization code for the entire Deck, it seems like it is enabled at the top level. So maybe this is why also the layers which are not enabling it explicitly can get away with it.
But in the ArcGIS SceneView
case this does not work anymore because SceneView
resets the GL state to default before handing control to the ArcGIS external renderer which in turn delegates to deck.gl.
WDYT?
This is similar to issues that the @deck.gl/mapbox
module encounters, where deck.gl is sharing a WebGLContext with an external library.
I think the proper fix is to assign the parameters
prop of the Deck instance, which will be re-applied whenever Deck is about to render.
Fix landed in 8.1.7
This is being worked on in #4597
Description
@deck.gl/arcgis
'sDeckRenderer
(i.e. the deck.gl extension for ArcGIS'sSceneView
component) does not seem to cull hidden surfaces with certain 3D models. It was known (the 3D integration between ArcGIS and deck.gl is not even documented yet) but we were waiting to fix other issues before working on that (like camera alignment). It has been re-discovered by the devs working on I3S but we don't think that it is specific to I3S. I think I would like to fix this first, it would make working on camera alignment less frustrating.It should look like on the right, but with 8.1.0 and even in
master
it looks like on the left.Repro Steps
Go to this pen https://codepen.io/dawken/pen/KKdGRvx and see that it does not look right.
Environment
Logs
Mainly these two errors in the console, but believed to be unrelated: