Cesium官方教程11--建模人员必读

原文地址: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 Textures 和 Include Material Textures 。

3DS Max 软件

纹理图片必须是jpg,png等web兼容格式。
把纹理和.max文件放在一个目录下。
材质命名最好和纹理图片文件名称一致。
在同一个目录下导出FBX会带着图片。

原文地址:http://blog.51cto.com/14117342/2327176

时间: 2024-11-08 05:25:23

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

Cesium官方教程13--Cesium和Webpack

原文地址:https://cesiumjs.org/tutorials/cesium-and-webpack/Cesium 和 WebpackWebpack是非常强大非常流行的JavaScript 模块打包工具.它可以让开发人员以一种简单直观的 require 方式去加载各种页面需要的文件,极大的方便了开源人员对代码和资源文件进行结构化设计.当编译的时候,它会跟踪代码依赖性,把所有的模型打包到浏览器可以直接加载的一个或者多个bundles中.在这个教程的前一半,我们创建一个简单的web项目,学会

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

原文地址:https://cesiumjs.org/tutorials/Particle-Systems-Tutorial/ 粒子系统介绍这篇教程带你学习Cesium的粒子相关API,比如如何在你的项目里添加烟,火,火花等特效.什么是粒子系统?粒子系统是一种图形学技术,用来模拟复杂的物理效果.粒子系统是由一堆很小的图片组成,看起来就像一些复杂的"含糊不清(fuzzy)"对象,就像火.烟.天气.或者 ×××.这些复杂效果其实是通过控制每一个独立的粒子的初始位置.速度.生命周期等属性来完成

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

原文地址:https://cesiumjs.org/tutorials/Particle-Systems-More-Effects-Tutorial/高级粒子系统特效这篇教程学习更多的效果,包括天气和火箭推进器.如果没有学习过粒子系统基础知识,请学习这篇教程 粒子系统介绍 .天气下雪下雨 最开始下雪的教程是来自 追踪圣诞老人项目里的实现.步骤我们即将介绍如何做下雪效果,然后怎么把下雪变为下雨效果.我们将给每个粒子添加雪花图片,然后在updateParticle函数里定义每个粒子的移动属性和其他动

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

原文地址:https://cesiumjs.org/tutorials/Geometry-and-Appearances/几何体和外观效果(Geometry and Appearances)这篇教程会教大家学习Primitive API中支持的几何体和外观效果.这篇教程并不是面向Cesium的普通用户,主要讨论Cesium的高级知识,包括自定义三角网(mesh),形状(shape),体(volume)以及他们的外观.如果你是初学者,建议先学下这篇教程.Cesium可以使用Entity创建不同的几

Cesium官方教程12--材质(Fabric)

原文地址:https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric介绍Fabric 是Cesium中基于JSON格式来描述materials的机制.材质描述多边形.折线.椭球等对象的外观特征.材质可以简单的是覆盖一张图片,或者是条纹或者棋盘图案.使用Fabric 和GLSL,可以从零开始写脚本新建材质,也可以从现有的材质中派生.比如潮湿碎裂的砖块可以使用程序生成的纹理.凹凸贴图和反射贴图来组合.对象通过material 属性来支持材质

Cesium官方教程5--地形图层

原文地址:https://cesiumjs.org/tutorials/Terrain-Tutorial/Cesium支持渐进流式加载和渲染全球高精度地形,并且包含海.湖.河等水面效果.相对2D地图,山峰.山谷等其他地形特征的更适宜在这种3D地球中展示.地形数据集是巨大的,通常都是GB或者TB级别.在普通3D引擎中,使用底层图形API去高效实现地形数据的可视化需要做很多事情.幸好,Cesium已经完成了这个体力活,而我们只需要写几行代码.快速开始从一个示例开始吧.打开Sandcastle中的 H

开发人员必读的11本最具影响力书籍

11本书籍开发人员数据结构项目管理编程 摘要:对于一个程序员而言,在学校里学不到多少工作中真正需要的知识,只有在工作中实践积累并且看一些优秀的书籍,把实践和理论结合起来才能够更好的工作.尤其是在技术日益发展和变化的今天,每个开发者更应该主动的看书去学习编程技巧并且改变编程方法,才能应付工作中各种复杂的项目.同时也可... 对于一个程序员而言,在学校里学不到多少工作中真正需要的知识,只有在工作中实践积累并且看一些优秀的书籍,把实践和理论结合起来才能够更好的工作.尤其是在技术日益发展和变化的今天,每

Ceisum官方教程3 -- 空间数据可视化

原文地址:https://cesiumjs.org/tutorials/Visualizing-Spatial-Data/这篇教程教你如何使用Cesium的Entity API去绘制空间数据,如点,图标,文字标注,折线,模型,图形和立体图形.虽然这章不需要什么前提,但是如果你对Cesium一无所知,最好从第一个教程开始.Entity API是什么?Cesium丰富的空间数据可视化API分为两部分:Primitive API 面向三维图形开发者,更底层一些.Entity API 是数据驱动更高级一

Cesium中级教程10 - CesiumJS and webpack

Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ webpack是打包JavaScript模块流行且强大的工具.它允许开发人员以直观的方式构造代码和assets,并使用简单的require语句根据需要加载不同类型的文件.构建时,它将跟踪代码依赖关系,并将这些模块打包到浏览器加载的一个或多个包中. 在本教程的前半部分,我们从头开始建立了简单的Web应用程序使用webpack,然后覆盖后续步骤集成Cesium np