3d展示网页开发_超实用:一篇文章带你了解市面上主流通用的3D模型格式

7809b466c3e080643ae212bb83442745.gif

8a9e5105e86c3fe0ce3af99c5c3d0eae.png

说到格式,相信大家都不陌生。

随着互联网的普及,我们几乎每天都会和不同的格式打交道,文本的TXT、图片的JPG、视频的MP4,就连压缩包也有不同的格式。

通俗来说,你可以把“格式”理解成基于同一规范的技术表征,也可以再简化点把它看成一种分类方式。

对于3D模型来说,格式更是种类繁多。不同应用领域的、不同功能属性的,加密的、独有的、通用的,让人眼花缭乱。

今天,为了降低大家看到不同模型格式后的“蒙圈指数”,小编特地给大家简单梳理了3D模型领域的一些主流通用格式。

OBJ

适用于3D软件模型之间的互导

4013e2d6ffb0f2086512f132fcf68ac8.png

OBJ文件是Alias | Wavefront公司为它的一套基于工作站的3D建模和动画软件“AdvancedVisualizer”开发的一种标准3D模型文件格式。

 应用  OBJ文件一般包括三个子文件,分别是.obj、.mtl、.jpg,除了模型文件,还需要.jpg纹理文件。OBJ可以是传统模型,也可以是倾斜模型。

 特点  OBJ格式适合用于3D软件模型之间的互导。比如Smart3D里面生成的模型需要修饰,就可以输出OBJ格式,然后导入到3dsMax进行处理;如果你想把在3dsMax中建的模型调到Maya里面渲染或制作动画,导出OBJ文件就是一种很好的选择。

目前几乎所有知名的3D软件都支持OBJ文件的读写,不过其中很多需要通过插件才能实现。另外,OBJ文件还是一种文本文件,可以直接用写字板打开进行查看和编辑修改。值得一提的是,老子云平台能够支持OBJ格式数据的上传和OBJ格式与其它格式间的互转。

de9f9b6f07c523f3a0ee775532180360.gif

FBX

FBX方案是最好的互导方案

65dc74463c4b0e782315756e884c8285.png

FBX是FilmBoX软件中所使用的格式,后来这一软件改名为Motionbuilder。

 应用  因为Motionbuilder扮演的是动作制作平台,所以FBX格式最大的用途是在3dsMax、Maya、softimage等软件间进行模型、材质、动作和摄影机信息的互导,这样就可以发挥max和maya等各个软件的优势。可以说,FBX方案是最好的互导方案。

de9f9b6f07c523f3a0ee775532180360.gif

OSGB

文件碎、数量多、高级别金字塔文件大

8fcbed84732661d7f4b281d0b81f1a8b.png

OSGB的全称是Open Scene Gragh Binary。这里的Binary是二进制的意思。

 应用  目前市面上生产的倾斜模型,尤其是Smart3D处理的倾斜摄影三维模型的数据组织方式一般是二进制存贮的、带有嵌入式链接纹理数据(.jpg)的OSGB格式。

 特点  此类数据文件碎、数量多、高级别金字塔文件大。因而难以形成高效、标准的网络发布方案,无法实现不同地域、不同部门之间的数据共享。

de9f9b6f07c523f3a0ee775532180360.gif

GLTF

几乎每个框架都支持的格式

3603f649d3ac3edd68b931f3c5ba22d4.png

GLTF的全称是Graphics Language Transmission Format(图形语言传输格式)。这种跨平台格式已成为Web上的3D对象标准。它由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义,这使得GLTF基本上成为3D模型的JPG格式:Web导出的通用标准。

 应用  GlTF是一种可以减少3D格式中与渲染无关的冗余数据并且在更加适合OpenGL簇加载的一种3D文件格式。GlTF的提出是源自于3D工业和媒体发展的过程中,对3D格式统一化的急迫需求。如果用一句话来描述:GlTF 就是三维文件的 JPEG ,三维格式的 MP3。在没有GlTF的时候,大家都要花很长的的时间来处理模型的载入。尽管一些3D Web框架支持特定于平台的模型格式,如FBX和OBJ,但几乎每个框架都支持GLTF。如果有人要为你提供3D模型,你可以请求他们提供GLTF格式的版本。

 特点  GLTF是一种输出格式,这意味着我们无法直接修改它们。但我们可以修改其位置和大小,并对其进行旋转操作。

另外,GLTF文件不是单个文件,而是包含JSON文档、图片、几何图形、纹理、凹凸贴图等的文件夹。

de9f9b6f07c523f3a0ee775532180360.gif

USDZ

USDZ格式文件可以直接被读取

431e4b1a99d4f3933bd6c3a766375c85.png

