This is the discussion forum for Helix Toolkit.
For bugs and new features, use the issue tracker located at GitHub.
Also try the chat room!
0
Under review

viewcube

ms600rr 10 years ago updated by anonymous 7 years ago 2
Very nice toolkit !
How does one hide/disable the viewcube ?

Thanks
0

Loading issue of SharpDX on XBAP

Anonymous 10 years ago 0
This discussion was imported from CodePlex

VishwaPrasad wrote at 2014-07-29 14:47:

Hi,

I am using the Helix SharpDX on XBAP.

It shows the error "Unable to find [sharpdx_direct3d11_effects_x86.dll] in the PATH" on runtime,

I have copied this path to bin, but still issues persist.

Can anyone help me to resolve this issue.

Thanks
Vishwa
0
Under review

SharpDX Transparency status

Cyril Paulus 10 years ago updated by Kong Lee 3 years ago 144
Hi,
First I would like to congratulate you on this framework. I find it easy to use and quite complete.

I'm currently using the WPF 3D version of Helix but I'm hitting its limit. Mainly with wireframe rendering and transparency.

I considering switching to Sharp DX version of Helix as the API is similar. But before switching, I would like to know the status of transparency in this version. Is the sorting order now correct ?
Also do you have in mind any immediate drawback of using the Sharp DX version ?

Thanks you.
0

Strange rendering behavior of BillboardTextVisual3D if an object is created during view rotation

Anonymous 10 years ago 0
This discussion was imported from CodePlex

3dfx_IceFire wrote at 2014-03-04 10:29:

I am using the Helix 3D Toolkit to draw a 3D diagram. I am currently using BillboardTextVisual3D objects for the axis designations since BillboardTextGroupVisual3D shows me some other rendering issues (see my other thread).
To improve the usability of the diagram the position of the axis designation change when the diagram is rotated to ensure the user can always see it.
I am using the Viewport3D.Camera.Changed event to calculate the current camera angle and trigger an update of the coordinate system axis if neccessary. The axis itself is a class which inherits from ModelVisual3D and contains several BillboardTextVisual3D objects as children. Each axis provides a function which recreates the Billboard objects and adds them as childs to itself:
public void UpdateModel()
      {
         this.Content = null;
         this.Children.Clear();
         ModelVisual3D labelTextGroup = new ModelVisual3D();

         if (0 == intervals)
         {
            return; 
         }
         var axesMeshBuilder = new MeshBuilder();
         var path = new List<Point3D>();
         path.Add(new Point3D(0.0, 0.0, 0.0));
         path.Add((Point3D)((double)intervals * Direction));
         axesMeshBuilder.AddTube(path, LineThickness, 4, true);

         labelTextGroup.Children.Add(new BillboardTextVisual3D()
         {
            Text = Caption,
            Position = (Point3D)((double)intervals * 0.5 * Direction + 3.0 * DescriptionOrientation),
            FontFamily = new FontFamily("Courier New"),
            FontSize = this.fontSize,
            Background = Brushes.White
         });

         for (int i = 0; i <= intervals; ++i)
         {
            // render description 3D label
            double current = begin + (double)i * intervalSize;

            labelTextGroup.Children.Add(new BillboardTextVisual3D()
            {
               Text = current.ToString(),
               Position = (Point3D)((double)i * Direction + (FontSize * 0.07) * DescriptionOrientation),
               FontFamily = new FontFamily("Courier New"),
               FontSize = this.fontSize,
               Background = Brushes.White
            });
         }

         this.Children.Add(labelTextGroup);
         GeometryModel3D axesModel = new GeometryModel3D(axesMeshBuilder.ToMesh(), Materials.Black);
         this.Content = axesModel;
         
      }
The problem which occurs now is that if I rotate the 3d plot in such a way that the position of the axis designation changes while the model is still in rotation due to its simulated inertia after I release the mouse button, the billboard objects go haywire (see my screenshot).

Left side is normal and how it is desired, right side is how it looks like after I rotated the object a bit around. It is interesting that the problem does not occur if I am still pressing the mouse button while the axis position changes.
I am using the latest version of Helix 3D Toolkit, C#, .NET 4. Let me know if you need more parts of my source code.
If I am using a BillboardTextGroupVisual3D object the problem does not occur.
0

Help in translate/redraw a triangle geometry using a set of new points in 3D

Anonymous 10 years ago 0
This discussion was imported from CodePlex

pyrrhicpk1 wrote at 2012-10-16 11:37:

Hi,

I am able to draw a triangle using meshbuilder with Heli3DToolkit given three points in 3D space. My program updates these points and I want the triangle to get updated as well i.e. redrawn on the new points. How to do this?

At the moment I am re-creating the triangle using meshbuilder every time new set of points are available. This is working but computationally very expensive. It is also causing the UI to respond slowly. I was wondering if there could be a way to apply some transformation to the triangle geometry and re-position it to the new points rather than creating new triangle geometries.

Pleas guide me in this regard.

Thanks


objo wrote at 2012-10-16 15:37:

You should replace the positions only, it is not necessary to create new triangle indices and a new MeshGeometry3D instance.

See also http://msdn.microsoft.com/en-us/library/bb613553.aspx


pyrrhicpk1 wrote at 2012-10-17 04:17:

objo wrote:

You should replace the positions only, it is not necessary to create new triangle indices and a new MeshGeometry3D instance.

See also http://msdn.microsoft.com/en-us/library/bb613553.aspx

 

You mean, I should apply a TranslateTransform3D to my triangle geometry to reposition it to the new position. But, what would be this new position? My program is only updating the position of three spheres which I am using to create a triangle. So, when I get a new set of positions for these three spheres, how should I redraw/re-position my triangle geometry to these new positions? Could you please guide me with a few lines of sample code.

Thanks.

 


pyrrhicpk1 wrote at 2012-10-17 04:44:

I am creating a triangle as follows:

 

 meshBuilder.AddTriangle(new Point3D(x, y, z));

var mesh = meshBuilder.ToMesh(true);

myTrianglegeometry = new GeometryModel3D();
myTrianglegeometry.Material = greenMaterial;
myTrianglegeometry.BackMaterial = yellowMaterial;
myTrianglegeometry.Geometry = mesh;
modelGroup.Children.Add(myTrianglegeometry);

myModelVisual3D = new ModelVisual3D();
myModelVisual3D.Content = modelGroup;

Now my program is updating the values for x, y, and z. So, I am calling the above code for each update of x, y, z which creates a new triangle every-time a set of new x,y,z are available. This works but computationally very intensive and causes the UI response very slow.

To avoid this, how should I re-draw/re-position "myTrianglegeometry" to the new values of x,y,z rather than creating new triangles? Is it possible to change the vertices of the "myTrianglegeometry"?

Please guide me in this regard.

Thanks.


objo wrote at 2012-10-17 08:40:

if you are drawing a single triangle I think you should create the MeshGeometry3D directly, not using the MeshBuilder. 

See http://msdn.microsoft.com/en-us/library/bb613553.aspx

This section is important:

MeshGeometry3D

 

0

Mulitple import

Anonymous 10 years ago 0
This discussion was imported from CodePlex

JohnyWhite wrote at 2013-07-17 23:51:

Hi,

I'm trying to learn Helix toolkit and started with analysing and modifying Model Viewer. I see that the object is loaded with the code:
var importer = new ModelImporter();
CurrentModel = importer.Load(CurrentModelPath);
However this code removes the previously loaded model. Could anyone advise how to load multiple objects.

Any help (piece of code) will be much appreciated.

JohnyWhite wrote at 2013-07-18 01:00:

Found it here:
https://helixtoolkit.codeplex.com/discussions/406298

When I get it running, I will post my code.

Mrme wrote at 2013-07-19 10:56:

I'm looking forward for that
0

Moving manipulators by Code

Anonymous 10 years ago 0
This discussion was imported from CodePlex

rocheey wrote at 2012-07-23 20:56:

Great Toolkit. Im just getting started and Im already blown away.

I created a TruncatedConeVisual3D , as well as as a TranslateManipulator, in XAML, that is bound to the Cone Transform.

The Cone moves along the designated Axis correctly when dragging the TranslateManipulator

But after I move the Cone/manipulator in code using: (VB.Net)

OriginManipulator.Transform = New TranslateTransform3D(XShift, 0, 0)             Cone1.Transform = New TranslateTransform3D(XShift, 0, 0)

The Pair update, but I am unable to drag the mouse on the manipulator afterwards. The manipulator seems frozen in that spot, but dragging the mouse anyway moves the Cone (but the manipulator stays in place)

Am I going about this the right way ?

 

0

Custom Billboard

Anonymous 10 years ago 0
This discussion was imported from CodePlex

aueit wrote at 2014-08-12 16:01:

First of all, thanks for this great framework. I'm trying to make a custom billboard, that keep the image size on the camera zoom in/out event. I copied the necessary codes to my project and made changes to keep the image size, but the code doesn't work. Even if I copy the code and don't do any change, it doesn't work.
0

Bug in MaterialHelper.ChangeOpacity

Anonymous 10 years ago 0
This discussion was imported from CodePlex

soheilvb wrote at 2012-04-14 00:35:

hi again .

in MaterialHelper.ChangeOpacity you forgot to add support for ImageBrush :

I just add this lines

var scbi = dm.Brush as ImageBrush;
                if (scbi != null)
                {
                    scbi.Opacity = d;
                }

after

            if (scb != null)
                {
                    scb.Opacity = d;
                }

and problem solved.


objo wrote at 2012-04-14 00:38:

Thanks for pointing this out! Actually, the code could be changed to

            var dm = material as DiffuseMaterial;
            if (dm != null && dm.Brush != null)
            {
                dm.Brush.Opacity = d;
            }

0

How to show a 3D points cloud (and each point has a RGBA color value)

Anonymous 10 years ago 0
This discussion was imported from CodePlex

yetangye wrote at 2013-03-12 09:39:

Hi, Helix 3D Toolkit is a great work, thanks for your works.

I saw two discussiones has metioned that use PointsVisual3D can display point cloud,
But after I gave a look into the PointsVisual3D source code, I found it can not display a 3D point cloud which have color values on those points.

Is there any component in Helix 3D Toolkit which can show 3D model from a 3D point cloud with colors?

Thanks.

objo wrote at 2013-04-15 13:03:

Sorry, currently only a single color is supported.
To show different colors, you need to set texture coordinates on each point and use a brush material containing the colors!