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

HelixToolkit.SharpDX.Wpf_NET40 example run

Anonymous 12 years ago 0
This discussion was imported from CodePlex

cedrelo wrote at 2013-11-06 13:40:

Hi,

First, thanks for your work with helixtoolkit!
I use it to create a 3D application to display model 3D in .stl

Now i want to try your fork HelixToolkit.SharpDX.Wpf_NET40, but it is impossible to run and try the example.

It writes "Error registering effect, unable to load d3dcompiler_43.dll"

Could you help me ?

Thanks

Cédric

cedrelo wrote at 2013-11-06 15:05:

I put d3dcompiler_43.dll in c:/windows/system32


and now i have

"Tentative de chargement d’un programme de format incorrect. (Exception de HRESULT : 0x8007000B)"

"Attempt to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)"

Any help would be fine ?


Cédric

przem321 wrote at 2013-12-02 20:28:

If you have errors with missing DirectX dlls (e.g. d3dcompiler_42.dll is missing) try installing the DirectX 2010 End-Users Runtime from: http://www.microsoft.com/en-us/download/details.aspx?id=8109 That applies also to Windows 8/8.1 even if it comes with a DX SDK.
0

Learning Helix3D while learning WPF help

Anonymous 12 years ago 0
This discussion was imported from CodePlex

David_NET wrote at 2013-11-23 01:21:

I am playing with Terrain Example

Currently the Source refers to a file to be uploaded using SurfacePlotVisual3D's

UpdateModel()

I am testing to use Helix3D as usercontrol through ElementHost in WinForm application

I am trying to figure out how to pass a new fileName string from WinForm so that I could define UpdateModel( FileName) and choose new file to load 3D data during run time.

Anyone know any example which I could study?
D.

objo wrote at 2013-12-02 20:01:

Sorry, I don't know how to use it from winforms.
0

Implementing 3D Line Chart over time

Anonymous 12 years ago 0
This discussion was imported from CodePlex

sprotznock wrote at 2013-12-02 09:49:

Hi,

I began WPF 3D programming and I wanted to implement a Line chart which will be updated over time i.e. a kind of waterfall chart in 3D which displayes e.g. spectrums. I had two approaches for this implementation.
First: every spectrum is created as Visual3D with its own Material and GeometryModel3D
Sec: every spectrum is in one big Visual3D

What is the best approach to achieve the solution or is there any better way to do this? Performance is citical as well because it should be filled with live data.

Thanks

objo wrote at 2013-12-02 19:12:

For Visual3D vs. Model3D: have a look at http://blogs.msdn.com/b/danlehen/archive/2005/10/09/478923.aspx
The AudioDemo example in this library shows frequency spectra visualized by scaling boxes in one direction.

sprotznock wrote at 2013-12-03 19:00:

Thanks for the information. I will check this out and will decide which solution is the best.
0

Simple Geometry Lines

Anonymous 12 years ago 0
This discussion was imported from CodePlex

Aurega wrote at 2013-11-29 14:51:

Hello,

I´m just learning with WPF, I want to make simple line by using HelixViewport3D from XYZ coordinations to XYZ, but I can´t figure out which parameters I must use. I tried many combinations but without luck.
Can anyone help me with this ?

RobPerkins wrote at 2013-11-30 08:26:

Avail yourself of one of any number of online resources found by a Google or Bing search for "WPF 3D Tutorial". Charles Petzold's demos were particularly good.

objo wrote at 2013-12-02 19:59:

Drawing a line in WPF is not a simple task, drawing a triangle is much easier. Remember to add light(s) to the scene.
I agree with Rob - Petzold's book (and demos) is a great place to start!
0

Change materials at runtime

Anonymous 12 years ago 0
This discussion was imported from CodePlex

Tottel wrote at 2013-11-14 18:04:

Hi,

I've been using the Helix toolkit for a day now, and I just can't get my head wrapped around it.
I have my own WPF interface, and I can load and display a model into my scene. However, I just can't figure out how to change the materials on the model after loading the model from file.

Does anyone know?

Thanks!

Tottel wrote at 2013-11-19 20:18:

No one has any suggestions on how to do this?

objo wrote at 2013-11-19 22:22:

Did you try changing the Material property?
http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.geometrymodel3d.material(v=vs.110).aspx

Also, make sure the model is not frozen.

Tottel wrote at 2013-11-20 00:11:

I didn't realize you could do that in XAML :D

I'll give that a try, thanks!

objo wrote at 2013-11-20 08:12:

I think you need to change the material programatically if you load a model into the scene at runtime!

Tottel wrote at 2013-11-23 14:31:

objo wrote:
I think you need to change the material programatically if you load a model into the scene at runtime!
And how exactly would I access that material? I use a Model3D after loading in the mesh, but I really don't see where I can change the material anywhere.. :/

a5r wrote at 2013-11-24 10:48:

you can try setting the Material property of a GeometryModel3D to an instance of Material , for instance DiffuseMaterial

Tottel wrote at 2013-11-28 10:34:

Working great now; thanks a lot! :)
0

sync the cameras of different HelixViewport3Ds

Anonymous 12 years ago 0
This discussion was imported from CodePlex

lightxx wrote at 2012-12-19 08:49:

I'm designing a UI where i want to exclude a couple of Visual3Ds from hit - testing.

So I thought it would probably be a good idea to use two overlapping HelixViewport3Ds and set IsHitTestVisible to false on one of them to exclude those Visual3Ds from hit-testing.

Now, how do i sync the cameras of those two HelixViewport3Ds so when i pan/zoom/... the first one the second one stays in snyc?

Or is there a better approach to this problem?


lightxx wrote at 2012-12-19 09:14:

ok. the trick was to do two-way bindings. sorry.

 

<PerspectiveCamera LookDirection="{Binding ElementName=boardView, Path=Camera.LookDirection, Mode=TwoWay}"  Position="{Binding ElementName=boardView, Path=Camera.Position, Mode=TwoWay}" UpDirection="{Binding ElementName=boardView, Path=Camera.UpDirection, Mode=TwoWay}"/>


lightxx wrote at 2012-12-19 09:24:

the Viewports still have a slight offset ... weird.


objo wrote at 2012-12-19 09:27:

Did you try using UIElement3Ds

http://msdn.microsoft.com/en-us/library/system.windows.uielement3d.ishittestvisible.aspx


lightxx wrote at 2012-12-19 10:03:

thanks for pointing me in the right direction!!!

0

Get visible meshes in HelixViewport3D

Anonymous 12 years ago 0
This discussion was imported from CodePlex

chriskro wrote at 2013-11-05 16:34:

Hello,
I wonder if it is possible to get all visible content that is rendered in HelixViewport3D?
Does anybody have experience with that?

Greetings,

Chriskro

objo wrote at 2013-11-11 12:43:

Try the Visual3DHelper.Traverse method
http://www.nudoq.org/#!/Packages/HelixToolkit/HelixToolkit.Wpf/Visual3DHelper/M/Traverse(T)

Select it in the source code and press Shift-F12 and you will find many examples of usage!

chriskro wrote at 2013-11-13 09:01:

Thank you for your answer.
As far as I could see it, it traverses over the model elements, even when they are not visible. But the question is, how do I find out, if a specific element is visible?

objo wrote at 2013-11-19 23:03:

If a model element is visible in the viewport depends on the camera, transforms, lights, material and geometry. If ligths are defined and you don't need to know if the element is within the viewport, you only need to check the material and geometry.
See also https://helixtoolkit.codeplex.com/workitem/10003
0

Load multiple 3ds file in viewport

Anonymous 12 years ago 0
This discussion was imported from CodePlex

sarankani wrote at 2012-12-10 20:01:

Hi Objo,

I am new bee to helix 3D. I need to load many .3ds file in helix viewport. Now i am using the following code

var modelGroup = new Model3DGroup();
            var reader = new StudioReader();
            FileStream c = new FileStream(@"F:\\helixtoolkit3dfiles\" + URL, FileMode.Open, FileAccess.Read, FileShare.Read);           
            reader.TexturePath = ".";
            modelGroup = reader.Read(c);
           this.Model = modelGroup;
            c.Close();

I can only load one file at a time. I need to load many. Thanks in advance for your help. Please let me know your suggestions.

 


objo wrote at 2012-12-13 23:02:

try adding the loaded models to the Children collection

http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.model3dgroup.children.aspx

0

Creating new model after cutting

Anonymous 12 years ago 0
This discussion was imported from CodePlex

MichaelKubrak wrote at 2012-09-27 15:14:

Hello. I need to show the distribution of heat in a solid object. The first thing I came up with that figure expanded to many cubes and noticed paint them depending on the situation. but it's no good for me, because shapes are complex and large.The second thought is that the load already created a model from a file, and then divide it by cutting. But after cutting a cavity appears in the model. Please tell me how to close the cavity?Cutting is done using MeshGeometryHelper.Cut function. Maybe you can get all the vertexes models after cutting, and put them together again to paint this area?


objo wrote at 2012-10-09 22:28:

There is a simple "Ear clipping" triangulation method (see Geometry/CuttingEarsTriangulator) that can be used to close simple convex polygon cutting regions. If your cuts are creating more complex regions you need a more advanced triangulation method (not included in this toolkit). http://en.wikipedia.org/wiki/Polygon_triangulation

0

Printing to scale

Anonymous 12 years ago 0
This discussion was imported from CodePlex

murray_b wrote at 2012-03-27 05:28:

Hi objo

I am trying to print out to scale from the HelixViewport3D. 

I have an example from the book "3D Programming for Windows by Charles Petzold"

In it he utilises the Viewport3DVisual for printing to be able to control the printing better. ( do you have this book I can post the relevant sections if not). Of course HelixViewport extends Viewport3D so I don't have access to this and am not sure how to get it. 

Is this something you think I can use Helix for, and would this be a good approach. Or can you recommend a better way to print to scale.

thanks

Murray


objo wrote at 2012-04-05 01:47:

I have not tried this myself, but I understand you have to create a separate Viewport3DVisual to do this (I see Petzold put it inside a VisualBrush with stretch=None). Have you tried temporarily moving the camera and Visual3D contents from the HelixViewport3D to the Viewport3DVisual when you want to print?


murray_b wrote at 2012-08-31 12:29:

Hi Objo

I have done this and I was thinking it was working fine.

However I have recently found that I can't get text to be printed.

Once I narrow down the issue I will post more. I just wanted to check that you haven't made this work since we had this discussion.

thanks

Murray


murray_b wrote at 2012-09-07 02:28:

For anyone else who has this problem. 

We got it working. Basically had to pause the code before creating the image from thh Veiwport3DVisual

  visual3D.Dispatcher.BeginInvoke(new System.Action(() => { })).Wait();
  BitmapSource bitmapSource = RenderBitmap(visual3D, Width, Height, Brushes.White);

 

It now renders the text correctly