USDZ(Universal Scene Description)由苹果与皮克斯共同研发。

 应用  USDZ格式专门用来存储 AR 图像。这种格式可以通过短信、邮件发送,也可以放在网页上供人下载。

 特点  相比其它3D格式而言,USDZ最明显的优势是极大提升访问效率。由于其采用无压缩方式打包、非加密的Zip文件存储,意味着文件是可直接被读取的,而且USDZ文件分享也非常方便。

另一个特点就是,在苹果的Safari、邮件等自家App中,配合ARKit 2即可实现AR快速预览功能。

de9f9b6f07c523f3a0ee775532180360.gif

 STL

STL文件格式简单, 应用非常广泛

62151d3b36ddf2b9969c1e2c86397dbf.png

STL文件格式stereolithography(光固化立体造型术)的缩写,是由3D SYSTEMS 公司于1988 年制定的一个接口协议。STL 文件由多个三角形面片的定义组成,每个三角形面片的定义包括三角形各个定点的三维坐标及三角形面片的法矢量。

 特点  STL文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式。它包含两种:一种是ASCII明码格式,另一种是二进制格式。因为STL文件格式简单,所以应用非常广泛。

 应用  STL文件只能描述三维物体的几何信息,不支持颜色材质等信息,是计算机图形学处理CG,数字几何处理如CAD,数字几何工业应用(如三维打印机)支持的最常见文件格式。STL也是目前最多快速原型系统所应用的标准文件类型。

de9f9b6f07c523f3a0ee775532180360.gif

AMRT

助力老子云平台用户二次开发

2556eccec26b4f274a242c5f501e3d09.png

AMRT格式是眸瑞科技旗下老子云平台开发并定义的3D模型格式。

 应用  作为一个json文件,AMRT资源格式里面包括动画文件、图片文件、网格文件、材质文件、场景文件和AO贴图。该格式中的文件可配合老子云平台的展示框架,让开发者们轻松实现二次开发。

 特点  相较于市场上其它的通用格式,AMRT资源格式具有三大特色。

475abb44da20ef863ecb24c6473ce4a4.png

底层兼容性更好、扩展性更强,便于用户进行二次开发。

475abb44da20ef863ecb24c6473ce4a4.png

AMRT格式有进行加密处理,对使用这一格式的用户来说安全系数更高。

475abb44da20ef863ecb24c6473ce4a4.png

该格式采用json流,压缩率更高。这意味着输出为这一格式的3D模型体积更小,在线上传送的过程中效率更高、速度更快。

253bb5cffa163ce1e0a65c78cb3af85f.png

另外,AMRT资源格式可以通过老子云平台和其它格式的模型实现互转,如FBX、OBJ、STL、3ds等。

de9f9b6f07c523f3a0ee775532180360.gif

如果大家希望了解更多的内容,无论是其它的格式,还是老子云平台特有的AMRT资源格式和二次开发内容,均可以登录老子云官网(点击进入)手动尝试一番;操作过程中有任何问题都可以添加官方公众号在后台随时提问。我们会为每个小伙伴提供最及时的咨询服务。

652fd643-ec2b-eb11-8da9-e4434bdf6706.svg

战略合作伙伴

26dd9a3d58678cfcb60d6813bf219138.png

联系我们

9f65ea7f20e9c0d0545dc03d33566e07.png

400-813-1218(商务合作)

3c6d85955ac1a4d1c6bd34252194036e.png

关注“老子云”公众号,后台留言

c0953d0538ed7b2f177a89243aa6e58e.png

https://www.laozicloud.com(进入官网)

c7e1935a60baf9109f9265156018358b.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java三件套_Java开发人员应该知道的三件事

java三件套对于那些长期关注JavaOne 2012会议的读者来说,这是一篇有趣的文章。 我最近对Java冠军Heinz Kabutz的采访引起了我的注意; 包括他的Java内存难题程序,从Java内存管理的角度来看,这很有启发性。 采访中有一个特别的部分吸…

Python 的变量作用域和 LEGB 原则

在 Python 程序中创建、改变或查找变量名时,都是在一个保存变量名的地方进行中,那个地方我们称之为命名空间。作用域这个术语也称之为命名空间。 具体地说,在代码中变量名被赋值(Python 中变量声明即赋值,global 声明的…

让MessageBox在最前面弹出来的信息在

nt MessageBox( HWND hWnd, // handle of owner window LPCTSTR lpText, // address of text in message box LPCTSTR lpCaption, // address of title of message box UINT uType // style of message box ); 在uType参数中设置MB_SYSTEMMODAL就能让MessageBox在最前面 消息框…

Confluence 6 管理协同编辑 - 关于 Synchrony

协同编辑能够让项目小组中的协同合作达到下一个高度。这个页面对相关协同编辑中的问题进行了讨论,能够提供给你所有希望了解的内容。 进入 Collaborative editing 页面来获得项目小组是如何进行实时的协同工作的,这些协同工作包括在软件需求,…

如何初始化局部变量c语言_【C语言更新】C语言中如何来定义一个指针,并且对其进行初始化...

文/Edward上一节中,我们利用了一个小知识来介绍了一下指针,在上面这个例子中,小明和小丽手中的这个杯子就好比我们C语言中的变量,它确实是实实在在存放一些有具体意义的数据。这个杯套就类似于C语言中指针的作用,假设我…

Spring Environment仅用于初始化代码

从3.1版开始, Spring框架提供了对几种不同来源的抽象,通过它们您可以轻松地配置应用程序: Environment 。 在这篇文章中,我描述了一个微基准测试,我可以证明该基准测试是一个方便的API(如果您在应用程序中…

linux查看和关闭后台执行程序

后台执行的程序会有一个pid,查看后台程序主要用到jobs,ps 关闭后台程序用到kill详细说明转自http://blog.csdn.net/tianlesoftware/article/details/6165753 一. 有关进程的几种常用方法 1.1 & 符号 在命令后面加上一个 & 符号,表示该命令放在后台执行&…

Mysql 多表联合查询效率分析及优化

1. 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用, 如: SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELECT * FROM table1,table2 由于其返回的结果为被连接的两…

Python的__getattr__方法学习

内容部分来自网络 __getattr__函数的作用: 如果属性查找(attribute lookup)在实例以及对应的类中(通过__dict__)失败, 那么会调用到类的__getattr__函数; 如果没有定义这个函数,那么抛出Attribu…

python to_excel新增sheet_Python使用xlrd和xlwt读写Excel的简单用法

前言数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用Python 进行数据相关的工作时,难免要和 Excel 打交道。标准的 Excel 文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直…

linux 线程管理、同步机制等

线程学了那么多有关进程的东西,一个作业从一个进程开始,如果你需要执行其他的东西你可以添加一些进程,进程之间可以通信、同步、异步。似乎所有的事情都可以做了。 对的,进程是当初面向执行任务而开发出来的,每个进程代…

SQL多表连接查询(详细实例)

本文主要列举两张和三张表来讲述多表连接查询。 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,…

cf 1059e 思维 贪心 树

参考博客:http://www.cnblogs.com/waldenlake/p/9750249.html 题意:将一棵n个点的带权有根树剖分成尽量少的链,使得 (1)链的两个端点是祖先关系 (2)链含有的顶点个数小于等于L (3&am…

powermock模拟对象_使用PowerMock模拟构造函数

powermock模拟对象在我看来,依赖注入的主要好处之一是可以将模拟和/或存根对象注入代码中,以提高可测试性,增加测试覆盖率并编写更好,更有意义的测试。 但是,有时候您会遇到一些不使用依赖注入的传统代码,而…

宝塔 没有找到站点_宝塔面板正确开启TLS 1.3并删除TLS 1.1

昨天折腾了一个AlphaSSL泛域名证书后,心血来潮去SSL评分网站测试了一番,最后的结果竟然是B,这真是不能忍啊……为啥会是B,查看了原因,竟然是启用了TLS 1.1,所以为B。那么,删除TLS 1.1不就可以了…

线程同步机制:互斥量、信号量、读写锁、条件变量

一、互斥量(mutex) 互斥量本质上是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。 对互斥量进行加锁以后,任何其它试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放…

在Cloudfoundry上部署RESTful服务

在本文中,我们将使用Pivotal Cloud Foundry(PCF)Dev在Cloudfoundry上部署RESTful服务。 由于创建静态Web服务不是本文的一部分,因此我已经创建了employee-service ,它具有静态后端,可从GitHub进行克隆。 在…

mysql 全连接查询合并字段

1、创建两张表 t1如下: idname1a13a3 t2如下: idname1b12b25b5 联合查询合并字段: sql语句: SELECT t3.name AS B, t3.name1 AS C ,COALESCE(t3.id2,t3.id1) AS myId FROM (SELECT t1.id as id2 ,t1.name as name,t2.id as id…

小米刷第三方recovery_小米平板4/Plus LTE版本开启电话功能

众所周知,因为入网许可或通信基带使用权限的问题,小米平板4/plus LTE版本通过系统的方式阉割了通话功能,不过硬件完全是支持的,所有还是有办法让你的平板可以像手机一样,可以通话,可以发送短信。过Magisk刷…

最佳线程数总结(1

最佳线程数: 性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加。这个阀值我们认为是最佳线程数。 为什么要…