游戏中经常会出现一些大型的户外场景,例如一个小镇、一座古城等。通常这种场景中包含了较多的建筑、道路、桥梁等等元素,其3D模型比较大且复杂。在使用TWaver加载时,可使用一些技巧,让加载速度更快、显示更流畅。

TWaver 3D支持导入json或obj等格式的3D场景。如果是obj格式,可将obj文件、mtl文件、所有贴图文件,以字符串参数形式传给TWaver进行加载。当然这些文件也都可以是网络上的URL字符串。

var loader = new mono.OBJMTLLoader();
loader.load(obj, mtl, images);

TWaver支持在加载过程中对每一个物体进行进一步处理。例如材质贴图、特性等。我们通过下面的代码,可以将每一个加载的物体强制用白模显示:

var loader = new mono.OBJMTLLoader();
loader.load(obj, mtl, images, function (object) {box.addByDescendant(object);box.forEach(function(element){element.setStyle('m.texture.image',null);});

或者直接使用wireframe的方式忽略物体表面,直接显示物体的线条形状:

var loader = new mono.OBJMTLLoader();
loader.load(obj, mtl, images, function (object) {box.addByDescendant(object);box.forEach(function(element){element.setStyle('m.wireframe',true);});

这个obj文件超过16兆,TWaver解析的过程不超过5秒。但是实际应用中,资源文件可能存在网络上,网络传输则需要一定的时间。可以将obj文件或json文件进行打包压缩,加快传输效率。对于材质也可以适当降低精度,在显示出场景后再逐渐加载或按需加载高精度的贴图,进行动态的更换。

转载于:https://www.cnblogs.com/twaver/p/4205901.html

用TWaver加载大型游戏场景一例相关推荐

  1. 解析OBJ模型并将其加载到Unity3D场景中

    版权声明:本文由秦元培创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处,本文作者为秦元培,本文标题为解析OBJ模型并将其加载到Unit ...

  2. sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中...

    sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中 假设有一场景1001.unity,,manifest文件如下: ...

  3. python 实例 cadu_【示例详解】AutoCAD处理控件Aspose.CAD 8月新更!支持加载大型DWG文件...

    Aspose.CAD for .NET是一个独立的AutoCAD处理API.它提供将DWG,DWF和DXF文件转换为高质量PDF和光栅图像的功能.开发人员可以从AutoCAD文件中选择和转换特定的布局 ...

  4. 听说 TBS x5 Webview 加载 H5 游戏提示申请相机权限

    现如今,渠道上架应用或游戏,对敏感信息合规检测还是比较严格的,一般都会采用自动化 + 人工检测. 比如上架审核一个无需相机和录音权限的包体,绝大部分会遭到拒审(除非漏检?)! 本次遇到的就是类似情况, ...

  5. Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)

    转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉加载,网上的Demo太多太多了,这 ...

  6. 【示例详解】AutoCAD处理控件Aspose.CAD8月新更!支持加载大型DWG文件

    Aspose.CAD for .NET是一个独立的AutoCAD处理API.它提供将DWG,DWF和DXF文件转换为高质量PDF和光栅图像的功能.开发人员可以从AutoCAD文件中选择和转换特定的布局 ...

  7. Unity尝试制作王者荣耀(十六)——FightScene(一)加载模型到场景中

    一.进入战斗场景动态加载相关模型 1.1. 首先新建一个脚本FightScene.cs告诉服务器,客户端已经进入Fight场景 void Start () {//告诉服务器进入到了战斗场景this.W ...

  8. 深度强化学习加载Atari游戏运行库:Could not find module “XXXX\lib\site-packages\atari_py\ale_interface\ale_c.dll“

    深度强化学习加载Atari游戏运行库:Could not find module "XXXX\lib\site-packages\atari_py\ale_interface\ale_c.d ...

  9. Unity加载火炬之光的场景

    原文  http://blog.csdn.net/langresser_king/article/details/38423793 因为一些基础的数学问题,前前后后一共研究了四五天,今天终于有些眉目了 ...

最新文章

  1. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T
  2. java 代理的三种实现方式
  3. [转]MySQL 5.6 my.cnf配置优化
  4. Windows远程命令执行0day漏洞安全预警
  5. 【Linux 内核】Linux 内核源码目录说明 ③ ( lib 目录 | LICENSES 目录 | mm 目录 | net 目录 | samples 目录 | scripts 目录 )
  6. 【Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )
  7. 十佳运动员有奖评选系统_2019年度国际足坛十佳运动员,利物浦三星在列,第十名属私心...
  8. 领域驱动设计的简略设计步骤
  9. 【Julia】Julia使用Pkg下载镜像配置问题解决方案
  10. android ANR产生原因和解决办法
  11. 使用emacs去除源代码中多余的空格
  12. Python+OpenCV:二维直方图(2D Histograms)
  13. bzoj 1690: [Usaco2007 Dec]奶牛的旅行(01分数规划--最优比率环)
  14. Imagination发布PowerVR软件开发套件和工具包重要更新版本,含光线追踪代码示例...
  15. Codevs 3322 时空跳跃者的困境(组合数 二项式定理)
  16. 普元mobile与eos集成发布手册
  17. 视频倍速 - 在线调倍速的加速器APP工具
  18. HttpClient数据传输的编码方式
  19. winscp 进入mysql命令_WinSCP命令行操作
  20. 什么是事务的一致性?一致性和原子性的区别是什么?

热门文章

  1. 远程服务器安装docker和docker-compose
  2. 面积积分_被积函数的奇偶性问题(定积分、重积分、线积分、面积分)
  3. 【超详细】模拟器EVE的安装与使用,附下载链接
  4. linux+网卡驱动社区,Linux下如何确定网卡所使用的驱动程序
  5. Canonical 开源 MicroK8 | 云原生生态周报 Vol. 25
  6. 解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统
  7. matlab中线性变压器,用MATLAB优化计算差动变压器的线性范围
  8. python 遍历内嵌tuple,python特性语法之遍历、公共方法、引用
  9. 创业中创新驱动能力_创业培训课程:创新思维能力塑造
  10. python 使用文本注解绘制树节点_整理了 34 个被吹爆了的Python开源框架