原文地址:https://cesium.com/blog/2014/12/15/gltf-tips-for-artists/

这篇文章是Branden Coker, an artist from AGI 写的,他是 AGI 的一个艺术家,做过很多事情,包括 为追踪圣诞老人项目建模。感谢3dben 编写的Blender和3DS Max建模建议。
Cesium使用面向web的glTF 格式三维模型,同时提供了一个 dae在线转gltf的工具, 把dae和它纹理拖放到这个工具里,就能获得一个glTF格式的模型。这篇文章是一些对三维数据建模和导出到COLLADA dae 的小提示,帮助提升模型的性能和稳定性。

纹理图片

  • 所有的纹理使用同一个顶点数据。可以使用多重纹理把uv的作用最大化,但是所有纹理只能分享同一个纹理坐标。
  • 尽量使用纹理合并集( texture atlases 多个小纹理和到一张大纹理上)而不是很多独立纹理 。这样会使文件下载次数最小化,并且使引擎批量渲染,会提升不少性能。
  • 尽管WebGL标准承诺的最大纹理是6464,但是现代显卡系统都支持到20482048,这个也是glTF纹理资源合理的尺寸上限。
  • 使用mipmaping。这个会提升显示效果和渲染性能,尤其是对大的纹理合并集 ,否则会产生很多内存碎片( poor memory coherence)。
  • 使用2的幂次方大小的纹理。对于非2的幂次方的纹理,引擎实际会实时的进行缩放。 并不是要求纹理的宽度和高度相同,而是说宽度或者高度都是2的幂次方即可。

几何体

  • 不要包含任何比不需要的顶点元素。虽然导出Collada dae会增大一点点,但是对glTF确增大了很多。因为glTF不支持顶点属性的索引( per-attribute indices),所有的顶点属性都是和顶点个数一致。
  • 尽量减少节点(node)和 三角网(mesh)的个数。通常一个大的三角网渲染效率要比很多个小的三角网效率高。

Modo 软件

  • Collada导出的时候禁用相机,光照,顶点颜色,顶点权重等应用程序层面的属性,这些在Cesium加载的时候都用不上。
  • 删除相机和灯光对象。
  • 如果模型没有带动画,那么删除所有三级网中用不到的平移,旋转,缩放矩阵。
  • instance形式的关键帧(Instanced keyframes)在导出前必须烘培。这种情况是因为把一个带动画的三角网instance了。尽管在Modo软件里动画没问题,但是如果不烘培(baked)导出不了。
  • 带动画的模型不能使用 Bake Matrices 选项导出,这么导出的模型动画就丢了。

Blender 软件

  • 对于带纹理的模型,在 COLLADA导出器中勾选 Include UV TexturesInclude Material Textures

3DS Max 软件

  • 纹理图片必须是jpg,png等web兼容格式。
  • 把纹理和.max文件放在一个目录下。
  • 材质命名最好和纹理图片文件名称一致。
  • 在同一个目录下导出FBX会带着图片。
 
中国最专业的Cesium开发者社区

Cesium官方教程11--建模人员必读的更多相关文章

  1. 关于Cesium 官方教程

    最近一直在准备第一次QQ群的Cesium基础培训公开课,虽说使用Cesium也有段日子了,但是要说对Cesium了解有多深,还真不一定.原因是一直以来我都是用哪里学哪里.基于多年开发三维数字地球的底层 ...

  2. Cesium官方教程13--Cesium和Webpack

    原文地址:https://cesiumjs.org/tutorials/cesium-and-webpack/ Cesium 和 Webpack Webpack是非常强大非常流行的JavaScript ...

  3. Cesium官方教程9--粒子系统

    原文地址:https://cesiumjs.org/tutorials/Particle-Systems-Tutorial/ 粒子系统介绍 这篇教程带你学习Cesium的粒子相关API,比如如何在你的 ...

  4. Cesium官方教程7--三维模型

    原文地址:https://cesiumjs.org/tutorials/3D-Models-Tutorial/ 三维模型 (3D Models) 这篇教程给大家介绍,如何在Cesium中通过Primi ...

  5. Cesium官方教程6--相机

    相机(Camera) 相机控制了场景的观察视角.有很多相机操控方法,比如旋转.缩放.平移以及飞行定位.Cesium默认支持使用鼠标和触摸事件控制相机.Cesium也提供了一套可编程的相机控制API.这 ...

  6. Cesium官方教程10--高级粒子特效

    原文地址:https://cesiumjs.org/tutorials/Particle-Systems-More-Effects-Tutorial/ 高级粒子系统特效 这篇教程学习更多的效果,包括天 ...

  7. Cesium官方教程8-- 几何体和外观效果

    原文地址:https://cesiumjs.org/tutorials/Geometry-and-Appearances/ 几何体和外观效果(Geometry and Appearances) 这篇教 ...

  8. Cesium官方教程4--影像图层

    原文地址:https://cesiumjs.org/tutorials/Imagery-Layers-Tutorial/ 影像图层 Cesium支持多种服务来源的高精度影像(地图)数据的加载和渲染.图 ...

  9. ActionBar官方教程(11)自定义ActionBar的样式(含重要的样式属性表及练习示例)

    Styling the Action Bar If you want to implement a visual design that represents your app's brand, th ...

随机推荐

  1. _IRP struct

    Windows XP x86 +0x000 Type : Int2B +0x002 Size : Uint2B +0x004 MdlAddress : Ptr32 _MDL +0x000 Next : ...

  2. sql 保存,性能高

    INSERT INTO TABLE( Id, Name) VALUES ( 4, 'A'), ( 5, 'P' ),( 6, 'U') ; INSERT INTO TABLE( Id, Name) S ...

  3. webpakc4.0移除了 CommonsChunkPlugin 组建

    在4.0之前我们可以通过 require('webpack.optimize.CommonsChunkPlugin');  这样引入 CommonsChunkPlugin  组建对第三方模块进行独立打 ...

  4. Android 开发 框架系列 OkHttp文件下载功能实现(含断点续传)

    前言 此篇博客只是下载功能的记录demo,如果你还不太了解okhttp可以参考我的另一篇博客https://www.cnblogs.com/guanxinjing/p/9708575.html 代码部 ...

  5. CF 540D Bad Luck Island

    一看就是DP题(很水的一道紫题) 设\(dp[i][j][k]\)为留下\(i\)个\(r\)族的人,死去\(j\)个\(s\)族的人,死去\(k\)个\(p\)族的人的概率(跟其他的题解有点差别,但 ...

  6. 巧用CSS3的calc()宽度计算做响应模式布局

    今天浏览这个http://www.sitepoint.com站时,因为好奇看了下人家写的代码,结果发现了这行代码, 于是就研究了一下,calc()从字面我们可以把他理解为一个函数function.其实 ...

  7. 期望dp——zoj3640

    /* dp[i]表示力量为i时的期望 dp[i]=sum{tj}/n+sum{dp[i+cj]+1}/n //前一项是cj<i的和,后一项是cj>=i的和 初始状态dp[m] */ #in ...

  8. Unity3D Input 键盘控制

    function Update (){ //Input.GetKey ("down") == Input.GetKey(KeyCode.DownArrow) if (Input.G ...

  9. 什么是存根类 Stub

    转:http://www.cnblogs.com/cy163/archive/2009/08/04/1539077.html 存根类是一个类,它实现了一个接口,但是实现后的每个方法都是空的.      ...

  10. php算法题---对称的二叉树

    php算法题---对称的二叉树 一.总结 一句话总结: 可以在isSymmetrical()的基础上再加一个函数comRoot,函数comRoot来做树的递归判断 /*思路:首先根节点以及其左右子树, ...