Blog


Learn about industry trends, news and how-tos from our product experts.

3D Graphics

Semi-transparent Selection with Halo

Starting from Eyeshot 2022.2 it is possible to draw dynamically selected entities with a halo effect. Starting from Eyeshot 2023 it is possible to draw both static and dynamic selection entities with a halo effect. All the relevant settings are grouped under the property Workspace.Selection. The new SelectionSettings class contains all the properties rela…

by Leone Ruggiero | May 30, 2022 | Share

3D Graphics

Better Transparency

  Feature conflict The following approach won't work as expected when MinimumFrameRate is enabled. By default Eyeshot has design.AccurateTransparency property set to false. This allows rendering transparent entities without the preprocessing step (design.ProcessSemiTransparent()) required by the AccurateTransparency algorithm (that can take some time…

by Simone Maccaferri | February 15, 2022 | Share

3D Graphics

Performance Tips

The main performance feature of Eyeshot is the Minimum Frame Rate. It basically skips small objects during dynamic movements trying to maintain the target frame rate. The following settings affect the number of drawn objects when the Minimum Frame Rate is enabled, and affect the FPS when disabled. Before playing with these settings, please turn on the current…

by Simone Maccaferri | December 21, 2021 | Share

3D Graphics

Eyeshot 2022 Minimum Frame Rate feature

  How it works Simplifies the geometry during Zoom/Pan/Rotate removing small objects trying to maintain the target frame rate. Once the dynamic movement is completed the progressive drawing kicks in to avoid blocking the UI. It can be deactivated using the Design.MinimumFrameRate property set to zero.   Recommended values Between 10 and 20. Zero to deactivate. Th…

by Alberto Bencivenni | December 13, 2021 | Share

3D Graphics

Speed up the resizing of the control

Update for version 2022 and newer Starting from Eyeshot 2022, this solution is no longer needed if Minimum Frame Rate is enabled. In order to speed up the resizing of our control, it is possible to activate the culling feature even during its resizing.  Here is the snippet code for both WinForms and WPF.  For WinForms: protected override void OnResizeBegin(EventArg…

by Antonio Spagnuolo | October 01, 2020 | Share

3D Graphics

Draw infinite world axes

With the following class derived from Design you can draw the infinite world axes as shown in the following image:  The axes are drawn in 3 overridden methods: DrawViewportBackground: the part of the axes beyond the far plane DrawViewport: the part between the camera planes DrawOverlay: the part nearer than the camera near plane [Note] The code supports multiple V…

by Antonio Spagnuolo | May 20, 2020 | Share

3D Graphics

3D scene visual testing

Eyeshot contains a utility to perform an accurate check between images.The general idea is very simple: a pixel-by-pixel comparison. The method devDept.ImageComparison.CompareImages() compares 2 bitmaps and returns an image showing the different pixels and the mismatch percentage between them.   Expected image Current image Differences Code snippet: Bitmap…

by Marcello Stagni | January 07, 2020 | Share

3D Graphics

Text entity with background mask

 Non-maintained solution The proposed solution is not natively supported and may not work in all scenarios and versions. Here's an example on how to derive the Text class in order to draw a colored background mask behind the text.  Here is the code:  class MyText : devDept.Eyeshot.Entities.Text { public Color MaskColor = System.Drawing.Color.Red; // Enables the halo effect f…

by Antonio Spagnuolo | December 13, 2019 | Share

3D Graphics

Drawing entities above all others entities using TempEntities

It is common the need to draw an entity that will be shown above all other entities. For this task, there is not a univocal answer and there are different solutions that can be implemented based on the working context. For one of them, you can use the approach shown here. Here, we discuss the possibility to use our TempEntities to achieve this task.  Here is a sample code: B…

by Antonio Spagnuolo | July 05, 2019 | Share

3D Graphics

Create streamline-like curve

This article shows how to create streamlines using the PointCloud class. With the first approach,  you will have full control over the streamlines colors since you can set the RBG color of each the PointCloud's vertexes. With the second approach, you can choose colors by means of a Color Table. This is a tool that allows you to easily create a map between numerical va…

by Antonio Spagnuolo | February 28, 2019 | Share