Blog


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

3D Graphics

Limitations of TempEntities

TempEntities are a powerful, useful, and natively supported tool, very handy when some Entities must be drawn over others as described in this article. However, they suffer from a number of limitations: They are neither affected by light nor by shadows effects (e.g they are drawn always in display…

by Federico Fucci | October 07, 2022 | Share

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 …

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…

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. …

by Simone Maccaferri | December 21, 2021 | Share

3D Graphics

Eyeshot 2022 Minimum Frame Rate feature

 How it worksSimplifies 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…

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 …

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 n…

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.   …

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…

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 possi…

by Antonio Spagnuolo | July 05, 2019 | Share