Terrain Streaming
可以用WorldCreator创建Tile地形,然后用WorldStreamer实现分块地图。比如10000*10000(16平方公里) 的地形,需要1000*1000的100个地块。如果每次加载9个格子,那么同时载入的地块大小为3000*3000大小——比一次加载100000*10000要省掉 90%的数据——如果直接加载10000*10000估计Unity要跪了。似乎也可以500*500,加载25个地块(保证1000左右的视野),总体数量要更小一些,但是地图分块却更多了(400个)。
 
(一)基础设置
如果想要分页读取Terrain,需要先把大块Terrain处理成小块,我使用的是WorldCreator Pro(189美金,巨贵无比)可以直接搞定这一步。
下面就需要思考了:
(1)不使用MeshTerrain作为低模LOD,那么推荐3*3地表块,每个地表块的Size应该比FOV的最远距离高个10%左右,以尽量使玩家不会看到地形加载的过程。
(2)使用Ring模式和低模LOG,可以使用较多的Load Range。
(3)纯MeshTerrain,通常用于移动游戏。
 
接下来的例子中我设置了一个6*6*500*500的地图分块,每个分块是一个500*500的Unity Terrain
 
 
注意每个分块的位置,应该是500的正数倍。
 
Streamer设置:
通常Terrain作为Major Streamer。如果还需要模型Terrain,那么其将设置为Minor Streamer,因为Major只能有一个。
把指定的SceneCollection Prefab赋值给Streamer,就完成了Streamer与Scene Clips之间的联动。
 
如果使用Unity Terrain,需要把Terrain Neighbour脚本添加到MajorStreamer对象,并关联他们。
 
(二)使用RingStreaming 和 MeshTerrain 作为Terrain的LOD
首先你需要一个插件叫做Terrain To Mesh(https://www.assetstore.unity3d.com/cn/#!/content/47276)有钱的请支持正版,没钱的可以去淘宝买个盗版……
这个后期效率更不上的时候,可以搞一搞:).前期先不弄了。
这段官方说了一堆废话,其实关键就是
MajorStreamer,不设置Ring Streamer,读取范围是 0~N
MinorStreamer,设置RingSteamer,外圈读取范围是0~M(M>N),内圈起始范围设置为N+1,确保外圈实际范围是N+1~M。
也就是外圈低模和内圈高模,加起来是完整的,需要读取的地块。
 
(三)UnityTerrain优化议题
使用RingStreaming和低模Terrain,烘焙好的树木
看不见的Terrain Disable掉(比如背后的)可以使用TerrainCullingSystem
使用优化的树木管理工具:Critias Tree System
如果TextureStreaming出现问题,可以去设置"Async Upload Time Slice" 和 "Async Upload Buffer Size"
 
 

Unity 场景分页插件 World Streamer 支持无限大地图的解决方案(二)的更多相关文章

  1. SpringBoot添加对Mybatis分页插件PageHelper的支持

    1.修改maven配置文件pom.xml,添加对pageHelper的支持: <!--pagehelper--> <dependency> <groupId>com ...

  2. MyBatis学习总结_17_Mybatis分页插件PageHelper

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...

  3. Mybatis学习---Mybatis分页插件 - PageHelper

    1. Mybatis分页插件 - PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,S ...

  4. MyBatis学习总结(17)——Mybatis分页插件PageHelper

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...

  5. (转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示

    http://blog.csdn.net/yerenyuan_pku/article/details/72774381 上文我们实现了展示后台页面的功能,而本文我们实现的主要功能是展示商品列表,大家要 ...

  6. Mybatis分页插件PageHelper的学习与使用

    目录 中文教程 PageHelper使用 后端程序员都知道,在Web系统中,分页是一种常见的功能,我之前写的分页方法都比较麻烦,移植性也不高,这就很不乐观了.作为一个积极开朗的程序员,怎么能不去了解P ...

  7. mybatis分页插件PageHelp的使用

    1.简介 ​ PageHelper 是国内非常优秀的一款开源的 mybatis 分页插件,它支持基本主流与常用的数据库,例如 mysql.oracle.mariaDB.DB2.SQLite.Hsqld ...

  8. 自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

    闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分 ...

  9. jq分页插件,支持动态,静态分页的插件,简单易用。

    工作中经常要用到分页功能.为了方便封装了一个比较通用的分页插件开源出来了,简单易用. 官网:https://cwlch.github.io/Ch_Paging 下载地址:https://github. ...

随机推荐

  1. Spring Cloud Config中文文档

    https://springcloud.cc/spring-cloud-config.html 目录 快速开始 客户端使用 Spring Cloud Config服务器 环境库 健康指标 安全 加密和 ...

  2. c#从基础学起string.Join(",", keys.ToArray())

    总感觉自己工作6年了,经验丰富.直到近期报了一个.net进阶班才知道.我还差得很远.就拿string.join对比 我的代码: public static int InsertModel<T&g ...

  3. APP-4-百度地图定位

    APP-3-百度地图应用 需要根据上一步完成百度地图应用的测试,本文介绍Hbuilder通过MUI框架完成百度地图的定位. 1.代码部分 <!DOCTYPE html> <html& ...

  4. delphi 新版内存表 FDMemTable

    c++builder XE 官方demo最全60多个 http://community.embarcadero.com/blogs?view=entry&id=8761 FireDAC.Com ...

  5. 【转】WinDbg调试器:启动程序时自动连接调试器方法

    当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft ...

  6. JAVAWEB 一一 Sturts2+ibatis(框架,Sturts2,用action代替servlet)

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...

  7. Ajax 学习 第四篇

    使用jQuery实现Ajax 跨域

  8. powerdesiner技巧

    1.name和code同步问题和name成comments http://blog.csdn.net/huang_xw/article/details/5722981 2.连接数据库

  9. (Unity4.7)assetbundle 坑爹总结

    使用版本Unity4.7 一.关于依赖打包 1.当一个被打包的资源A引用了其他的资源B,并且没有被打成一个包时,要选用[BuildAssetBundleOptions.CollectDependenc ...

  10. MATLAB总结二

    1.如何将一个多项式中的系数按照幂次提取出来? sym2poly(ans) %ans为一个多项式. 2.在写第二份模式识别的大作业时遇到如下困难: 每个样本贡献给总概率的是一个关于x的表达式,我将所有 ...