laptop and a wrench

Bug

Performance issue with a DistanceCompositeSceneSymbol while drawing thousands of graphics on a GraphicsOverlay.

Last Published: November 28, 2018 ArcGIS Runtime SDK
Bug ID Number BUG-000117596
SubmittedOctober 22, 2018
Last ModifiedJune 5, 2024
Applies toArcGIS Runtime SDK
Version found100.3
Operating SystemWindows OS
Operating System Version10.0 64 Bit
StatusKnown Limit

Additional Information

Using a different 3D marker symbol for each individual graphic incurs an overhead because it limits the reuse of low level graphic resources. Instead we recommend using the `Pitch Expression` property on the Renderer.SceneProperties. Example: ``` private async void Initialize() { mySceneView.Scene = new Scene(); mySceneView.Scene.Basemap = Basemap.CreateImagery(); List ptList = new List(); SimpleRenderer urender = new SimpleRenderer(); var markerSymbol = new SimpleMarkerSceneSymbol() { Style = SimpleMarkerSceneSymbolStyle.Sphere, Color = System.Drawing.Color.FromArgb(200, 255, 255, 0), Height = 11, Width = 11, Depth = 11, AnchorPosition = SceneSymbolAnchorPosition.Center }; urender.SceneProperties.PitchExpression = "[pitch]"; string path = System.Environment.CurrentDirectory + "\\tower.dae"; var modelSymbol = await ModelSceneSymbol.CreateAsync(new Uri(path), 1); modelSymbol.AnchorPosition = SceneSymbolAnchorPosition.Bottom; var compositeSymbol = new DistanceCompositeSceneSymbol(); var nearSymbolInfo = new DistanceSymbolRange(modelSymbol, 0, 1000); compositeSymbol.Ranges.Add(nearSymbolInfo); var farSymbolInfo = new DistanceSymbolRange(markerSymbol, 1000, 10000); compositeSymbol.Ranges.Add(farSymbolInfo); urender.Symbol = compositeSymbol; for (int i = 0; i < 1000; i++) { MapPoint mapPoint = new MapPoint(115 + i * 0.0005, 36 + i * 0.0005); ptList.Add(mapPoint); Graphic graphic = new Graphic(mapPoint); graphic.Attributes.Add("NO.", i); graphic.Attributes["pitch"] = (mapPoint.X - 115) * 100000; goTower.Graphics.Add(graphic); } goTower.Renderer = urender; mySceneView.GraphicsOverlays.Add(goTower); await mySceneView.SetViewpointCameraAsync(new Camera(ptList[0], 1000, 0, 0, 0)); } ```

Steps to Reproduce

Bug ID: BUG-000117596

Software:

  • ArcGIS Runtime SDK

Get notified when the status of a bug changes

Download the Esri Support App

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options