コード例 #1
0
 public static ReaderBase FindReaderForExtension(string extension)
 {
     if (((IList)FbxReader.GetExtensions()).Contains(extension))
     {
         return(new FbxReader());
     }
     if (((IList)GltfReader.GetExtensions()).Contains(extension))
     {
         return(new GltfReader());
     }
     if (((IList)ObjReader.GetExtensions()).Contains(extension))
     {
         return(new ObjReader());
     }
     if (((IList)StlReader.GetExtensions()).Contains(extension))
     {
         return(new StlReader());
     }
     if (((IList)PlyReader.GetExtensions()).Contains(extension))
     {
         return(new PlyReader());
     }
     if (((IList)ThreeMfReader.GetExtensions()).Contains(extension))
     {
         return(new ThreeMfReader());
     }
     return(null);
 }
コード例 #2
0
        public FbxReader CreateReader(FbxManager pManager, FbxImporter pImporter, int pPluginID)
        {
            global::System.IntPtr cPtr = FbxWrapperNativePINVOKE.FbxIOPluginRegistry_CreateReader(swigCPtr, FbxManager.getCPtr(pManager), FbxImporter.getCPtr(pImporter), pPluginID);
            FbxReader             ret  = (cPtr == global::System.IntPtr.Zero) ? null : new FbxReader(cPtr, false);

            if (FbxWrapperNativePINVOKE.SWIGPendingException.Pending)
            {
                throw FbxWrapperNativePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: DomCR/MeshIO
        static void FbxExample()
        {
            //string pathI = @".\..\..\..\..\file_samples\fbx\objects_ascii_2014-2015.fbx";
            string pathI = @".\..\..\..\..\file_samples\fbx\test_project_arq_acsii.fbx";
            //string pathO = @".\..\..\..\..\file_samples\fbx\objects_ascii_2014-2015_out.fbx";
            string pathO = @".\..\..\..\..\file_samples\fbx\test_project_arq_acsii_out.fbx";

            Scene scene = FbxReader.Read(pathI, ErrorLevel.Checked);

            FbxWriter.WriteAscii(pathO, scene);
        }
コード例 #4
0
    void Start()
    {
        var data = FbxReader.ReadFromFile("Assets/test.fbx");

        var geometry = data.Object.Geometry[0];

        geometry.ToTrainable();

        var vertices = ConvertVector3(geometry.ObjectGeometryVertices.Vertices);
        var normals  = ConvertVector3(geometry.Normal.Normal);
        var uv       = ConvertVector2(geometry.UV.UV);

        var materials = geometry.MaterialIndex.MaterialIndex;
        var matList   = new List <List <int> >();

        for (var i = 0; i < materials.Length; i++)
        {
            while (materials[i] >= matList.Count)
            {
                matList.Add(new List <int>());
            }
            matList[materials[i]].Add(i);
        }

        var mesh = new Mesh {
            vertices = vertices, subMeshCount = matList.Count, normals = normals, uv = uv
        };

        for (var i = 0; i < matList.Count; i++)
        {
            mesh.SetTriangles(matList[i], i);
        }

        mesh.RecalculateTangents();
        mesh.UploadMeshData(true);

        MeshFilter.mesh = mesh;

        for (var i = 0; i < data.Object.Materials.Count; i++)
        {
            var materialData = data.Object.Materials[i];
            var textureData  = materialData.GetTexture();
            if (textureData == null)
            {
                continue;
            }

            var path     = textureData.RelativeFilename.Replace("Resources\\", "").Replace(".png", "");
            var texture  = Resources.Load <Texture>(path);
            var material = MeshRenderer.materials[i];
            material.SetTexture(MainTex, texture);
        }
    }
コード例 #5
0
        private Scene readFile(string path)
        {
            using (FbxReader reader = new FbxReader(path, ErrorLevel.Checked))
            {
                reader.OnNotification = this.onNotification;

                if (reader.GetVersion() <= FbxVersion.v6100)
                {
                    this._output.WriteLine($"Fbx version not implemented: {reader.GetVersion()}");
                    return(null);
                }

                return(reader.Read());
            }
        }
コード例 #6
0
        /// <summary>
        /// The compile.
        /// </summary>
        /// <param name="asset">
        /// The asset.
        /// </param>
        /// <param name="platform">
        /// The platform.
        /// </param>
        public void Compile(ModelAsset asset, TargetPlatform platform)
        {
            if (asset.RawData == null)
            {
                return;
            }

            var reader     = new FbxReader();
            var model      = reader.Load(asset.RawData, asset.Extension, asset.RawAdditionalAnimations);
            var serializer = new ModelSerializer();
            var data       = serializer.Serialize(model);

            asset.PlatformData = new PlatformData {
                Data = data, Platform = platform
            };

            try
            {
                asset.ReloadModel();
            }
            catch (NoAssetContentManagerException)
            {
            }
        }
コード例 #7
0
ファイル: FbxReader.cs プロジェクト: yeluo-vinager/FbxWrapper
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FbxReader obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }