Unity Fine Prued Tiled Light (FPTL)

Fine Prued Tiled Light Lists

视频讲解:https://www.bilibili.com/video/av90517615


FPT是在Tile裁剪的基础上在进行一次剔除
可用于Forward Render和Deferred Shading两种渲染管线
利用了并行架构进行优化
将线程分为线程组再分为多个线程,Thread Group中线程可以同步,做到每个算法单元的同步(要考虑到硬件性能)。在指定线程组中的线程数量时,大小要小于等于1024,AMD中为64的倍数,intel中为32的倍数
CPU和GPU数据传递通过Computer Buffer(同步,需等待结束,在Editor中也可以使用,但是性能较差)
GPU和renderpipeline数据传递通过RWStructured Buffer(在GPU中传递)
一般步骤
对于每个相机
CPU端查找所有与视椎体相交的光源列表,并排序
GPU端计算在屏幕空间下光源的AABB
将屏幕分成16*16px per Tile
通过screenXY计算Tile的数量
那么1个Tile=1个thread group=64个线程
计算depth-buffer中的最大与最小深度(与线程同步)
得到min,max后,将相交光源的index存入Light List
做fine prued裁剪(判断是否在光源形状中,检查光源的类型,一条线程1个像素、一条线程4个光源,用Or操作最后储存的位数据)
在最终的渲染中使用该光源
Tips
首先在HDRP中要开启该功能(在Assets中)
因为需要深度值,所以只能用于不透明物体
在deferred中强制开启,透明物体使用clustered
在forward中选择开启,透明物体使用clustered
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 2017 Game Optimization 读书笔记(1)Scripting Strategies Part 1

1.Obtain Components using the fastest method Unity有多种Getcomponet的方法&#xff1a; GetComponent(string), GetComponent<T>() GetComponent(typeof(T)) 哪种效率最高会跟随Unity版本的变化而变化&#xff0c;对于Unity 2017&#xff0c;本书作者的测试是Ge…

C# 多态相关的文章

一 C# 多态的实现 封装、继承、多态&#xff0c;面向对象的三大特性&#xff0c;前两项理解相对容易&#xff0c;但要理解多态&#xff0c;特别是深入的了解&#xff0c;对于初学者而言可能就会有一定困难了。我一直认为学习OO的最好方法就是结合实践&#xff0c;封装、继承在…

C++ 虚函数和虚表

几篇写的不错的文章&#xff0c;本文是整合了这几篇文章&#xff0c;感谢这些大佬 https://www.jianshu.com/p/00dc0d939119 https://www.cnblogs.com/hushpa/p/5707475.html https://www.jianshu.com/p/91227e99dfd7 多态: 多态是面相对象语言一个重要的特性,多态即让同一…

Unity 2017 Game Optimization 读书笔记(2)Scripting Strategies Part 2

1. Share calculation output 和上一个Tip很像&#xff0c;可以缓存计算结果或者各种信息&#xff0c;避免多次重复的计算&#xff0c;例如在场景里查找一个物体&#xff0c;从文件读取数据&#xff0c;解析Json等等。 容易忽略的点是常常在基类了实现了某个方法&#xff0c;在…

Unity 2017 Game Optimization 读书笔记(3)Scripting Strategies Part 3

1.Avoid retrieving string properties from GameObjects 通常来讲&#xff0c;从C#的object中获取string 属性没有额外的内存开销&#xff0c;但是从Unity中的Gameobject获取string属性不一样&#xff0c;这会产生上一篇讲到的 Native-Managed Bridge&#xff08;Native内存和…

Unity 2017 Game Optimization 读书笔记(4)Scripting Strategies Part 4

1.Avoid Find() and SendMessage() at runtime SendMessage() 方法和 GameObject.Find() 相关的一系列方法都是开销非常大的。SendMessage()函数调用的耗时大约是一个普通函数调用的2000倍&#xff0c;GameObject.Find() 则和场景的复杂度相关&#xff0c;场景越复杂&#xff0…

团队行为心理学读书笔记(1)

阿伯拉罕马斯洛需求五个层次&#xff1a; &#xff08;1&#xff09;生理需要&#xff1a;食物、水、住所、性满足等方面的需要。 &#xff08;2&#xff09;安全需要&#xff1a;保护自己免受身体和情感伤害的需要。 &#xff08;3&#xff09;爱和归属的需要&#xff1a;渴…

团队行为心理学读书笔记(2)招聘背后的心理学

招聘时&#xff0c;不要只看应聘者的知识和技能 美国著名心理学家麦克利兰1973年提出了一个著名的素质冰山模型。所谓“冰山模型”&#xff0c;就是将人员个体素质的不同表现形式划分为表面的“冰山以上部分”和深藏的“冰山以下部分”。其中&#xff0c;冰山以上部分包括基本…

团队行为心理学读书笔记(3)领导力背后的行为心理学

有小缺点的主管&#xff0c;在下属眼里更有魅力 一位心理学教授曾做了一个关于管理者魅力的实验&#xff0c;他给被测试的对象播放了四段情节类似的访谈录像&#xff1a;出现在第一段录像里的是一个非常优秀的成功人士&#xff0c;他成就辉煌&#xff0c;面对主持人的采访&…

团队行为心理学读书笔记(4)带队伍背后的行为心理学

成就高效团队的基础&#xff1a;信任 信任具有三个特征&#xff1a;第一&#xff0c;信任者承担着一定的风险&#xff0c;信任者要承受被信任者失信的损失&#xff1b;第二&#xff0c;被信任者的行为不在信任者的控制之内&#xff1b;第三&#xff0c;如果某一方违约&#xf…

Unity HDRP中的光照烘焙测试(Mixed Lighing )和间接光

部分内容摘抄自&#xff1a;https://www.cnblogs.com/murongxiaopifu/p/8553367.html 直接光和间接光 大家都知道在Unity中&#xff0c;我们可以在场景中布置方向光、点光、聚光等类型的光源。但如果只有这些光&#xff0c;则场景内只会受到直接光的影响&#xff0c;而所谓的…

聊聊Unity项目管理的那些事:Git-flow和Unity

感谢原作者https://www.cnblogs.com/murongxiaopifu/p/6086849.html 0x00 前言 目前所在的团队实行敏捷开发已经有了一段时间了。敏捷开发中重要的一个话题便是如何对项目进行恰当的版本管理。项目从最初使用svn到之后的Git One Track策略再到现在的GitFlow策略&#xff0c;中…

聊聊网络游戏同步那点事

写的非常好的一篇博文&#xff0c;转载自https://www.cnblogs.com/murongxiaopifu/p/6376234.html 0x00 前言 16年年底的时候我从当时的公司离职&#xff0c;来到了目前任职的一家更专注于游戏开发的公司。接手的是一个platform游戏项目&#xff0c;基本情况是之前的团队完成…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics(1)

The Rendering Pipeline 渲染表现差有可能取决于CPU端&#xff08;CPU Bound&#xff09;也有可能取决于GPU(GPU Bound).调查CPU-bound的问题相对简单&#xff0c;因为CPU端的工作就是从硬盘或者内存中加载数据并且调用图形APU指令。想找到GPU-bound的原因会困难很多&#xff…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics(2)

Lighting and Shadowing 现代的游戏中&#xff0c;基本没有物体能在一步就完成渲染&#xff0c;这是因为有光照和阴影的关系。光照和阴影的渲染在Fragment Shader中需要额外的pass。 首先要设置场景中的Shadow Casters和Shadow Receivers&#xff0c;Shadow Casters投射阴影&…

Unity 2017 Game Optimization 读书笔记 The Benefits of Batching

batching&#xff08;合批&#xff09; 和大量的描述一个3D物体的数据有关系&#xff0c;比如meshes&#xff0c;verices&#xff0c;edges&#xff0c;UV coordinates 以及其他不同类型的数据。在Unity中谈论batching&#xff0c;指的是用于合批mesh数据的两个东西&#xff1a…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (3)

Rendering performance enhancements Enable/Disable GPU Skinning 开启GPU Skinning可以减轻CPU或GPU中Front End部分中某一个的负担&#xff0c;但是会加重另一个的负担。Skinning是mesh中的顶点根据动画中骨骼的当前位置进行计算&#xff0c;从而让角色摆出正确的姿势。 …

Unity手游开发札记——布料系统原理浅析和在Unity手游中的应用

原文&#xff1a;https://zhuanlan.zhihu.com/p/28644618 0. 前言 项目技术测试结束之后&#xff0c;各种美术效果提升的需求逐渐成为后续开发的重点&#xff0c;角色效果部分的提升目标之一便是在角色选择/展示界面为玩家提供更高的品质感&#xff0c;于是可以提供动态效果的…

行为树(Behavior Tree)实践(1)– 基本概念

原文&#xff1a;http://www.aisharing.com/archives/90 行为树&#xff08;Behavior Tree&#xff09;实践&#xff08;1&#xff09;– 基本概念 自从开博以来&#xff0c;每天都会关心一下博客的访问情况&#xff0c;看到一些朋友的订阅或者访问&#xff0c;不胜欣喜&…

Unity 2017 Game Optimization 读书笔记 Dynamic Graphics (4)

Optimizing Unity UI 本章讲探讨一些能够提升UGUI性能的优化方法。 1.Use more Canvases 一个Canvas的主要任务就是管理它层级下的所有UI元素&#xff0c;并且通过Draw Call去渲染它们。其中Canvas一个重要的事儿就是对这些元素进行合批来减少draw call。但是如果对Canvas或…