Embedding the viewport

Hi,

how can I embed the viewport of NG in another application?

br/Ralle

Hello Ralle,

Unfortunately this is currently not possible, and the whole feature is still in research phase -> wonā€™t be available anytime soonā€¦

Ā 

Hello, are there any news about the issue? br/Ralf

Ā 

Hi

I also like to encourage you to publish an open interface for the viewports.

that would adress cool opportunities, f.e.:

  • 360Ā° Live Renderings /Videos
  • Stereo-Rendering (easy Oculus implementation)

As far as i understand the current ā€œsharedā€ API:

1.) Itā€™s possible to create a 3DWindow with own Camera/View- Setting via IApplication.Create3dWindow() and manage them via (Delete3DWindow/ActiveWindow/Windows)

2.) Itā€™s also possible to set the newly created 3DWindow via IViewPort.SetWindow() as active

Problem here is that modifying IViewPort just affects the UIElement of the VC-Application (IViewPort.RootElement) = System.Windows.Controls.Viewport3D

I didnā€™t manage to ā€œdetachā€ or ā€œcloneā€ the IViewPort.RootElement from the VC-application into my application.

----->

It would be great if IViewPort could publish for example an UIElement of type (Viewport3D)???

Thanks

Hi
I manage to show the IApplication.ActiveWindow in a separate Window, but iā€™m not satisfied with the solution, because itā€™s not the viewport itself. To those who like to review the codeā€¦ be warnedā€¦ started .net 5 days ago. If you come up with a better solutionā€¦ please share.
Problems:

  1. Framerate: IApplication.SurfaceToBuffer() (1Hz) vs. IApplication.SurfaceToContineousBuffer() (30Hz)
  2. IApplication.SurfaceToContineousBuffer() needs IApplication.SetRecordingMode(true)
    -> Rendering in VC-window paused
  • you can still drop layouts in VC-windows and play simulation
  • also pan/zoom in VC-windows effects just the 2nd window, not the VC-window itself
  1. It seems that there are some async rendering functions with an explicity interface for a seperate 3DWindow:
    SurfacePrepareRender(3DWindow);
    SurfaceStartRender(3DWindow);
    SurfaceWaitRender(3DWindow);
    but i couldnā€™t find a way to use the SurfaceToBuffer() or SurfaceToImage() function independently from IApplication.ActiveWindow
    -> so if i like an ā€œimageā€ i have to make the 3dwindow active??

I didnā€™t tried to get a better performance:
-Direct3D UI stuff like SharpDX etc. for visualisation

WpfApplicationShowRenderImage.zip (57.4 KB)

1 Like

Thanks maik for sharing. I totally agree with you about the support for 360 video player, VC and AR type of use cases. Itā€™ll probably need a little different type of approach from VC side.

The support for the multi viewport support is basically still in the same state as Gargamel earlier stated. Itā€™s in a research/development phase. You might get some things already working as you managed to do but support for navigation and handles (etcā€¦) is not quite done yet. So for the time being Iā€™d recommend to waitā€¦ otherwise youā€™ll keep banging your head on a wall.

Hi eme,

thanks for reply to my investigation. As you mentioned, there are some parts of viewport already implemented. Is there any chance to get into a ā€œfast ringā€ of beta releases? You may contact me also via email:

maik.poggendorf@iff.fraunhofer.de

thanks

Maik

Are there any news about the embedding possiblities research? In version 2014 it was a big strength to embedd the viewport in other applications.

Thanks for showing this example.

I have a little different goal. Instead of exporting the display to a different application, I want to display a second 3D graphics window in my VC application so I can have 2 views side-by-side.

The naming implies that IApplication.Create3dWindow() would be a display ready element, but I cant seem to show it on the screen.

Does VC have the capability to display 2 3D windows?

Is this the ā€œmulti viewportā€ that eme indicated is still in research/development?

  • I have the same wish. Is there anyone who can help

I would love to be able to add multiple Windows at the same time, each with a different camera, to achieve a multi-angle, partial display of the same project. Can you provide demo code? thank you

1 Like