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); }
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); }
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); }
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); } }
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()); } }
/// <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) { } }
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); }