arcpro 2.5 3d local scene elevation surface
I am creating a local scene in ArcPro 2.5 and having issues with viewing my 3D building layer from a distance. I am using my own custom elevation surface (10m pixel size) and I have no other elevation surfaces in my TOC. My building layer is a polygon feature class with vertices interpolated from the custom elevation surface and extruded using the "Max height" setting and features are set to "On the ground" in the elevation properties.
When zoomed in close all building are sitting on the surface as expected
when viewing the area from further out the buildings sitting on the higher elevations start to disappear.
Using the swipe tool I can confirm that my buildings are drawing correctly and are still at the correct elevation but my Elevation surface seems to have gotten higher but only on the side of the hill. I don't understand this behavior. Is the elevation surface getting simplified and rendered differently when viewing a scene from a distance. I would assume that regardless of how I was viewing a scene my elevation layer should remain the same.
Any insight or ideas on what is going on in my scene would be appreciated.
Does your raster have pyramids built on it? If so then I would expect that behavior since when you zoom out it would render the lower resolution pyramid.
That makes sense!, my raster does have pyramids. I did delete my pyramids and cleared the cache to see if that made a difference but i'm still seeing the same results.
Am I not configuring my building layer correctly? The layer is set to Features are on the ground, wouldn't that mean that if the lower resolution pyramid was rendered the buildings should still sit on top of that surface.
To answer your question here about "on the ground" - this elevation mode draws each vertex of a polygon feature class at the elevation of that location and should update as you change between elevation LODs.
However, it appears you're using a procedural symbol layer to make gable-roofed buildings from these features, which might conflict or otherwise counteract this elevation mode. As an experiment, try using "base heights" extrusion instead and see if the result is more amenable.
First thing I did was to try a layer without the procedural fill. However it looks like a rookie move on my part. I created multiple new project and scenes for testing but I copied over my layers from the original project. This last test I created a brand new project file and rebuild everything from scratch. Procedural fill layer seems to be working as expected. No more disappearing buildings! Thanks for all your help.
Elevation surfaces in ArcGIS Pro are always multi-LOD, and Pro will display a lower LOD of the elevation surface from greater viewing distances. This is done to conserve resources as a 3d view with a long camera angle can have quite a bit of terrain data in it (several million triangles).
That said, we do tune the terrain system at each release to attempt to improve the appearance and LOD selection logic to balance between speed, resource consumption, and appearance.
In fact - we're working on enhancements in the next release (2.6) that will improve the resolution in constrained views (such as a case where you only have one DEM for a small area displayed, or when you have your view clipped to a specific extent) such as the one above.
One workaround for this in the meantime is to use the Raster to TIN geoprocessing tool to create a TIN Dataset of the same area, and use that instead of the elevation raster. TIN datasets always display at full resolution, and therefore should give you consistent elevation on which to place your buildings. The downside of this is that of course you cannot show a much larger area before resource constraints kick in again, but it should get you around this challenge. Another downside of this is that you can't publish a TIN dataset in a web scene.