ThreeJS 3d模型简介
本文主要是对Threejs中加载模型的支持种类进行简单的知识科普。
3ds (.3ds)
3ds是3ds max通用储存文件格式。使用的范围更宽,可被更多的软件识别使用.
amf (.amf)
AMF是以目前3D打印机使用的“STL”格式为基础、弥补了其弱点的数据格式,新格式能够记录颜色信息、材料信息及物体内部结构等。AMF标准基于XML(可扩展标记语言)。
3mf (.3mf)
由微软牵头的3MF联盟,于2015年推出全新的3D打印格式——3MF(3D Manufacturing Format),相较于STL格式,3MF档案格式能够更完整地描述3D模型,除了几何信息外,还可以保持内部信息、颜色、材料、纹理等其它特征。3MF同样也是一种基于XML的数据格式。
assimp & assimp2json (.assimp |.json)
Assimp是一个强大的模型加载和转换库,支持多种格式的加载和转换,可通过c++进行调用开发。assimp2json顾名思义就是assimp格式的json格式导出。
awd (.awd)
AWD是一种用于三维场景的二进制格式,并且通常与AWD引擎一起使用。
Babylon (.babylon)
微软的基于webgl的开发框架. Babylon.js
BVH (.bvh)
BVH是BioVision等设备对人体运动进行捕获后产生文件格式的文件扩展名,BVH文件包含角色的骨骼和肢体关节旋转数据。BVH 是一种通用的人体特征动画文件格式,,广泛地被当今流行的各种动画制作软件支持。通常可从记录人类行为运动的运动捕获硬件获得。
Collada(.dae |.xml)
COLLADA™ 是面向交互式 3D 应用程序的基于 XML 的数字资产交换方案,使 3D 创作应用程序可以自由地交换数字资产而不损失信息 - 使多种DCC和3D处理软件包可以组合成强大的工具链管道。DAE 是纯文本的模型格式,其本质就是一个单纯的xml文件。相比fbx,对dae格式模型的载入我们拥有非常高的自由控制,这也是最复杂的地方。基本上,dae文件内一开始就把数据分成了好几大块。对我们来说最为有用的是VisualScenes(包含场景骨骼节点树)、Nodes(与VisualScenes类似,两者或互为补充)、Geometries(网格数据)、Materials/Effects/Images(材质相关信息)、Controllers(骨骼信息数据)、Animations(动画数据)、AnimationClips(全局的动画信息),其中静态模型一般也就包括VisualScenes和Geometries。(有C++API)
OpenCTM (.ctm)
OpenCTM格式的3D模型文件,OpenCTM 格式文件是二进制文件,相比于 stl 格式的文件,它将不承载除模型三角面片信息以外的信息,一个 OpenCTM 文件仅包含一个 Mesh,一个文件主要分成Mesh 的顶点信息和Mesh 的面片信息。(有C++API)
draco(.drc)
Google公司推出的3d模型压缩利器,压缩比甩gzip几条街,100M的.obj压缩后大约5M。
FBX(.fbx)
FBX 是 FilmBoX 这套软件所使用的格式,后改称 Motionbuilder。因为Motionbuilder扮演的是动作制作的平台,所以在前端的modeling和后端的rendering也都有赖于其它软件的配合,FBX最大的用途是用在诸如在 Max、Maya、Softimage 等软件间进行模型、材质、动作和摄影机信息的互导,这样就可以发挥 Max 和 Maya 等软件的优势。可以说,FBX 方案是非常好的互导方案。
GCode(.gcode)
GCODE是用于3d打印的文件,存储有3d打印机的运动命令和坐标等。
glTF (.gltf)
glTF是一种可以减少3D格式中与渲染无关的冗余数据并且在更加适合OpenGL簇加载的一种3D文件格式。glTF 就是三维文件的 JPEG ,三维格式的 MP3。在没有glTF的时候,大家都要花很长的的时间来处理模型的载入。此外,glTF是对近二十年来各种3D格式的总结,使用最优的数据结构,来保证最大的兼容性以及可伸缩性。这就好比是本世纪初xml的提出。glTF使用json格式进行描述,也可以编译成二进制的内容:bglTF。glTF可以包括场景、摄像机、动画等,也可以包括网格、材质、纹理,甚至包括了渲染技术(technique)、着色器以及着色器程序。同时由于json格式的特点,它支持预留一般以及特定供应商的扩展。
Clara(.json)
Clara.io有可建立于桌面的3D创建工具,它是一个整合性的3D内容创作软件,不仅仅是单一用途的应用程序,还是算图或layout工具,并由许多外挂模块和语法所组成。大多3D artists不需太多适应时间就可熟悉Clara.io,并获得更多的便利功能。由于Clara.io是设计在网络浏览器上运行,所以用户可随时随地接触到它,无需设定、可跨平台使用,自动存储所有的制作步骤,让你可以实时与他人协同作业,以及拥有无限制的云端运算需求。
KMZ(.kmz)
kmz是谷歌kml语言文件的zip压缩格式,常用于的谷歌地图文件,由kml语言编写,KML是标记语言(Keyhole Markup Language)的缩写,最初由Keyhole公司开发,是一种基于XML 语法与格式的、用于描述和保存地理信息(如点、线、图像、多边形和模型等)的编码规范,可以被 Google Earth 和 Google Maps 识别并显示。
LDraw(.mpd)
lego的3D模型库
LightWave(.lwo)
lwoss是LightWave 3D模型美国NewTek公司开发的LightWave 3D是一款高性价比的三维动画制作软件,它的功能非常强大,是业界为数不多的几款重量级三维动画软件之一。
MD2 (.md2)
MD2文件是QuakeП专用的文件格式,QuakeП中复杂的三维场景就是通过对它的读取产生的。
MMD(.pmd + .vmd)
MikuMikuDance是日本人樋口优所开发,将VOCALOID2的初音未来等角色制作3D模组的免费软件
nrrd (.nrrd)
NRRD格式包含了一个单独的头文件和若干个可以被结合在一起或者分开的图像文件。NRRD头文件为科学可视化和图像处理准确地表征了N维光栅信息。常用于医疗设备的多层切片数据。
obj (.obj)
OBJ文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的互导。目前几乎所有知名的3D软件都支持OBJ文件的读写。OBJ文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改。
obj2 (.obj)
同上
pcd (.pcd)
Point Cloud Data即3d点云图像。
PDB(.pdb)
PDB是protein data base 的简写,在生物学软件中,一般把蛋白质的三维结构信息用pdb文件保存。本质是一种ASICLL码文件,可以用普通的文本编辑器编辑,也可以用专业软件编辑。
PlayCanvas(.json)
PlayCanvas是一款开源游戏引擎,完全基于浏览器;
ply (.ply)
PLY 是一种电脑档案格式,全名为多边形档案(Polygon File Format)或 斯坦福三角形档案(Stanford Triangle Format)。 该格式主要用以储存立体扫描结果的三维数值,透过多边形片面的集合描述三维物体,与其他格式相较之下这是较为简单的方法。它可以储存的资讯包含颜色、透明度、表面法向量、材质座标与资料可信度,并能对多边形的正反两面设定不同的属性。作为OBJ 格式的升级版!PLY格式受 Wavefront .obj 格式的启发,但改进了Obj格式所缺少的对任意属性及群组的扩充性。因此PLY格式发明了"property"及"element"这两个关键词,来概括“顶点、面、相关资讯、群组”的概念。
prwm(.prwm)
Packed Raw WebGL Model 是一种二进制的3d模型文件, 它是为web中的几何外形设计的,主要特点是解析和加载速度特别快,原理是对元素进行索引和数组话操作。 prwm
sea3d(.sea3d)
sea3d为游戏而生的一种开源的格式与工具,可导出动画, 纹理, 材质, 骨骼 ( Skin ), 顶点动画, 变形, 相机, 光源, 环境和辅助.
stl(.stl)
STL是用三角网格来表现3D CAD模型。文件格式简单,只能描述三维物体的几何信息,不支持颜色材质等信息,是计算机图形学处理CG、数字几何处理如CAD、 数字几何工业应用, 如三维打印机支持的最常见文件格式。
vrm(.vrm)
vrm是日本推行的3D虚拟形象的新格式标准,打造3D人形角色行业标准
vrml(.vrml)
VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,也具有平台无关性。它可以做很多事并且支持很多效果.但是事实上它并未得到广泛应用.
vtk
VTK,全称是Visualization Toolkit,即可视化工具包。是一个开源、跨平台、可自由获取、支持并行处理的图形应用函数库。
x
.x文件是微软为DX开发提供的一种3D文件.包括顶点\纹理、动作。
ThreeJS 3d模型简介的更多相关文章
- 教你如何利用threejs对3D模型皮肤进行DIY
一步一步教你如何利用threejs加载gltf模型来实现DIY换肤功能. 模型准备 模型制作 模型可以通过网上下载,也可以自己通过c4d.maya.blender等模型制作软件得到.这里就不叙述有关模 ...
- 3d模型一般怎么导入到到Threejs中使用
这是我之前做的一个demo,导入的3d模型文件是obj格式的,需要使用OBJLoader和MTLLoader, mtl文件用于描述多边形可视面貌的材质如果你可以导出obj.mtl文件的话,那么就可以使 ...
- 【pano2vr】网页Flash中简单实现炫酷的3D模型制作
花了两天时间学习如何能够高效的实现3D模型效果,毕竟是从0开始学习,感觉pano2vr这款软件挺容易上手,并且可以很容易实现简单的热点交互,可以根据交互需求设置皮肤,故将这一款软件推荐给大家: 1.简 ...
- 【Unity】3.0 第3章 创建和导入3D模型
分类:Unity.C#.VS2015 创建日期:2016-04-02 一.简介 利用Unity内置的基本模型和工具,不需要借助任何其他的三维建模软件,就可以直接创建出各种3D模型,这是这一章我们首先学 ...
- 在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图
在Jerry写这篇文章时,通过Google才知道,SAP其实是有自己的3D模型视图显示解决方案的. 故事要从Right Hemisphere说起,这是一家专业的企业级2D/3D模型浏览及转换的软件供应 ...
- three.js 运行3D模型
HTML <!DOCTYPE html> <html style="height: 100%;"> <head> <title>m ...
- vue.js+THREE.js演示服务端3D模型流程总结
three.js官网 ·场景搭建 使用npm或者其他获取安装three,就像npm i three,之后在需要演示模型的vue组件内import * as THREE from 'three',此时我 ...
- ifix中嵌入3d模型初探(一)
在ifix项目中插入3d模型,是当前工控上位机的一个发展趋势,故而我也来尝尝鲜.利用现有条件,初步打算完成一个工厂俯视3d全景. 基本思路:利用webbrowser+3dmax+three.js来嵌入 ...
- Unity3D游戏开发初探—2.初步了解3D模型基础
一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...
随机推荐
- 【ASP.NET Core学习】远程过程调用 - gRPC使用
本文介绍在gRPC使用,将从下面几个方面介绍 什么是RPC 什么时候需要RPC 如何使用gRPC 什么是RPC RPC是Remote Procedure Call简称,翻译过来是远程过程调用.它是一个 ...
- java 注解@interface
类注解: package com.cglibs; import java.lang.annotation.ElementType; import java.lang.annotation.Retent ...
- python如何发布自已pip项目
python如何发布自已pip项目前言因为自已平时会把一个常用到逻辑写成一个工具python脚本,像关于时间字符串处理,像关于路径和文件夹遍历什么的工具.每一次新建一个项目的时候都要把这些工具程序复制 ...
- 当微信小程序遇到AR(四)
当微信小程序遇到AR,会擦出怎么样的火花?期待与激动...... 通过该教程,可以从基础开始打造一个微信小程序的AR框架,所有代码开源,提供大家学习. 本课程需要一定的基础:微信开发者工具,JavaS ...
- flask上下文管理相关 - threading.local 以及原理剖析
threading.local 面向对象相关: setattr/getattr class Foo(object): pass obj = Foo() obj.x1 = 123 # object.__ ...
- c++学习笔记_5
前言:本笔记所对应的课程为中国大学mooc中北京大学的程序设计与算法(三)C++面向对象程序设计,主要供自己复习使用,且本笔记建立在会使用c和java的基础上,只针对与c和java的不同来写 继承 继 ...
- 【ARM-Linux开发】ti CMEM使用
1.CMEM Overview http://processors.wiki.ti.com/index.php/CMEM_Overview 2.Changing the DVEVM memory ma ...
- matlab.坑01
1.数据的行列 位置 1.1.c++中二维数组与二维mwarray数据格式之间的相互转换 - weixin_38723958的博客 - CSDN博客.html(https://blog.csdn.ne ...
- jumpserver0.4.0与python3版本安装
环境: 系统:CentOS 6.5 Python版本:Python3.6 安装目录:/Data/apps/ 一. 环境准备: 1. 基本工具库: # yum -y install sqlite-de ...
- [转帖]centos7上设置中文字符集
centos7上设置中文字符集 https://www.cnblogs.com/kaishirenshi/p/10528034.html author: headsen chen date: 201 ...