Blog
Learn about industry trends, news and how-tos from our product experts.
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
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
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
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
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
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
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
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
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
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