Blog


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

Announcement

Eyeshot 12 build 520

We are proud to announce the availability of a new Eyeshot 12 stable build: 12.0.520 In Brief This build includes bug fixing, small speed improvements and code samples refactoring. Here are a few highlights: Improved Mesh section speed using Octree Fixed realistic shadow flickering with complex sc…

August 14, 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

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

by Antonio Spagnuolo | February 28, 2019 | Share

Miscellaneous

Native vs NativeExperimental rendering in WPF

Subscribing to CompositionTarget.Rendering is sometimes useful or even needed but should be used wisely because it forces WPF to constantly render window. For this reason, starting from Eyeshot 12, we introduced the NativeExperimental renderer to stop using this event for rendering. When I should u…

by Marcello Stagni | February 27, 2019 | Share

3D Graphics

Rendered Mesh in Wireframe display mode

The proposed solution is not natively supported and may not work in all scenarios or versions. You can have a Mesh entity displayed always as Rendered, regardless of the active display mode, by using the following class derived from Mesh: public class MyShadedMesh : Mesh { public MyShadedMes…

by Antonio Spagnuolo | February 14, 2019 | Share

3D Graphics

AutoCAD like selection style

Here's the Eyeshot code to simulate the selection style of AutoCAD®. Clicking the mouse will set the pick state to "Pick". When moving the mouse to the right more than 10 pixels, the pick state changes to Enclosed and when moving to the left of the same amount the pick state becomes Crossing. A tra…

by Antonio Spagnuolo | February 06, 2019 | Share

3D Graphics

Highlighting the edge closest to the mouse

The following SingleModel derived class computes the Solid or Mesh edge closest to the mouse position and draws it on screen with a different color to highlight it. It iterates through the Edges of the Portions of each Solid and through the edges of each Mesh in the scene computing the one closest …

by Antonio Spagnuolo | February 06, 2019 | Share

3D Graphics

Entities far from the origin: view shaking and bad precision (jittering)

When the entities are very far from the origin their appearance on screen may become very compromised, and the camera may shake badly when moving/rotating the view. Case 1: See the image below of a circle created at (1e9, 1e9, 0) with radius 200:   This is due to the float precision of OpenGL that…

by Antonio Spagnuolo | January 29, 2019 | Share

3D Graphics

ObjectManipulator customization

Using, for example, the Rings styleType, the default appearance of the ObjectManipulator is the following:  By specifying custom meshes it's possible to change its appearance: Here is the code: var orig = Mesh.CreateBox(1.6, 1.6, 1.6); orig.Translate(-0.8, -0.8, -0.8); design1.ObjectManipulator…

by Antonio Spagnuolo | January 25, 2019 | Share

3D Graphics

Create points with a different shape

Tired of square Point entities? Here there are a few tricks to build points with the shape you want.   First solution: using ImageOnly Label An easy solution could be using an ImageOnly label with a semi-transparent image: Bitmap bmp1 = new Bitmap(@"pointImage.png"); int halfW = bmp1.Size.Width / 2…

by Alberto Bencivenni | January 18, 2019 | Share