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

[Asset] Unified 3D asset importer (on behalf of Noa7/Noah7071) #2163

Merged
merged 88 commits into from
Apr 4, 2024

Conversation

Eideren
Copy link
Collaborator

@Eideren Eideren commented Feb 20, 2024

PR Details

Replaces the C++/CLI FBX importer with a managed c# one using Assimp
https://opencollective.com/stride3d/projects/fbx-import-cpp-to-c-sharp
Fix #1923

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My change requires a change to the documentation.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • I have built and run the editor to try this change out.

Copy link
Member

@Kryptos-FR Kryptos-FR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some files not needed, like the workspace.db (couldn't add a comment to that binary file).

sources/Directory.Packages.props Outdated Show resolved Hide resolved
@@ -3,4 +3,5 @@ public static class DiagnosticCategory
{
public const string Serialization = "Serialization";
public const string LinkFormat = "https://doc.stride3d.net/latest/en/diagnostics/{0}.html";

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary change.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

Comment on lines 61 to 62
/* var showFbxDedupeNotSupportedWarning = showDeduplicateMaterialsCheckBox && files.Any(x => ImportFbxCommand.IsSupportingExtensions(x.GetFileExtension()));
*/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove code instead of commenting it out.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

build/Stride.sln Outdated Show resolved Hide resolved
@Eideren
Copy link
Collaborator Author

Eideren commented Feb 20, 2024

Thanks again @Noah7071 - didn't go too deep into the review yet, just did a quick test using the animation sample.
It mostly works, just a couple of things to iron out;
Looks like right now the fbx scale and or axis is not taken into account, here's the scale as is with the PR:
image
And what it should be:
image
Running the sample makes the character run sideways, likely because of the custom axis of rotation / coordinate basis embedded in that particular fbx:
image

sources/engine/Stride.Assets.Models/ImportModelCommand.cs Outdated Show resolved Hide resolved
sources/Directory.Packages.props Outdated Show resolved Hide resolved
build/_workspaces.db Outdated Show resolved Hide resolved
@Noah7071
Copy link
Contributor

Some files not needed, like the workspace.db (couldn't add a comment to that binary file).

Done, Reverted.

@Eideren Eideren marked this pull request as ready for review April 3, 2024 21:27
@Eideren Eideren changed the title [WIP][Asset] Unified 3D asset importer (on behalf of Noa7/Noah7071) [Asset] Unified 3D asset importer (on behalf of Noa7/Noah7071) Apr 3, 2024
@Eideren Eideren merged commit 0e053a3 into stride3d:master Apr 4, 2024
13 checks passed
Eideren added a commit to Eideren/xenko that referenced this pull request Apr 9, 2024
* Remove docs, has been moved to Stride docs repo

* [OpenXR] Fixes build on graphics APIs other than D3D11

This build regression was introduced by previous commit d72aef5

* Update samples to Stride 4.2 (stride3d#2132)

* [Samples] Update to 4.2

* [Samples] Remove Newtonsoft.Json dependency in CSharpIntermediate

* [Tests] Fixes random test failures (stride3d#2133)

* [Tests] Fixes random test failures

Some of the tests in Stride.GameStudio.Tests must not run in parallel as they access a shared class which is not thread safe.

* Sets wait time in TestFileVersionManager to 500ms (from 200)

Should make it less likely that unit tests on teamcity fail.

* Repair projectwatcher (stride3d#2106)

* use positive 77

* repair projectwatcher

* remove unused line

* undo -77 change

* undo -77

* order usings

* fix formatting

* remove unused solution

* remove unused async

* use previous cancelation method

* remove extra task

* add check to not throw assembly changes away

* rework distribution of assemblychanges

* remove unused using

* add broadcast back in

* remove assembly broadcast

* add cancelation

* replace cancelation location

* improve if nesting

* improve naming, fix reload on new references

* fix loading chain of assets

* refactor

* [Editor] Refactor initialization of CodeViewModel

---------

Co-authored-by: IXLLEGACYIXL <[email protected]>
Co-authored-by: Nicolas Musset <[email protected]>

* [OpenVR] Adds a minimal API to request and control Passthrough (supported by OpenXR)

https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_FB_passthrough

* [OpenXR] Makes device construction internal and improves exception messages of new StartPassthrough method

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* [Assets] Prevent crash of the assets compiler when an assembly cannot be fully loaded. (stride3d#2144)

Fixes stride3d#2140

* [Build] Remove stylecop (stride3d#2105)

Co-authored-by: IXLLEGACYIXL <[email protected]>

* [Presentation] Rework AssetViewModelAttribute

* [Editor] Cleanup

* [Assets] Mark Editor as obsolete on AssetViewModel

* [Editor] Make Asset property public on all editors

* [Editor] Make IAssetEditorsManager a service

* [Editor] Keep track of asset/editor association in AssetEditorsManager

* [Editor] Add a method to find an opened editor

* [Editor] Change binding logic in editor views

The default DataContext is now the editor instead of the asset

* [Editor] Update sprite editor bindings

* [Editor] Update UI editor bindings

* [Editor] Update entity hierarchy editor bindings

* [Editor] Update script editor bindings

* [Editor] Update graphics compositor editor bindings

* [Editor] Removed pointless constraint on column width

Which is also spamming the console with binding errors.

* [Editor] Remove editor-related properties from AssetViewModel

* [Editor] Rework AssetEditorViewModelAttribute

- add AssetEditorViewAttribute
- rework view creation and initialization

* [Editor] Make AssetEditorViewModel.Asset property virtual

C# has covariant return types since version 9

* [Editor] Rework plugins initialization

* [Editor] Rework AssetPreviewViewModelAttribute & AssetPreviewAttribute

- add AssetPreviewViewAttribute to break the dependency between a preview and its UI-dependent view

* [Editor] Fix initialization of SpriteSheetEditorViewModel returning false

* [Editor] Make Stride.Core.Presentation.Quantum cross-platform

* [Editor] Make Stride.Core.Assets.Quantum cross-platform

* [Editor] Do not load StrideDefaultAssetsPlugin from module.

It currently hardcodes loading the templates from a package which causes some tests to fail.

Partially reverts c98c72e

* feat: Release.yml added for PR categorisation (stride3d#2137)

* feat: Release.yml added for PR categorisation

* Categories updated

* [Editor] Fix scene editor loading screen

* [VR] feat: Add haptic support to OpenVR and Oculus runtimes (stride3d#2169)

Co-authored-by: Eideren <[email protected]>

* [Audio] Audio emitter multiple references to same asset bugfix (stride3d#2176)

Co-authored-by: Eideren <[email protected]>

* Use correct destination path in asset import overwrite dialog

* Use GetFullPath to correct directory seperator for display

* fix: File GraphicsResourceMap.cs without references removed (stride3d#2181)

* feat: Update samples/template to top-level statements (stride3d#2187)

* Update README.md (prerequisites)

* Update README.md (VSIX prerequisites)

* [VSPackage] Revert a few package upgrades so that VSIX builds properly

* [Presentation] Fix issue with binding quantum nodes when associated name is not found (stride3d#2195)

Note: the solution is rather hackish at the moment. To be revisited once we have an Avalonia version.
Should we then introduce a service for setting/retrieving the Unset value

* fix: [Asset] Unified 3D asset importer (on behalf of Noa7/Noah7071) (stride3d#2163)

Co-authored-by: noa7 <[email protected]>
Co-authored-by: noa7707 <[email protected]>
Co-authored-by: Noah7071 <[email protected]>

---------

Co-authored-by: JornosDesktop <[email protected]>
Co-authored-by: Elias Holzer <[email protected]>
Co-authored-by: Nicolas Musset <[email protected]>
Co-authored-by: IXLLEGACYIXL <[email protected]>
Co-authored-by: IXLLEGACYIXL <[email protected]>
Co-authored-by: Nicolas Musset <[email protected]>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Jorn Theunissen <[email protected]>
Co-authored-by: Marian Dziubiak <[email protected]>
Co-authored-by: Vaclav Elias <[email protected]>
Co-authored-by: Addison Schmidt <[email protected]>
Co-authored-by: Eideren <[email protected]>
Co-authored-by: Tim Conner <[email protected]>
Co-authored-by: Jakub Ławreszuk <[email protected]>
Co-authored-by: xen2 <[email protected]>
Co-authored-by: noa7 <[email protected]>
Co-authored-by: noa7707 <[email protected]>
Co-authored-by: Noah7071 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace FBX C++/CLI importer with a cross-platform FBX library
9 participants