| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 深入了解Unity剔除(草稿) -> 正文阅读 |
|
[游戏开发]深入了解Unity剔除(草稿) |
????????剔除是渲染流程的一部分,也是渲染之前首先要做的事情,在Unity中提供摄像机视椎体剔除、遮挡剔除两种解决方案。这两种剔除检测都以摄像机为参考中心,而且每一帧都会执行剔除操作。剔除操作会检查场景中的渲染器,并排除那些不需要绘制的渲染器。 ????????默认情况下摄像机执行视椎体剔除,这个过程是排除那些不在摄像机视椎体范围内的渲染器。视椎体剔除不检查被渲染对象是否被遮挡,所以Unity会渲染那些最终帧中不可见的渲染器,仍然浪费时间渲染不可见的对象对于CPU和GPU是徒劳的。 ????????然而,遮挡剔除是Unity通过离线烘焙生成场景的有关数据,然后在运行时通过数据去分析渲染器的可见性,从而做到对可见的渲染器进行渲染。相应的代价是Unity需要更多的运行时内存来支持遮挡剔除功能。 概念? ? ? ? 遮挡剔除又分为静态遮挡剔除、动态剔除,主要的区别在于前者既可以同时作用于遮挡物也可以作为被遮挡物,而应用动态剔除的对象只能作为被遮挡物。其次,应用静态遮挡剔除的对象必须是场景中的静态对象,这意味着该对象在运行时不能移动,而动态剔除则不受此限制。再者,静态遮挡剔除会通过烘焙为场景生成分析数据,动态剔除则是在运行时根据对象轮廓和位置进行即时剔除操作。 静态遮挡剔除????????静态遮挡剔除只能应用于非运行时生成的场景对象,并且作用对象必须是静态遮挡物(Static Occluder)或静态被遮挡物(Static Occludee)其中一个,当然也允许一个对象同时是静态遮挡物和静态被遮挡物。 ????????应用静态遮挡物对象必须具备持有Terrain或Mesh Render组件、不透明、在运行时不移动。(提示:针对使用LOD的静态遮挡物,Unity会使用基础细节LOD0来作为静态遮挡物的轮廓,在该物体LOD0与其他LOD级别之间变化很大,那么会出现遮挡误差) ????????应用静态被遮挡物对象必须具备持有任何类型的Renderer组件、在运行时不移动。 开始使用1、我们在Unity工具栏中,从【窗口>渲染>遮挡剔除】菜单打开【遮挡】面板 2、在【遮挡】面板中切换到【对象】页签,并选中【Renderers】标签 3、在【层级】中选中需要设置的【对象】 4、在【遮挡】面板中,勾选Occluder Static(静态遮挡物) 和Occludee Static(静态被遮挡物) 5、在【遮挡】面板中点击【Bake】按钮,烘焙场景 6、最后在【Assets/Scenes/<Your Scene>】目录下会生成一份【OcclusionCullingData(遮挡剔除数据)】 ?效果Unity遮挡剔除 动态剔除【简介】 【开始使用】 【效果】 优化策略按需分配遮挡物与被遮挡物????????遮挡物跟摄像机进行交互计算,而被遮挡物跟遮挡区域进行交互验证,他们协作完成了遮挡剔除功能。一个物体即属于遮挡物又属于被遮挡物,那么它会参与两种交互。 选择合适的遮挡物 ????????遮挡物的特征是大,足以称得上掩体,且可以帮助提升渲染效率。一般中大型的场景元素作为遮挡物,像山体、树林、房屋、车辆、墙体、巨型摆件等都可以作为遮挡物,具体还要参照游戏世界的设定。 ????????不恰当的掩体车辆,在《模拟城市》这样的游戏设定中,车辆就不适合做遮挡物,因为车辆相对于整个世界来讲,渺小而又密集。 ????????不恰当的掩体环境山脉,在诸多户外游戏设定中为了衬托场景气氛,在地图边缘通常会用环境山脉将地图围起来,然而环境山脉背后通常就是天空盒,没有可遮挡物体,那么将他作为遮挡物就不划算。 ????????不恰当的掩体户外的巨型雕像,例如树立在主城中的一尊巨型雕像,在各个视角下其背后的可遮挡物寥寥无几,那么将它设定为遮挡物显然有些得不偿失。 选择合适的被遮挡物 ????????场景中的挂件、摆件、NPC、玩家、粒子特效都可以作为被遮挡物,那么被遮挡物的特征就是小,但不聚集。 ????????不恰当的被遮挡物,例如陈列柜子中的古玩,每个格子中都摆放着一个古玩,如果将每个古玩都作为一个被遮挡物,那么显然会浪费CPU的效能,最好的办法是将陈列柜作为被遮挡物。 More... ???????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 22:32:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |