地形的实现,一种是用拼格子,每个格子一个四边形,不共用顶点,不能lod,但是一个格子就可以多层纹理,适合2.5D视角游戏,比如魔兽3和天龙

另一种就是主流3D游戏做法,共用顶点,lod,缺点是一个地形page的纹理层数和前面那种地形的一个格子一样多...比如8层,其实已经足够,纹理过渡也很自然.拼格子的纹理过渡始终很丑.

1)天龙的地形实现原理如下.

整个地形分很多tile组合而成,class TerrainTile : public Ogre::MovableObject

一个tile是一个MovableObject,用来摄像机裁剪.

每个tile包含一个RenderableList;一个tile里面,同材质的格子会被做成一个Renderable,

tile大小事32,那么有32*32 个格子,假如这些格子用了10种不同的材质,那么这些格子就被做成10个Renderable

渲染没问题,按材质分批次渲染,10个批次,

但是摄像机裁剪有问题,摄像机只能按tile去裁剪,因为tile是MovableObject,而那10个Renderable却不能单独裁剪

这样的话,比如,摄像机只看到这个tile.32*32格子中最边上的一个格子,也会把整个tile渲染,10个批次....

如果把10个Renderable都做成MovableObject,可以裁剪,那么只看到最边上这个格子的话,只会渲染最边上的那个Renderable,1个批次.

实践证明,对于2.5D视角游戏,地形的批次几乎可以降低一半

2)tile的大小

tile设想多大,效率最高?这和摄像机有关,最好是游戏视角,摄像机刚好看那么大的范围再大一点点,天龙的32,对于他的视角,是合理的.

3)texture atlas

天龙的地表的纹理很小,128*256 导致材质很多,批次就很多,如果做texture atlas把小纹理合成大纹理,批次就会减少很多,但是也会有其他一些附加问题,比如mipmap导致的缝隙,解决缝隙,国外其实有不少解决方法, 比如可以写shader,在不同的mipmap下调整纹理坐标,或者预留纹理坐标,在已有纹理上加一圈和边缘相同的像素,这样就不会取到其他纹理像素,导致缝隙.

天龙2增加了天空视角,即使看到很多场景,渲染效率却没有受到多大影响,所以个人认为,他应该做了texture atlas,减少了整个场景的批次,不然实现不了天空视角.

Ogre渲染优化心得(三) -- 优化天龙八部的地形相关推荐

  1. 数据结构与算法 / 冒泡排序及其优化的三种方式

    一.一般写法 统一使用交换函数: void swap(int& a, int& b) {int tmp = a;a = b;b = tmp;return; } void BubbleS ...

  2. 如何从8 道面试题中,看出浏览器渲染过程与性能优化

    前言 移动互联网时代,用户对于网页的打开速度要求越来越高.百度用户体验部研究表明,页面放弃率和页面的打开时间关系如下图 所示. 根据百度用户体验部的研究结果来看,普通用户期望且能够接受的页面加载时间在 ...

  3. 【genius_platform软件平台开发】第八十二讲:ARM Neon指令集一(ARM NEON Intrinsics, SIMD运算, 优化心得)

    1. ARM Neon Intrinsics 编程 1.入门:基本能上手写Intrinsics 1.1 Neon介绍.简明案例与编程惯例 1.2 如何检索Intrinsics 1.3 优化效果案例 1 ...

  4. Android性能优化系列篇(三):崩溃优化+卡顿优化

    前言 汇总了一下众多大佬的性能优化文章,知识点,主要包含: UI优化/启动优化/崩溃优化/卡顿优化/安全性优化/弱网优化/APP深度优化等等等~ 本篇是第三篇:崩溃优化+卡顿优化 [非商业用途,如有侵 ...

  5. 浏览器渲染原理以及性能优化

    浏览器渲染原理以及性能优化 浏览器渲染原理 进程与线程 Request请求阶段 Response响应阶段 浏览器渲染网页注意事项 浏览器渲染网页阻塞顺序 DOM的重绘和回流 Repaint & ...

  6. Android 性能优化(三)布局优化 秒变大神

    Android 性能优化 (一)APK高效瘦身 http://blog.csdn.net/whb20081815/article/details/70140063 Android 性能优化 (二)数据 ...

  7. 移动设备渲染架构以及GPU优化技巧

    移动设备渲染架构以及GPU优化技巧 前言 一.常用的两种GPU渲染架构 二.Immediate Mode Rendering 1.说明 2.优点 3.缺点 三.Tile-Based Rendering ...

  8. 树莓派4B系列教程三 :优化配置

    树莓派4B系列教程三 :优化配置 写在前面 树莓派4B内存增加 CPU温度控制 显存优化 Chromuim缓存转移 优化自启程序 Chromium插件安装 离线安装插件时遇到的问题 结语 写在前面 不 ...

  9. 计算机游戏优化,盲目优化电脑竟让游戏帧数缩水一半——电脑优化心得谈

    原标题:盲目优化电脑竟让游戏帧数缩水一半--电脑优化心得谈 随着Windows操作系统的不断推出新版,所支持的各种软件.硬件的数量,几乎呈几何级增长,它的内核复杂程度,也达到了前所未有的情况.尤其是娱 ...

最新文章

  1. pmp考试必知的十个图和表
  2. nodejs应用错误消息PayloadTooLarge的处理
  3. ACM-ICPC 2018 徐州赛区网络预赛 D. EasyMath
  4. 分类预测回归预测_我们应该如何汇总分类预测?
  5. 消息中间件系列(八):Kafka、RocketMQ、RabbitMQ等的优劣势比较
  6. typescript的类型描述_TypeScript类型声明书写详解
  7. u-boot移植随笔:一些内存地址的研究(gd_t和bd_t结构体)
  8. 计算机网络学习socket--day3
  9. 【Demo 0003】Java基础-数组
  10. 源码安装Tomcat及配置
  11. 计算机硬件设计边界,基于JTAG的计算机硬件实验系统的设计与实现.pdf
  12. 2010湖南省第六界程序设计大赛 B题 --弟弟的作业(nyoj663)
  13. 【5】【心得】java 命令运行java程序 没有任何反应 编译没有报错
  14. 学习通视频enc生成方法
  15. Chrome划词插件-有道词典
  16. **matlab中grid、grid on 和grid off用法**
  17. 计算机病毒如何彻底去除,电脑中病毒最彻底的清除方法 彻底清理删除电脑病毒的几种简单方法...
  18. HDU 3966(树链剖分)
  19. R语言绘图基础篇-柱状图加误差棒
  20. 解决Chrome、360自动填充用户名和密码行为带来的困扰

热门文章

  1. 第二课、《抓包学习——美团评论》
  2. 看完全都会了!2021届毕业生还没找到Android开发工作,含BATJM大厂
  3. FLIR E95红外热像仪,带你走进建筑诊断解决方案
  4. 财务管理实战专家黄道雄老师
  5. 【滤波】基于最近邻算法实现多目标航迹关联附matlab代码
  6. 等离子气化技术优势分析
  7. MMdetection3d环境搭建、使用MMdetection3d做3D目标检测训练自己的数据集、测试、可视化,以及常见的错误
  8. html5页面可见xing,【 前端资源 网页插件 】全屏滚动效果H5FullscreenPage.js
  9. 计算机信息系统安全服务等级证.
  10. 计算机毕业设计Java疗养管理系统(源码+mysql数据库+系统+lw文档)