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

3D Graphics

Custom Entity with EntityGraphicsData

Starting from Eyeshot 2023 the EntityGraphicsData class is abstract. This article explains the recommended approach for creating an instance of the concrete class in a custom Entity. For a complete sample, you can see the SelectTriangle source code. To create an instance you should override the Entity.InitGraphicsData() and use the RenderContextBase.Creat…

by Simone Maccaferri | April 18, 2023 | Share

3D Graphics

Limitations of AntiAliasing

Eyeshot offers the possibility to enable multisample anti-aliasing (MSAA), a technique that removes the artifacts known as jaggies from the raster image of a 3d scene. It can be activated like this: design1.AskForAntiAliasing = true; // in the Form/Window constructor design1.AntiAlisasing = true; This technique greatly improves the image quality, however, in eyeshot…

by Leone Ruggiero | April 14, 2023 | Share

3D Graphics

Fast and approximate world position under mouse cursor

Sometimes it is convenient to get a rough estimate of the 3d position of whatever is under the mouse cursor. It is possible to get that information by reading the depth value corresponding to the mouse screen location.  The method Workspace.ScreenToWorld() does exactly that. The following code sample demonstrates how you could use this approach to show an arrow a…

by Leone Ruggiero | April 06, 2023 | Share

3D Graphics

Screen-Space Ambient Occlusion

  Ambient occlusion is a shading and rendering technique used to calculate how exposed each point in a scene is to ambient lighting (source: Wikipedia). Starting from Eyeshot 2023, it is possible to enable the Screen-Space Ambient Occlusion effect (SSAO): a fast approximation of ambient occlusion computed in real-time.   Settings SSAO settings are accessed through t…

by Leone Ruggiero | March 14, 2023 | Share

3D Graphics

Image-based Silhouettes

Starting from Eyeshot 2023, it is possible to detect and draw silhouettes by leveraging the computational power of the GPU. To enable this feature you should set the relative property:  DisplayModeSettings.SilhouettesDrawingMode = silhouettesDrawingType.ImageBased;   Benefits Fast Independent from the polygon count Limitations Silhouettes are detecte…

by Leone Ruggiero | March 13, 2023 | Share

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 displayType.Flat);  The textures are not supported within TempEntitites. (e.g on…

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 new SelectionSettings class contains all the properties rela…

by Leone Ruggiero | May 30, 2022 | Share

3D Graphics

Better transparency

Don't use the proposed solution if MinimumFramerate is enabled. By default Eyeshot has design.AccurateTransparency property set to false. This allows to render transparent entities without the preprocessing step (design.ProcessSemiTransparent()) required by the AccurateTransparency algorithm (that can take some time depending on the scene complexity). W…

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