我写,其将基于简单的几何形状输出3D模型文件的程序(例如直角棱镜&圆柱体)具有已知坐标的3维空间。 作为一个例子,假设创建巨石阵的3D模型。 这个问题表明,OBJ文件是最容易产生,但我在努力寻找一个好的教程或易于使用的图书馆这样做。
任何人都可以
(1)描述一步一步如何创建一个简单的文件或(2)指向我介绍了如何做一个教程
注:*使用基于GUI的程序得出这样的文件是不是我的选择*我有3D建模没有现成的经验*其他格式,如WRL或DAE会为我工作,以及
编辑:
我不需要用纹理,只是定位在3D空间中的简单几何形状的组合。
我强烈建议使用一些ASCII交换格式有许多在那里我通常使用这些:
*.x
的DirectX对象(它是一个C ++源代码)
这个人是最容易实现的! 但也有许多不能够处理它们的工具。 如果你不想花太多时间编码,那么这是正确的选择。 只需复制从任何模板(在开始) *.x
文件开始。
这里的一些规格
*.iges
常见和导入的大多数CAD / CAM平台(包括Catia时)
这个人是有点复杂,但用于出口目的,并不坏。 它支持像操作音量+,-,&,^
这是很难正确地实现,但你不必使用它们:)
*.dxf
的AutoCAD交换格式
这是一个更复杂然后IGES。 我不建议使用它
*.ac
AC3D
我第一次看到这一个飞行齿轮。
这里的一些规格
在第一次看这是很容易的,但子对象的实现是真正棘手。 除非你使用它,你应该罚款。
这种方法是在记事本或通过加载一些3D模型查看器容易核查。 选择一个最适合您的需求和代码save/load
功能到你的应用程序内部模型class/struct
。 这样,您将与其他软件兼容,并消除它们原产于打造“几乎人尽皆知”二进制格式,如不兼容的问题3ds
,...
在你的情况我会使用IGES(初始图形交换规范)
对于出口,你并不需要实现所有仅数基本形状这样就不会太困难。 我的代码进口商它是多复杂得多。 矿IGES装载机类是约30KB
的C ++源代码,看看这里的更多信息
你没有提供有关您的3D网格模型的结构和功能的任何信息
像什么原语使用,是你对象的简单或骨骼层次,您使用的纹理,以及更多...所以这是不可能的答案
反正出口往往是这样的:
- 创建目标文件格式的标头和结构
如果格式有任何目录结构填充它,并把它写(IGES)
对于子对象不忘记加上变换矩阵...
写你所需要的块(点列表,列表中面临的,法线,...)
与ASCII格式,你可以做这里面字符串变量,所以你可以很容易地插入或修改。 是否所有的东西在内存中,写在这快结束到文件,并添加功能与内存而不是文件工作整件事。 如果要打包多个文件到单个封装文件中像这是非常方便*.pak
或发送/ IPC通过LAN或接收文件...
[EDIT1]更多关于IGES
FILEFORMAT规格
我学会了IGES从这个PDF ......不知道从那里我得到了它,但是这是第一个有效的链接我在谷歌今天发现。 我相信有一些非注册链接在那里了。 这是约13.7 MB和原来的名字IGES5-3_forDownload.pdf
。
Win32的观众
这是免费的IGES观众。 我不喜欢的界面和操作,但它的工作原理。 这是需要有功能的浏览器测试你的...
例子
这里有许多实体的许多教程文件有3子链接( igs,peek,gif
),在那里你可以看到更多的方式例如文件为了更好地理解。
出口到IGES
你没有提供有关3D任何信息网内部结构,所以我不能用出口帮助。 有很多方法导出同样的方式,以便选择一个最接近你的应用程序3D网格表示。 例如,你可以使用:
- 点云
- 旋转曲面
- 矩形(QUAD)表面
- 边界线表示(非固体)
- 修剪表面还有更多...