精华内容
下载资源
问答
  • obj格式是一种常见三维模型格式,每个obj模型一般由xxx.obj的模型文件、xxx.mtl材质信息文件、xxx.jpg纹理贴图文件组成。其中xxx文件名是一致的,一般1个obj模型文件对应1个mtl文件,对应1张或多张贴图...

    三维建模时一般会将较大的场景分成多个小模型输出,但在后期处理时,多个小模型处理起来会比较直接处理整个场景大模型更麻烦。今天通过4个示例小模型,介绍一下本人的小模型合并方法。

    obj格式是一种常见的三维模型格式,每个obj模型一般由xxx.obj的模型文件、xxx.mtl材质信息文件、xxx.jpg纹理贴图文件组成。

    其中xxx文件名是一致的,一般1个obj模型文件对应1个mtl文件,对应1张或多张贴图文件。下图是一个obj文件组织示例。

    796511c8861eba45f49b1ec676535760.png

    一 meshlab软件合并

    1. 将所有需要合并的小模型导入meshlab软件,此处导入4个示例模型,4个在空间上是相邻的,此处只显示了其中2个。

    34a1c886086b4a6e4c06883d5f4a4e59.png
    7bee18545735558d0c98071a6a6637bd.png

    2. 模型合并,此处4个模型合并为了一个,操作步骤如图。

    22e2db0f663c9d08d60514d0d2562269.png
    87bc057d0cb06807e72ff1f44e74cfe7.png
    13f4f4f8a13e9b2328efb052d469d11d.png

    3. 后面就可以导出合并结果了。

    二 代码处理

    meshlab软件可以很简单的合并与导出模型,但是我需要一些特定的内容格式以及文件和纹理贴图命名格式。这时,软件导出就无法满足我的需求了。

    1. 问题分析

    以示例文件为例,一共有4个模型,对应4个模型文件,4个材质文件,8张纹理贴图。我需要把4个obj文件合并为1个,4个mtl文件合并为1,以及对应的贴图文件重新命名。

    用记事本打开obj模型文件,可发现每个模型文件可分为3大块。

    第1块是点坐标,每行记录一个点,分别记录了x,y,z三维坐标;

    eadf0d4a0976e0ba08a3b260e38b6d08.png

    第2块是纹理点坐标,记录每个点的纹理贴图信息;

    4c91b1fbdb1ae01d611cf95473c0265e.png

    第3块是三角面片信息,每行记录了一个三角面片,以及每个面片3个点的顶点编号和纹理点编号。编号即每个顶点所对应的点是点坐标块里的第几个点、所对应的纹理点是纹理坐标块里的第几个纹理。

    214938c5de37b14db89a26099a08302f.png

    用记事本打开mtl材质文件,里面主要记录了对应的纹理贴图名称,以及显示的时候所采用的光照信息。

    703bc5193c86718d1b5def213d252cf7.png

    2.方案设计

    (1)文件读取

    每个模型是以Tile_+i_+j命名的,所以,可以嵌套两个循环来读取模型,不过由于模型名称不连续,两个for循环的时候,可能会产生不存在的文件名,这时要增加异常处理。

    (2)数据存储与改写

    定义模型点、纹理点、三角面片三个类。

    循环读取4个模型,将每个模型的顶点存储为模型点对象,存入一个vector;

    同理将所有纹理点存入一个vector;

    难点在读取面片的时候,由于每个文件里面的面片所记录的模型点编号是相对于本文件的编号。在模型合并时,纹理点与顶点合并后,数量是成倍数增长的。对于第一个读取的模型的面片来说,由于是先读先写,所以编号未变;对于后面读取的模型的面片来说,顶点编号就要加上之前读取的所有模型的顶点数量之和,纹理点编号同理。处理好后,将面片存入vector。

    搞清楚这些问题,就可以开始设计代码了。

    3.代码设计

    代码头head.h文件里定义了三个类,编写了一个obj模型输出函数:

    #pragma once#include using namespace std;class Vertex{public:  double x, y, z;};class Texture{public:  double col, row;};//面片声明class Face{public:  vector vertexId = vector(3);  vector textureId = vector(3);  int textureImageId;};void writeObj(vector thisMesh, const char *outPutFilename, vector vertexVector, vector textureVector, int thisTetureImageNums){  FILE  *fp_outPut_mesh;  fp_outPut_mesh = fopen(outPutFilename, "w+");  fputs("mtllib Model.mtl", fp_outPut_mesh);  for (int i = 0; i < vertexVector.size(); i++)  {    fprintf(fp_outPut_mesh, "v %e %e %e", vertexVector[i].x, vertexVector[i].y, vertexVector[i].z);  }  for (int i = 0; i < textureVector.size(); i++)    fprintf(fp_outPut_mesh, "vt %e %e", textureVector[i].col, textureVector[i].row);  for (int textureImageId = 0; textureImageId <= thisTetureImageNums; textureImageId++)  {    fprintf(fp_outPut_mesh, "usemtl Model_%d", textureImageId);    for (vector::iterator iter = thisMesh.begin(); iter != thisMesh.end(); iter++)    {      if ((*iter).textureImageId == textureImageId)        fprintf(fp_outPut_mesh, "f %d/%d %d/%d %d/%d", (*iter).vertexId[0], (*iter).textureId[0], (*iter).vertexId[1], (*iter).textureId[1], (*iter).vertexId[2], (*iter).textureId[2]);    }  }  fputs("usemtl Model_untextured", fp_outPut_mesh);  fclose(fp_outPut_mesh);}

    主文件main.cpp建立了存放数据的vector,写了个大循环,并添加了模型不存在就跳过继续执行的异常处理:

    #include #include #include #include #include #include "head.h"using namespace std;using namespace cv;int main(){  cout << "开始处理" << endl << endl;  //循环读取的分块的obj、mtl文件  FILE *fp_inObjFile;  FILE *fp_inMtlFile;  const char *constCharInObjFileName;  const char *constCharInMtlFileName;  //输出的mtl文件  FILE *fp_outMtlFile;  fp_outMtlFile = fopen(".esultModel.mtl", "w+");  //行列号的最大最小值  int minCol = 1;  int maxCol = 14;  int minRow = 1;  int maxRow = 6;  //当前累计顶点数、纹理点数,用于调整之后面片的顶点纹理点编号  int v_sum = 0, vt_sum = 0;  //创建面片时统计对应的图片编号  int totalTextureImageNum = -1;  //新建存放顶点、纹理点、面片的容器  vector totalMesh;  vector VERTEX;  vector TEXTURE;  vector f(6);    //统计纹理图片个数、分块模型个数  int modelNum = 0;  int jpgNum = 0;  //开始循环  for (int i = minCol; i <= maxCol; i++)  {    for (int j = minRow; j <= maxRow; j++)    {      //读取obj、mtl文件并解析,文件名经数据类型转换后读入      char inObjFileName[100];      sprintf(inObjFileName, ".dataTile_+%03d_+%03d.obj", i, j);      string stringInObjFileName(inObjFileName);      constCharInObjFileName = stringInObjFileName.c_str();      char inMtlFileName[100];      sprintf(inMtlFileName, ".dataTile_+%03d_+%03d.mtl", i, j);      string stringInMtlFileName(inMtlFileName);      constCharInMtlFileName = stringInMtlFileName.c_str();      fp_inObjFile = fopen(constCharInObjFileName, "r+");      fp_inMtlFile = fopen(constCharInMtlFileName, "r+");      //统计每个小模型里面数据量      int v_Num = 0, vt_Num = 0, f_Num = 0, u_Num = 0;      char temp[100] = { "0" }, temp1[100] = { "0" }, temp2[100] = { "0" }, temp3[100] = { "0" };      //增加异常处理      fstream file1;      file1.open(inObjFileName, ios::in);      if (!file1)      {        //不存在的文件编号跳过        cout << inObjFileName << "不存在" << endl;      }      else      {        //存在的进行处理,先处理obj文件        while (!feof(fp_inObjFile))        {          fgets(temp, 100, fp_inObjFile);          if (temp[0] == 'v' && temp[1] != 't')            v_Num++;          if (temp[0] == 'v' && temp[1] == 't')            vt_Num++;          if (temp[0] == 'f')            f_Num++;          if (temp[0] == 'u'&&temp[22] != 'u')            u_Num++;        }        rewind(fp_inObjFile);        cout << v_Num << "    " << vt_Num << "    " << f_Num << endl;        fgets(temp1, 100, fp_inObjFile);        //读取顶点        for (int i = 0; i < v_Num; i++)        {          Vertex v_tmp;          fscanf(fp_inObjFile, "%s %lf %lf %lf", temp, &v_tmp.x, &v_tmp.y, &v_tmp.z);          VERTEX.push_back(v_tmp);        }        //读取纹理点        for (int i = 0; i < vt_Num; i++)        {          Texture t_tmp;          fscanf(fp_inObjFile, "%s %lf %lf", temp, &t_tmp.col, &t_tmp.row);          TEXTURE.push_back(t_tmp);        }        //读取面片并重新编号        while (!feof(fp_inObjFile))        {          fscanf(fp_inObjFile, "%s %d/%d %d/%d %d/%d", temp, &f[0], &f[1], &f[2], &f[3], &f[4], &f[5]);          if (temp[0] == 'u')          {            totalTextureImageNum += 1;          }          if (temp[0] == 'f')          {            f[0] += v_sum;            f[1] += vt_sum;            f[2] += v_sum;            f[3] += vt_sum;            f[4] += v_sum;            f[5] += vt_sum;            Face f_tmp;            f_tmp.vertexId[0] = f[0];            f_tmp.textureId[0] = f[1];            f_tmp.vertexId[1] = f[2];            f_tmp.textureId[1] = f[3];            f_tmp.vertexId[2] = f[4];            f_tmp.textureId[2] = f[5];            f_tmp.textureImageId = totalTextureImageNum;            totalMesh.push_back(f_tmp);          }        }        v_sum += v_Num;        vt_sum += vt_Num;        totalTextureImageNum -= 1;        modelNum += 1;        cout << "第" << modelNum << "个子模型obj文件读取完毕,开始处理对应的材质文件" << endl << endl;        //处理mtl文件        while (!feof(fp_inMtlFile))        {          fgets(temp, 100, fp_inMtlFile);          if (temp[0] == 'n'&&temp[22] != 'u')//此处判断mtl材质中每张材质图声明的第一行,是声明就读取图像处理          {            char rawJpgName[30] = { "0" };            strncpy(rawJpgName, temp + 7, 22);            for (int i = 0; i <= 30; i++)            {              if (rawJpgName[i] == '')                rawJpgName[i] = '0';            }            //纹理图片文件名称处理            string totalRawJpgName(rawJpgName);            totalRawJpgName.append(".jpg");            string pathTotalRawJpgName = ".data";            pathTotalRawJpgName.append(totalRawJpgName);            char charTotalName[40];            strcpy(charTotalName, pathTotalRawJpgName.c_str());            //读取并输出            Mat img = imread(charTotalName);            char texture_pic_out[100] = { "0" };            sprintf(texture_pic_out, ".esultModel_%d.jpg", jpgNum);            imwrite(texture_pic_out, img);            jpgNum++;          }        }            }    }  }  //输出mtl纹理  for (int i = 0; i < jpgNum; i++)  {    fprintf(fp_outMtlFile, "newmtl Model_%d", i);    fputs("Ka 1 1 1", fp_outMtlFile);    fputs("Kd 1 1 1", fp_outMtlFile);    fputs("d 1", fp_outMtlFile);    fputs("Ns 0", fp_outMtlFile);    fputs("illum 1", fp_outMtlFile);    fprintf(fp_outMtlFile, "map_Kd Model_%d.jpg", i);  }  fputs("newmtl Model_untextured", fp_outMtlFile);  fputs("Ka 0.501961 0.501961 0.501961", fp_outMtlFile);  fputs("Kd 0.501961 0.501961 0.501961", fp_outMtlFile);  fputs("d 1", fp_outMtlFile);  fputs("Ns 0", fp_outMtlFile);  fputs("illum 1", fp_outMtlFile);  fclose(fp_outMtlFile);  //输出obj模型  writeObj(totalMesh, ".esultModel.obj", VERTEX, TEXTURE, totalTextureImageNum);}

    代码运行输出如下:

    00afc22b33a23489a76f5bcfabd8c034.png

    合并前:

    750981d3895cee14d697b17328b47762.png
    634519b52344fd055569cda594b00539.png

    合并后:

    45aa3c45fd037f914e0d5d58e6446541.png
    839971a573f05f895d5609f048324eaa.png

    写在后面:由于时间有限,很多细节方面并没有说得很明白,代码为最早期的版本,实现的比较粗糙,注释可能也不甚详细。

    有更好解决方法的朋友,请后台私信给出您的宝贵建议;

    对此方面感兴趣的朋友可以后台私信,我们一起交流,共同进步。

    关于作者:GIS小硕一枚,研究方向为无人机遥感数据处理。

    #科技萌新成长营##编程##OpenCV#

    展开全文
  • 然而,由于有许多不同的程序可以制作三维模型,所以有许多不同种类的文件格式。Daz3D主要用于自己的文件.dae、.ds、.duf等等。但是,Daz也可以导入其它的文件格式类型。我们大多数人会遇到的最常见的通用3D文件是....

    在Daz3D中使用.OBJ和.FBX三维模型

    导入3d模型到Daz3d中,只需几个简单的步骤。

    网上有很多很棒的免费三维模型资源。然而,由于有许多不同的程序可以制作三维模型,所以有许多不同种类的文件格式。Daz3D主要用于自己的文件.dae、.ds、.duf等等。但是,Daz也可以导入其它的文件格式类型。我们大多数人会遇到的最常见的通用3D文件是.OBJ和.FBX。

    值得注意的是,模型有时在程序之间移动时会出现问题,所以不要惊讶于导入失败。

    FBX(.FBX)文件是用于交换三维几何体和动画数据的格式。这个首字母缩略词来自一个名为Film Box的应用程序。该应用程序后来改名为Motion Builder,并被Autodesk收购。FBX文件目前用于电影、游戏、增强现实和虚拟现实(AR/VR)开发。

    现在,.fbx文件可以是静态的,也可以是动态的。这是什么意思?基本上,如果对内容进行了装配,则意味着三维几何体也具有骨架网格,并且可以通过骨骼设置动画(动画)。例如:会走路的角色、狗或机器人。相反,如果内容是静态的,则没有动画,其行为与.obj文件相同。例如:树、房子、桥(无生命)。

    首先要注意的是,如果将.fbx格式的文件直接导入到daz studio,它将无法正确读取比例,甚至无法在视窗中看到模型。所以,最好的方法是将文件转换成.obj,这是DAZ Studio更稳定的文件格式。你会在这里找到这个自由和快速的三维文件转换器的链接。
    在这里插入图片描述
    Free online FBX to OBJ Converter

    我最喜欢的免费模型的四个资源是Sketchfab、CGTrader、Renderosity和Model Haven。在这些网站上,您通常会遇到以下三维文件格式:.obj、.fbx、.obz。当然还有很多其他的文件格式:.bvh、.pz2、.hr2、fc2、.hdz等等。然而,obj文件格式是相当普遍的,在许多不同的3d程序中都能很好地工作。

    第1步-下载你选择的3d对象,解压并放在你的硬盘上。对于这个演示,我将使用位于这里的模型:阿耳特弥斯喷泉- https://sketchfab.com/3d-models/artemis-fountain-b9985a307aac41bbad4339fa46122d7a. 这个网站还有更多免费的模型,你可以在这里找到:https://sketchfab.com/rigsters

    第2步-下载并解压缩3D模型后,打开Daz3d并转到菜单上的“导入import.”选项。
    在这里插入图片描述
    导入.obj文件在这里插入图片描述
    第3步-导入文件时,您要确保它符合您的比例。市场上的每一个3d程序都有自己的比例,当你从一个程序到下一个程序时,你需要意识到这一点。如果不观察缩放的差异,您可能最终得到的项目如此巨大,以至于您的计算机冻结,或如此小到他们看不见。

    在“导入选项”菜单上的“自From”菜单上,选择Daz Studio比例选项。
    在这里插入图片描述
    调整导入模型的比例和大小。
    在这里插入图片描述
    3d项目现在已经导入到程序中,并按比例缩放到程序中。如果没有看到,可以检查“场景”菜单以查找导入的项目。

    第4步-添加材质和贴图。此时可以使用自己保存的材质和贴图,也可以使用模型提供的材质和贴图。
    步骤4将材质和贴图与对象一起使用。在曲面选项下,选项卡转到编辑器。下面是如何添加模型附带的材质和贴图。
    在这里插入图片描述
    找到模型中的材质并使用到模型上面。
    漫反射贴图是.obj对象的纹理文件。法线贴图是一个添加的贴图,它可以创建深度而不创建额外的多边形,因此它可以在不占用资源的情况下提供更复杂的图形外观。可以在滑块中手动调整深度
    您也可以导出模型,以便稍后在Blender中使用,您可以查看我们的Daz Blender Bridge教程中的步骤。
    在这里插入图片描述
    模型通常有一些不同的贴图。法线贴图为灯光和阴影创建深度和高度。您可能需要根据文件名对要使用的文件进行合理的猜测。
    在这里插入图片描述
    看看它已经多漂亮了!选择我们来添加贴图!
    在这里插入图片描述
    添加贴图!这将给模型一个真正的外表!

    第5步-测试渲染!让我们看看它是什么样子!

    在这里插入图片描述
    太漂亮了!
    保存你的可爱的免费模型作为一个道具,以便将来快速方便地使用,这样你就不必再设置所有的纹理和贴图了。

    提示:保存模型时,请确保它位于所有平面上的0点处,并将模型缩放到您通常希望的大小。

    在这里插入图片描述
    因为这是一个场景的静态道具,我将它保存在场景资源选项下。
    全部完成!现在,您的新模型将出现在您的Daz3D库中,您可以按需欣赏您的模型。

    在这里插入图片描述
    现在,模型可以使用了!让我们看看该资源在场景中的外观。
    在这里插入图片描述
    在这里插入图片描述

    寻找更多更好的免费Daz3D或Poser模型?看看我们的免费清单,里面满是免费的模型!
    一定要看看!

    Free Iray Shaders & Materials
    Free Clothing For G3/G8 Models
    25 Great 3D Props For Taverns
    Free Adult Clothing & Props
    Free 120+ Furniture & Household Props
    80+ Free Costumes & Cosplay Outfits for Daz Studio
    20 Classical 3D Statues

    **

    展开全文
  • 随着BIM的火热发展,以及BIM桌面软件对电脑硬件越来越高的要求,越来越多的企业希望能通过浏览器展示BIM...优点:这种方式可以充分利用游戏引擎对不同文件格式的支持(比如3dmax,obj等);对三维漫游、选择查看等的支...

    随着BIM的火热发展,以及BIM桌面软件对电脑硬件越来越高的要求,越来越多的企业希望能通过浏览器展示BIM模型,管理BIM模型相关的信息。这几乎已经成为工程项目管理的必要组成部分。下面简单介绍几种实现思路。

    方式一:利用已有的三维游戏引擎。常见的有Unity3D、UnRealEngine等。

    优点:这种方式可以充分利用游戏引擎对不同文件格式的支持(比如3dmax,obj等);对三维漫游、选择查看等的支持;以及对物理碰撞、重力处理等的支持。

    缺点:引擎一般都要求浏览器安装插件(最新版已经有直接发布为html5的办法,没有测试过,但估计比插件版体验会差一些);另外就是各引擎都有自己的一套内容和编写代码方式,熟悉需要一定的成本;还有,引擎的升级换代比较慢,如果遇到某些技术障碍,处理会比较麻烦。

    方式二:利用已有大厂提供的工具(目前已知的有Autodesk的LMV,其他厂商例如:Bentley、ArchiCAD、广联达等未听说有类似产品,LMV的一个样例链接)。

    优点:不用自己写任何底层的代码,只需要在适当的地方调用,甚至直接把对应的页面嵌入自己的网页即可。

    缺点:如果当前工具没有的功能,那就需要等了。

    A记的BIM360用的就是LMV的技术,目前外面也听说了一些公司采用这个技术。

    当然,也有一些小厂有工具可用,一个可直接嵌入自己网页的三维样例:请点这里。

    其实,以前A公司也推出过NavisWorks的浏览器插件,基于ActiveX的控件,但因为这个方向注定要被淘汰,所以A自己都没有去维护这个插件。

    方式三:基于Html5+WebGL在开源软件的基础上自己开发或者委托开发。

    优点:想要什么功能就可以开发什么功能,可以完全契合企业自身需求;浏览器也不需要插件,马上使用。

    缺点:要有熟悉这些新技术的人员或者好的外包团队;万恶的微软直到IE的版本11才支持WebGL。

    当然,基于Flash等技术也可以在浏览器显示三维,但连Adobe自己都要放弃Flash,所以你们懂的。

    展开全文
  • GIS数据常见文件格式

    2020-12-22 13:06:12
    最近公司新来的小伙伴因为要接手有关地图的项目,几个gis数据类型整半天都没有弄明白。和我一开始接触地理信息技术时一样蒙圈,在此做个...三维模型 人工建模(含BIM)、无人机倾斜摄影 倾斜摄影osgb;人工建模obj、max、

    最近公司新来的小伙伴因为要接手有关地图的项目,几个gis数据类型整半天都没有弄明白。和我一开始接触地理信息技术时一样蒙圈,在此做个简单的归类总结,不正确的望指出。

    数据类型 数据来源 数据格式
    DEM地形数据 互联网在线资源、航拍 tif、dem
    DOM影像数据 互联网在线资源、航拍、采购 tif、img
    矢量数据 互联网在线资源、航拍、采购 Shp、kml、geojson、dxf/dwg
    三维模型 人工建模(含BIM)、无人机倾斜摄影 倾斜摄影osgb;人工建模obj、max、dae;BIM数据dvt、dgn;点云las、ply
    展开全文
  • 文章目录背景:GIS数码城市BIM三维城市模型CAD的数据模型几种常见三维系统及其文件格式CAD与GIS建模的差异CAD/GIS集成常用的数据模型CAD-BIM-GIS应用场景 参考文献:三维城市模型中的CAD与GIS的集成方法-朱庆 背景...
  • 有些软件可以帮助我们制作三维模型,其他的允许我们制作渲染图。同时也有其他软件用于图像,视频,甚至是图表面板和作品集的后期制作。这是个很长的列表,同时打开它们可能会直接导致电脑崩溃。即便是对于BIM(建筑...
  • 有些软件可以帮助我们制作三维模型,其他的允许我们制作渲染图。同时也有其他软件用于图像,视频,甚至是图表面板和作品集的后期制作。这是个很长的列表,同时打开它们可能会直接导致电脑崩溃。即便是对于BIM(建筑...
  • 三维激光点云数据建模常见的建模软件有3Dmax、cad、草图大师、revit等,在规则模型建模中,我们常会用到3Dmax建模,在这里就以3Dmax为例来说明其在点云建模应用的经验:首先我们需要将采集到的点云数据的原始格式...
  • 5、组内又提供3D模型文件上传即可实时浏览而无需安装3Dmax之类大家伙软件的浏览器(简直是叼炸天的节奏!) 6、企业版OA管理系统,方便内部沟通的组织架构、进度可视化的项目任务分配,随时随地的文件共享协同 图驴...
  • FBX文件打开工具还可以在不导入Autodesk公司三维制作软件的情况下,直接浏览FBX文件的内容,具有极强的兼容性。FBX文件打开工具软件介绍FBX文件打开工具是一个免费的软件工具,用于查看由Autodesk 3ds Max,Maya...
  • Three.js模型加载速度

    2020-11-02 10:25:48
    因为三维模型文件往往比较大,所以Web3D项目相比较普通的前端web项目,需要加载文件体积比较大,需要花费的时间自然比较多,加载时间比较长的情况下,对于用户来说体验肯定不太好。 二进制格式 使用不同文件格式,...
  • STL文件仅描述三维物体的表面几何形状,没有颜色、材质贴图或其它常见三维模型的属性。在采用FDM工艺进行3D打印时,零件通常需要存储为STL格式。但很多情况下会发现,原本光顺的曲面在打印出实体之后变成了明显的...
  • 常见模型文件格式 什么是三维模型? 网格是由物体的点云连接形成的,点云中的顶点包括坐标、法线、切线等一系列信息。网格通常由三角形、四边形或者其它凸多边形组成,凹多边形会极大的影响渲染效率。一般的建模...
  • 建筑信息模型 - BIM 建筑信息模型(Building Information Modeling)是建筑学、工程学及土木工程的新工具。...常见的BIM文件格式 现在国内BIM软件很多,相对的BIM文件格式也很多, CGR:Gehr...
  • AnyCAD Viewer v4.2.zip

    2019-07-10 01:08:50
    AnyCAD Viewer 是一款绿色、免费的三维模型查看软件... 使用AnyCAD Viewer可以读取SketchUp、3ds Max、AutoCAD, SolidWorks导出的文件,支持三维模型文件格式包括STL、STEP、IGES、3DS, SKP, DAE,DXF,OBJ等常见格式。
  • 【Three.js:3D模型】常用建模软件

    千次阅读 2018-11-29 16:37:20
    转载:常见的3D打印文件格式及常用的软件 常用建模软件之一:3Dsmax ;最常见的3D建模软件,广泛应用于广告、影视、工业设计、建筑设计、三维 动画、多媒体制作、游戏、辅助教学以及工程可视化等领域。 支持打开...
  • 使用FME生成CityGML文件

    千次阅读 2018-06-23 11:01:43
    原文发布时间:2014-04-22作者:小C参考文献:帮助文档CityGML是一种用于虚拟三维城市模型数据交换与存储的格式,用以表达三维城市模板的通用数据模型。它定义了城市和区域中最常见的地表目标的类型及相互关系,并...
  • 一、STL文件简介  STL(立体平版印刷术的缩写)是由3D Systems创建的立体平版印刷...STL文件只描述三维物体的表面几何图形,没有任何颜色,纹理或其他常见CAD模型属性的表示。 STL格式指定了ASCII和二进制表示。二...
  • 浩辰3D作为市面上主流三维设计软件,除了具备兼容常见3D(如Solidworks,NX,ProE,Inventor,Catia等)文件格式,通用的操作习惯和功能外,浩辰3D制图软件更是运用最新一代智能参数建模技术!浩辰3D不仅完美融合了...
  • C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日 版权所有 © 2005 * 目录 * 1. 前言 * 2. 声明和初始化 o 2.1 我如何决定使用那种整数类型? o 2.2 64 位机上的 ...
  • AVEVA RvmTranslator

    2015-05-04 20:13:00
    AVEVA的RVM文件格式包含了三维模型数据及其他信息,可用于工厂模型的浏览、评审等。常见的三维浏览及评审软件如Autodesk的Navisworks、Intergraph的评审软件SmartPlant Review Publisher等,都提供了对RVM格式的支持...
  • 3. 关系结构模型:关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二表格形式)。常见的有Oracle、mssql、mysql等 二、 主流数据库 数据库名 公司 特点 工作环境 mssql 微软 只能能运行在windows平台,...
  • 三维虚拟人体建模中,首先我们建立集成于软件中的人体模型库,主要是使用专用的三维人体造型软件Poser,将其中人体模型导出为OBJ文件,再根据OBJ文件的存储格式,提取出人体曲面的顶点信息,然后采用稀疏表示和三角...
  • 种算法模型训练需要的素材格式基本相同: 1、二图像文件; 2、对应二图像中人工标注出的感兴趣目标信息,包括目标坐标/大小、目标类型,一般用(left,top,width,height,class)来表示; 模型训练的过程就是将...
  • 浩辰3D作为市面上主流三维设计软件,除了具备兼容常见3D(如Solidworks,NX,ProE,Inventor,Catia等)文件格式,通用的操作习惯和功能外,浩辰3D制图软件更是运用最新一代智能参数建模技术! 浩辰3D不仅完美融合了...
  • 浩辰3D作为市面上主流三维设计软件,除了具备兼容常见3D(如Solidworks,NX,ProE,Inventor,Catia等)文件格式,通用的操作习惯和功能外,浩辰3D制图软件更是运用最新一代智能参数建模技术!浩辰3D不仅完美融合了...
  • IV:Open Inventor中使用的文件格式 IVD:超过20/20微观数据数或变量等级文件 IVP:超过20/20的用户子集配置文件 IVT:超过20/20表或集合数据文件 IVX:超过20/20微数据目录文件 IW:Idlewild屏幕保护程序 ...
  • 虚拟现实技术与应用

    热门讨论 2012-12-31 14:28:39
    2.4.4 三维模型数字化仪 本章小结 习题与思考题 第3章 虚拟现实系统的相关技术与软件 3.1 环境建模技术 3.1.1 几何建模技术 3.1.2 物理建模技术 3.1.3 行为建模技术 3.2 实时三维图形绘制技术 3.2.1 基于几何图形的...
  • 5.3 三维图形绘制 5.3.1 曲线图绘制 5.3.2 网格图绘制 5.3.3 曲面图的绘制 5.3.4 光照模型 5.3.5 绘制等值线图 5.4 四维图形可视化 5.4.1 用颜色描述第四维 5.4.2 其他函数 5.5 本章小结 第2 篇 第...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

常见三维模型文件格式