OSG开发笔记(二十九):OSG加载模型文件、加载3DMax三维型文件Demo |
您所在的位置:网站首页 › 3dmax拆分模型 › OSG开发笔记(二十九):OSG加载模型文件、加载3DMax三维型文件Demo |
若该文为原创文章,未经允许不得转载 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/134064988 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… OSG开发专栏(点击传送门)上一篇:《OSG开发笔记(二十八):OSG模型固定路径动画》 下一篇: 持续补充中… 前言Osg深入之后需要打开模型文件,这些模型文件是已有的模型文件,加载入osg之后可以在常见中展示模型文件,该节点可以操作,多个逼真的模型的节点就实现了基本的场景构建。 Demo 三维模型文件一般是由专业的三维建模人员完成,可以去buy通用模型,但是定制模型的费用就相对不便宜了,几十几百几千几万的都有,三维项目一定要了解清楚前期建模,也有很多是由甲方自行提供,因为只有甲方才能知道模型效果是什么样。 Osg读取文件库:OsgDB库 osg、osgEarth所有文件都是通过osgDB库来读取,通过Registry来查找文件拓展名对应的osg库,根据一定规则拼接成完成的osg库名并加载,通过ReaderWriter对象来完成节点的读取(ReaderWriter是读写节点的基类,可通过派生此类重写读写方法实现自己的读写格式)。 然后,查看我们的osg库名称: 发现支持的格式还真不少,然后我们进行大致归类: 三维格式 .3dc3DC文件是三维建模软件3DCrafter建的三维场景,用于存储和加载3D模型和场景。3DC文件包括场景的几何形状、形状、材质和灯光效果,用于创建3 图像和动画。 .3ds3DS(3D Studio)文件是一种用于 3D 图形模型的文件格式,它是 Autodesk 3ds Max 软件的主要文件格式之一。是一种常见的 3D 模型文件格式,用于存储和传输 3D 对象、材质、动画和变形等数据。可以被许多 3D 图形软件读取和编辑。它广泛应用于游戏开发、动画制作、虚拟现实等领域。 .bvhBVH文件包含角色的骨骼和肢体关节旋转数据。BVH 是一种通用的人体特征动画文件格式,,广泛地被当今流行的各种动画制作软件支持。通常可从记录人类行为运动的运动捕获硬件获得。 .IveOpenSceneGraph 二进制三维文件。 .lwo由LightWave 3D创建的三维对象文件,该程序用于三维建模、动画和渲染;包含描述对象形状和外观的点、多边形和曲面;还可以包含对用于对象纹理的图像文件的引用。 .lwsLightWave 3D Scene File 文件是最常用的文件类型,带有 LWS 文件扩展名,最初由 NewTek开发LightWave 3D。 .osc当前这种OSC格式是一种GIS地理信息文件,是由OpenStreetMap研发,作为一种 OpenStreetMap更改文件使用,此文件流行程度是 50 分(0-100满分)。 .osg(osgb)OSG场景数据格式,可以记录场景书结构的所有节点及其属性信息。它属于文本文件类型,不需要专门的编辑器。osgb是osg的二进制格式,osgb是倾斜摄影的格式,osg可以直接读取osgb文件。 .osgaosgArchive 数据归档器 为众多 OSG 文件以及 IVE 文件打包提供了一个工具 它所生成的 OSGA 文件是整个文件,可以为海量数据的存放提供良好的支持 .md2MD2是Quake2中使用的模型文件格式,由于其比较简单,容易实现,所以应用很广,是一种经典的动画模型格式。该文件格式由2部分组成:一部分是文件头,包含了文件ID号、版本号和有关模型的各种数据的起始地址等;另一部分是文件的主体,包含了有关模型的各种数据,如顶点数据、纹理数据、法向量数据等。 .objobj可以指一种3D模型格式的文件,也可以指一种程序编译中间代码文件。obj3D模型文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改,里面不包含动画、材质特性、贴图路径、动力学、粒子等信息,但是可包含纹理信息,而对纹理进行轻量化压缩可以减小文件大小和提高加载性能。。obj目标文件一般是程序编译后的二进制文件,再通过链接器和资源文件链接就成可执行文件了。 .openflight(FLT)FLY (OpenFlight) 格式(通常使用 .flt 文件扩展名)是一种用于表示三维场景和模型的文件格式。OpenFlight 最初由Multigen-Paradigm公司开发,用于航空模拟和虚拟环境的创建。后来,这个格式被移交给了Presagis公司继续开发和维护。 .shpshp是“空间数据开放”格式的文件。shp全称“ESRI Shapefile”,是美国环境系统研究所公司开发的一种空间数据开放格式,是一种矢量图形格式,该格式文件主要用于描述几何体对象(点,折线与多边形),能够保存几何图形的位置及相关属性。 .stl3d打印一般用stl格式的3d文件,3d打印机识别STL格式的文件 dxfDXF(Drawing Exchange Format)是一种用于图形交换的文件格式,由AutoDesk公司开发。DXF文件可以包含2D或3D图形数据,可以被多个CAD程序所支持。 图像格式 .bmpBMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。 .ddsDDS是一种图片格式,是DirectDraw Surface的缩写,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。由NVIDIA公司开发。大部分3D游戏引擎都可以使用DDS格式的图片用作贴图,也可以制作法线贴图。通过安装DDS插件后可以在 .jpegJPEG格式是最常用的图像文件格式,后缀名为.jpg或.jpeg。 .tgatga是由美国Truevision公司为其显示卡开发的一种图像文件格式, .picpic是一种图像文件格式,以图像文件格式是记录和存储影像信息的格式。对数字图像进行存储、处理、传播,必须采用一定的图像格式,也就是把图像的像素按照一定的方式进行组织和存储,把图像数据存储成文件就得到图像文件。 .rgb.rgb文件是SGI图像文件格式的24位RGB彩色位图图像文件。 .pngPNG,全称Portable Network Graphics,是一种无损压缩的图像文件格式,广泛应用于互联网上的图像文件。 .pnmPNM(Portable Any Map)格式是一系列用于便携式图像的图像文件格式,这些图像是像素值的映射,可以表示灰度或彩色数据。 其他 .dotDOT文件扩展名信息一种Microsoft Word文档模板。 .dwDW格式文件是Dreamweaver的特有文件,它通常包括HTML代码和网页相关的资源(如图像、Flash、JavaScript、CSS等)。 .ktxKTX(Khronos Texture)是一个轻量级的纹理容器,用于OpenGL®、Vulkan®和其他GPU API。KTX文件包含纹理加载所需的所有参数。 .lualua是一个简洁、轻量、可扩展的脚本语言,该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 .mdlMDL文件是一个文件包,里面包含模型,贴图,所有动作,以及脚本。 .osgjsosgjs是osjjs框架支持的格式,其实是json格式的文本类型。 要把自己建的模型转换成这个格式,首先要将3ds格式转换为osg格式,然后再osg中转成json格式。 .p3dpanda3D打包系统中的完整文件;用于打包应用程序以供分发;类似于.MF 文件,但专门用于保存Panda3D应用程序而不是其他项;保存运行应用程序所需的所有内容,包括:Python代码、模型、纹理和已编译的.DLL 文件。 .plyPLY是一种电脑档案格式,全名为多边形档案(Polygon File Format)或斯坦福三角形档案(Stanford Triangle Format)。 .povPOV 文件扩展是POV-Ray Raytracing Format为 Pov-Ray 软件程序开发的 The POV-Team文件类型。 .pvrPVR文件扩展名来自POWERVR Texture File。该文件的开发由Imagination Technologies完成。该文件属于二进制格式,是光栅相关文件。 .rotrot文件扩展是Homeworld 2 Graphics File 文件,最初由Sierra Entertainment 为 Homeworld 2开发。 Annoymous用户数据统计推断,ROT 文件在China和使用Windows 10 设备的用户中最受欢迎。 这些用户中的大多数正在运行Google Chrome web浏览器。 .tf该格式是一种类似DOC格式的文件格式。tf是通常所说的富文本格式,也叫作多文本格式,常用来存储文档、图片信息。在不同的操作系统下创建的tf格式文档可以在其它操作系统和应用软件之间互相查看、传输,十分的方便。 .txfTXF是一种字体文件格式,用于保存税务数据,如收入和支出标准的基于文本的格式。它可以用于勒斯蒂亚、宇宙模拟和可视化程序的字体文件,也可以用于语言翻译和本地化程序创建的翻译文件。 .txpTXP是编辑浏览格式,最简单的例子,把网络上的小说储存到移动设备上(比如手机、MP4等等),有些情况就要将原文转换成.TXP .vtfVTF(Valve Textures File)Valve贴图文件,是由VALVE独创的图象格式,由TGA格式演变而来,其优点是能很好的体现和展示TGA所具有的通道效果。 .x这是DirectX一种专用格式.。 自定义文件插件自定义文件插件主要是自定义一个插件读写类,继承osgDB::ReaderWriter类,然后根据需求重写如readNode等函数方法即可。 在建立插件读写类时注意: 需要建立一个dll项目工程,输出的dll必须为osgdb_扩展名.dll或osgdb_扩展名d.dll的形式为了实现插件注册,需要定义全局变量,方法如下REGISTER_OSGPLUGIN(VR, ReaderWriterVR),在该全局变量的初始化过程中,会使用Registery::addReaderWriter函数自动注册插件所对应的扩展名。 在应用程序使用中,需要注册插件,方法如下 osgDB::Registry::instance->addFileExtensionAlias(“VR”, “VR”) 其实我们不是做引擎没必要做插件,还是直接转换三维模型文件格式好一些。 测试加载模型文件 选择obj格式最合适,但是又不带纹理等贴图格式,还需要配上贴图格式。 加载了obj文件,没有纹理,打开obj,发现需要一个mtllib的xxx.mtl作为纹理文件,拿到的模型是没有的。 mtllib:此前缀后指定了此OBJ文件所使用的材质库文件(*.mtl)的文件路径 步骤二:加载3ds文件 加载了3ds文件,确实显示出来了,效果还不错,测试了拽托缩放完美流畅效果不错,达到预期。 (中间有几个版本号是预言项目的,后面再回头说26~30版本的) 上一篇:《OSG开发笔记(二十八):OSG模型固定路径动画》 下一篇: 持续补充中… 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/134064988 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |