| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> U3D性能优化之实例化渲染(GPU Instancing) -> 正文阅读 |
|
[游戏开发]U3D性能优化之实例化渲染(GPU Instancing) |
GPU Instancing原理:
GPU Instancing条件:①使用相同材质②使用相同Mesh③正在视野中 GPU Instancing的适用范围:①大规模小物件渲染,同时有需要表现物件间的异样性,如花草 GPU Instancing能优化性能的原因: ①降低DrawCall ②降低SetPass calls GPU Instancing的缺点: ①比起静态/动态合批,GPU Instancing可以规避合并Mesh导致的内存与性能上升的问题,但是由于场景中所有符合该合批条件的渲染物体的信息每帧都要被重新创建,并放入"统一/常量缓冲区"中,而碍于缓存区的大小限制,每一个Constant Buffer的大小要严格限制(不得大于64k) GPU Instancing失败的情况: ①缩放为负值 ②代码动态改动材质变量 ③受限于常量缓冲区在不同设备上的大小的上限 ④只支持一盏实时光,要在多个光源的情况下使用实例化,只能切换到延迟渲染路径,为了能够让这套机制运作起来,请将所需的编译器指令添加到我们着色器的延迟渲染通道中 GPU Instancing中断的情况: ①位置不相邻且中间夹杂着不同材质的其他物体 ②一个批次超过1023个物体 ③优先静态批处理,然后才到GPU Instancing 下面是GPU Instancing的实操 ①先创建一个Material,并勾选"Enable GPU Instancing" ②搭建一个简单的场景,如下图 ③脚本Spawner的代码内容如下
④点击运行可以看到Stats界面中,Batches为148,Saved by batching为49854,SetPass calls为3,优化效果非常不错 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 18:45:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |