Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Support WPF 3D capabilities on WinUI #4783

Open
pjmlp opened this issue Apr 10, 2021 · 8 comments
Open

Proposal: Support WPF 3D capabilities on WinUI #4783

pjmlp opened this issue Apr 10, 2021 · 8 comments
Labels
feature proposal New feature proposal product-winui3 WinUI 3 issues team-Rendering Issue for the Rendering team wpf-vs-winui-mismatch

Comments

@pjmlp
Copy link

pjmlp commented Apr 10, 2021

Proposal: [3D Support on WinUI]

WPF has support for 3D programming on LOB applications, without having to leave .NET languages.

https://docs.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/3-d-graphics-overview?view=netframeworkdesktop-4.8

WinUI should provide similar support as upgrade path.

Summary

Basically port the XAML controls and .NET classes from WPF into WinUI, used by the 3D modelling features described on the link provided above.

Rationale

Currently WinUI does not offer anything that is compelling enough to drop WPF and adopt WinUI in regards to 3D support.

Making use of SwapChainPanel is not an option, as it requires learning C++ and DirectX, with the caveats that such learning requires for a .NET focused team, or bringing additional resources into projects with those skills, raising project costs.

Secondly it also requires throwing away perfectly working code for no benefit.

Bringing in .NET based game engines like Unity or Xenko is also not a solution, as these are visualisations for LOB applications, that would suffer from having a game engine pushed into their architecture.

Failing to offer feature parity with WPF will decrease some possible adoption cases, as it has been the case thus far.

@pjmlp pjmlp added the feature proposal New feature proposal label Apr 10, 2021
@ghost ghost added this to Freezer in Feature tracking Apr 10, 2021
@ghost ghost added the needs-triage Issue needs to be triaged by the area owners label Apr 10, 2021
@StephenLPeters StephenLPeters added product-winui3 WinUI 3 issues wpf-vs-winui-mismatch team-Rendering Issue for the Rendering team labels Apr 12, 2021
@StephenLPeters
Copy link
Contributor

@codendone FYI

@sylveon
Copy link
Contributor

sylveon commented Apr 25, 2021

Can't you use one of the managed DirectX libraries available (like Vortice and TerraFX) in combination with SwapChainPanel to avoid dropping down to C++?

@pjmlp
Copy link
Author

pjmlp commented Apr 25, 2021

No, because that is yet another re-write being pushed by Microsoft, the main reason why UWP has failed the market, the majority of us is fed up with the code rewrites being pushed since Windows 8, while the platform keeps lagging behind what WPF and Win32 were capable of in 2011.

Edit if I need to rewrite some of this software, most likely it will end on developer stacks other than Windows desktop technologies like Qt or Web.

@codendone codendone removed the needs-triage Issue needs to be triaged by the area owners label May 14, 2021
@GeorgeS2019
Copy link

GeorgeS2019 commented Jun 7, 2021

@pjmlp There have been attempts but given up
@codendone Last demo of this effort

@pjmlp

Bringing in .NET based game engines like Unity or Xenko is also not a solution, as these are visualisations for LOB applications, that would suffer from having a game engine pushed into their architecture.

Failing to offer feature parity with WPF will decrease some possible adoption cases, as it has been the case thus far.

The best chance for 3D WinUI control is to make this 3D framework to support WinUI control

@pjmlp
Copy link
Author

pjmlp commented Jun 7, 2021

@GeorgeS2019 Thanks for the heads up.

I have grown disappointed with all the rewriting efforts, outside Web applications, I am mostly focusing on WPF/Win32 and specially curious what rewrites Windows 11 will be asking of us.

@GeorgeS2019
Copy link

GeorgeS2019 commented Sep 11, 2021

FYI: For discussion/sample (.NET c#) of DirectX 3D renderer using SwapchainPanel in Project Reunion (WinUI 3)

@giovanni-a
Copy link

I hope this is an appropriate avenue for sharing, but given the expressed desire for expanded 3D functionality in WinUI and noting the slow progress on the 3D XAML front, I felt some might find our work relevant to the discussion.

Our team, the same behind OpenSilver, is actively developing XR# (see website and twitter), a distinct framework centered around 3D application development with .NET, C#, and XAML/MVVM. It provides a WPF-like experience for developers and facilitates 3D app development for the Web, VR/AR devices, and multiple platforms by incorporating technologies like WebXR, Three.js, and the Microsoft .NET to WASM compiler. Our primary focus is enterprise VR/AR applications with a GUI-centric approach, as we firmly believe that VR/AR has applications beyond just gaming. Also, we're soon unveiling a WYSIWYG 3D XAML designer.

I share this not as an advertisement, but in the spirit of collaboration and hope it contributes meaningfully to the ongoing conversation. If this wasn't the right forum, I apologize and appreciate the understanding.

@castorix
Copy link

castorix commented Sep 7, 2023

Making use of SwapChainPanel is not an option, as it requires learning C++ and DirectX,

You can do everything in C# (I had tested with Direct2D, it is as fast as in C++)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature proposal New feature proposal product-winui3 WinUI 3 issues team-Rendering Issue for the Rendering team wpf-vs-winui-mismatch
Projects
Development

No branches or pull requests

7 participants