ImportSettingModelOSG导入obj模型无贴图

0 投票

同一份obj模型数据

10.0的组件导入obj到数据源后,桌面三维场景中显示没有贴图,

桌面端导入后,显示正常,如下图,图中上面的模型是桌面端导入的,下面的模型是组件代码导入的

请问大概什么原因?

代码如下,是否还有其他设置

ImportSettingModelOSG pImportSettingModelOSG = new ImportSettingModelOSG(strPath, pDatasourceConnectionInfo);             
            pImportSettingModelOSG.SourceFileCharset = Charset.ANSI;
            pImportSettingModelOSG.Decompose = false;
            pImportSettingModelOSG.ImportingAsCAD = false;
            pImportSettingModelOSG.ObjRotate = SuperMap.Data.Conversion.ObjRotateOption.RotateYZ;
            pImportSettingModelOSG.Position = new Point3D(121, 31, -6.5);             
            string prj = Path.Combine(Application.StartupPath, "Data\\GCS_WGS 1984.xml");
            if (File.Exists(prj))
            {
                PrjCoordSys pPrjCoordSys = new PrjCoordSys();
                pPrjCoordSys.FromFile(prj, PrjFileType.SuperMap);
                pImportSettingModelOSG.TargetPrjCoordSys = pPrjCoordSys;
            }
            DataImport pDataImport = new DataImport();
            pDataImport.Stepped += new ImportSteppedEventHandler(pDataImport_Stepped);
            pDataImport.ImportSettings.Add(pImportSettingModelOSG);
            ImportResult pImportResult = pDataImport.Run();

10月 15, 2019 分类:  51次浏览 | 用户: lusunset 初出茅庐 (30 分)

1个回答

0 投票
您好,obj是通过modelconvert添加的

以下是我的代码GeoModel3D geomodel=new GeoModel3D ();
          Model model=new Model ();
          ModelFileSetting mo=new ModelFileSetting ();
          mo.FilePath=@"D:\模型gltf\test\Minerva.obj";
          ModelConvertor.FromFile(model, mo);
          geomodel.Model = model;
          DatasetVector data = workspace1.Datasources[0].Datasets[0] as DatasetVector;
          Recordset record = data.GetRecordset(false, CursorType.Dynamic);
          record.Edit();
          record.AddNew(geomodel);
          record.Update();
10月 15, 2019 用户: 邬袁凯 名扬四海 (2,046 分)
好的,我来试试,不知道这样能不能设置翻转和分解模型
您的这个方法我试了,也没有贴图,我的obj模型是max导出的,贴图路径是都对的,
用GeoModel.FromFile获取模型后看到材质中贴图路径TextureFile是空的
求大神指教

您好,max导出的吗,我们这边超图有对应的max导出插件http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?tt=ProductAAS&id=135按照里面的文档来配置就可以导出了

我的意思是obj模型是用max导出的,有一堆obj和对应的mtl文件,并不是使用max通过插件导出到udb
我知道你那边的意思,我的意思是我们这边对接MAX是有专门的插件的,这样转出来的模型问题会很少
用你们的桌面端没啥问题,用组建代码就好多问题,一头雾水啊
您好,桌面端没问题吗,那应该是组件版本的问题,你那边可以这样,引用我们桌面bin目录下的dll文件
我昨天也这样试过,再来试试
...