61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
using UniGLTF;
|
|
|
|
namespace VRM
|
|
{
|
|
public class VRMData
|
|
{
|
|
public GltfData Data { get; }
|
|
public glTF_VRM_extensions VrmExtension { get; }
|
|
|
|
public VRMData(GltfData data)
|
|
{
|
|
Data = data;
|
|
|
|
if (!glTF_VRM_extensions.TryDeserialize(data.GLTF.extensions, out VRM.glTF_VRM_extensions vrm))
|
|
{
|
|
throw new NotVrm0Exception();
|
|
}
|
|
VrmExtension = vrm;
|
|
|
|
UpdateMigrationFlags(Data.MigrationFlags, VrmExtension.exporterVersion);
|
|
}
|
|
|
|
private static void UpdateMigrationFlags(MigrationFlags migrationFlags, string exportedVrmVersionString)
|
|
{
|
|
if (!PackageVersion.ParseVersion(exportedVrmVersionString, out var exportedVrmVersion)) return;
|
|
|
|
migrationFlags.IsBaseColorFactorGamma = PackageVersion.IsNewer(
|
|
new PackageVersion.Version
|
|
{
|
|
Major = 0,
|
|
Minor = 54,
|
|
Patch = 0,
|
|
Pre = "",
|
|
},
|
|
exportedVrmVersion
|
|
);
|
|
|
|
migrationFlags.IsRoughnessTextureValueSquared = PackageVersion.IsNewer(
|
|
new PackageVersion.Version
|
|
{
|
|
Major = 0,
|
|
Minor = 69,
|
|
Patch = 0,
|
|
Pre = "",
|
|
},
|
|
exportedVrmVersion
|
|
);
|
|
migrationFlags.IsEmissiveFactorGamma = PackageVersion.IsNewer(
|
|
new PackageVersion.Version
|
|
{
|
|
Major = 0,
|
|
Minor = 107,
|
|
Patch = 0,
|
|
Pre = "",
|
|
},
|
|
exportedVrmVersion
|
|
);
|
|
}
|
|
}
|
|
}
|