Incorrect Node.Name after export + import binary FBX introduced in 21.9.0

Noticed this when upgrading from 21.6.0 to 21.10.0. I’ve isolated it to 21.9.0

Following code should show the issue:

[TestFixture]
public class Tests
{
   
    [ OneTimeSetUp ]
    public void Setup()
    {
        var l = new License();
        l.SetLicense(@"<my license file>");
    }


    [Test, Parallelizable(ParallelScope.All)]
    public void SimpleScene_SaveAndOpen_FileStream_Successful([ValueSource(nameof(FBXTestFormats))] FileFormat fileFormat)
    {
        Scene scene = new Scene();
        var cubeNode = scene.RootNode.CreateChildNode("Cube Node");
        cubeNode.Entities.Add(new Box(10, 10, 10).ToMesh());

        string fileName = Path.ChangeExtension(Path.GetRandomFileName(), ".fbx");
        string temporaryFilePath = Path.Combine(TestContext.CurrentContext.WorkDirectory, fileName);

        using (var fs = File.Create(temporaryFilePath))
            scene.Save(fs, fileFormat);

        Scene openScene = new Scene();

        using (var fs = File.OpenRead(temporaryFilePath))
            openScene.Open(fs, fileFormat);

        Node outCube = openScene.RootNode.GetChild("Cube Node");
        Assert.NotNull(outCube);
        Assert.NotNull(outCube.GetEntity<Mesh>());
    }


    public static IEnumerable<FileFormat> FBXTestFormats()
    {
        yield return FileFormat.FBX7500ASCII;
        yield return FileFormat.FBX7500Binary;
        yield return FileFormat.FBX7400ASCII;
        yield return FileFormat.FBX7400Binary;
        yield return FileFormat.FBX7700Binary;
        yield return FileFormat.FBX7700ASCII;
    }
}

Happens for binary formats only. ASCII is fine.

@bortos

Please try the attached hotfix as the issue has been resolved in it.

Aspose.3D-21.10.1.zip (6.8 MB)

Hi

I noticed there is a 21.11.0 release in the release notes here: Aspose.3D for .NET 21.11 Release Notes|Documentation

But no package on nuget yet: NuGet Gallery | Aspose.3D 23.9.0
21.10.0 is still the latest

Eager to use the latest with the fix! Thanks

The issues you have found earlier (filed as THREEDNET-988) have been fixed in Aspose.3D for .NET 21.11.

@bortos

The latest version would soon be available on NuGet Gallery as well. We will let you know as soon as it is uploaded there.

1 Like

@bortos

Aspose.3D for .NET 21.11 has been uploaded to the NuGet Gallery.

I have a set of tests setup and 21.11 still has the node name issue with FBX 7.7 Binary

image.png (6.8 KB)

        [ Test ]
        public void SimpleScene_SaveAndOpen_FileStream_Successful( [ValueSource(typeof(FBXTestUtility), nameof(FBXTestUtility.FBXTestFormats))] FileFormat fileFormat )
        {
            Scene scene = new Scene();
            var cubeNode = scene.RootNode.CreateChildNode( "Cube Node" );
            cubeNode.Entities.Add( new Box( 10, 10, 10 ).ToMesh() );

            string fileName = Path.ChangeExtension( Path.GetRandomFileName(), ".fbx" );
            string temporaryFilePath = Path.Combine( TestContext.CurrentContext.WorkDirectory, fileName );

            using ( var fs = File.Create( temporaryFilePath ) )
                scene.Save( fs, fileFormat );

            Scene openScene = new Scene();

            using ( var fs = File.OpenRead( temporaryFilePath ) )
                openScene.Open( fs, fileFormat );

            Node outCube = openScene.RootNode.GetChild( "Cube Node" );
            Assert.NotNull( outCube );
            Assert.NotNull( outCube.GetEntity<Mesh>() );
        }
    public static class FBXTestUtility
{
        /// <summary>
        /// Contains common fbx <see cref="FileFormat"/>s relevant for testing.
        /// </summary>
        public static IEnumerable<FileFormat> FBXTestFormats()
        {
            yield return FileFormat.FBX7500ASCII;
            yield return FileFormat.FBX7500Binary;
            yield return FileFormat.FBX7400ASCII;
            yield return FileFormat.FBX7400Binary;
            yield return FileFormat.FBX7700Binary;
            yield return FileFormat.FBX7700ASCII;
        }
}

@bortos

Another ticket as THREEDNET-1001 has been logged in our issue management system as per your feedback. We will investigate it further and let you know as soon as it is resolved.

We apologize for the inconvenience.

1 Like

The issues you have found earlier (filed as THREEDNET-1001) have been fixed in Aspose.3D for .NET 21.12.

21.12 doesn’t target netstandard2.0 anymore, is this going to be the case in future?

@bortos

The support for .netstandard 2.0 was replaced with 2.1 and it will stay like this in future. It’s some optimization in RVM. The MemoryExtensions.AsSpan are supported in netstandard2.1, but not netstandard2.0. We will try to add support for both 2.0 and 2.1 in next version.