URP下基于后处理的热空气扭曲效果
前言
前几天在网上看到一位大神的 Unity Shader-热空气扭曲效果 文章,感觉应该是个常见的效果,所以准备在URP里实现一下,正好再次深入使用一下URP,期间也遇到了一些匪夷所思的坑,也会在文章中说明。
原文中的全屏扭曲和基于GrabPass的方式都省略不谈,这里来用URP实现一下基于后处理的热空气扭曲。
环境
URP版本:7.3.1
Unity版本:2019.4.8f1
正文
原文中的实现核心思路是在需要扭曲的地方摆放一个面片,然后将这个面片渲染到一张RenderTexture上作为Mask,后处理的时候以Mask为基准决定ColorTexture哪些地方需要扭曲,然后对一张Noise图进行采样,对目标像素做偏移,达到扭曲的效果。
仔细分析后发现其实就一个难点,就是如何在URP下将物体渲染到一个RenderTexture上。
恰巧前阵子 研究战争迷雾 的时候看到了这篇文章:流朔 -【Unity URP】以Render Feature实现卡通渲染中的刘海投影 ,其中就有将物体渲染到RenderTexture的相关操作,这样一来就没有问题了,开搞。
首先创建一个Rende ...
基于URP屏幕空间采样与JobSystem加速的战争迷雾
本文章已于2021.9.24更新,提供一个JobSystem加速示例。
本文章已于2021.3.23更新,将用到的Shader代码转为HLSL语言,支持SRP Batcher(虽然在这里并没有什么卵用),优化模糊Blit次数。
前言
这阵子在研究战争迷雾相关的内容,在网上找了一些文章和开源库,主要有两种做法:
一是直接在场景上放一张大面片,用作迷雾,这种方式适用于相机角度不会发生改变的情况,否则会有穿帮的风险,但这种方案性能比较好。
二是基于屏幕空间对迷雾纹理进行采样,然后通过后处理的方式得到最终游戏画面,这种方案最为稳妥,但相应的性能会低一些。
但是网上找得到的战争迷雾方案全都是Built-In管线下进行的,那么对于基于屏幕后处理的战争迷雾,就会不可避免的涉及到OnRenderImage和Blit操作,这些操作在默认不指定相机RenderTexture的情况下会涉及对GPU中的FrameBuffer进行拷贝 + 和CPU与GPU之间的数据传递,都是比较消耗性能的操作,需要尽量减少,单一个战争迷雾可能还好,后处理特效多起来后,对于移动平台来说,本就不富裕的带宽再次雪上加霜。 ...
LOL:诺克各个流派以及连招汇总
前言
我个人非常喜欢诺克这个英雄,原因是多方面的 1. 他会回血 2. 伤害高 3. 坦度高 4. 大招帅,还能刷新连劈
视频链接们
炸胡视频:
给想入行游戏行业学弟学妹们的一封信
本文章已于2024.7.7更新,原因是被校园卡的高额月消费搞得焦头烂额,废了好大劲才处理好。
前言
大家好,我是一位来自南京二本院校的CS专业的大四学生,你们可以叫我烟雨。这篇博客主要分享我的大学学习/生活历程和建议,以及对于一些想作为一名程序员进入游戏行业的人的建议。
本篇博客仅仅是建议,仅供参考,每人有自己的人生观,价值观,人生路线规划,我也尊重每个人的人生观,价值观,人生路线的规划,如果某些言辞刺痛了你,我提前道歉。
目标人群
仅限在校大学生。
正文
行业介绍
在游戏行业,细分了很多工种,比重比较大的,有GamePlay程序员,策划,美术,测试,当然还有比较稀缺但珍贵的技术美术(TA),这也是我当前在努力的方向和目标,由于我本身学习路线是属于GamePlay工种,所以主要讲Gameplay方面的内容了。
先给大家大体介绍一下这几个工种的具体分工吧
GamePlay程序员:主要负责游戏逻辑代码的编写,功能/架构的开发,插件开发
策划:策划游戏的玩法,战斗系统,游戏的活动
美术:主要负责提供游戏中的美术素材,比如我们看到游戏中的UI,模型,特效等
测试:负责对程序功能进 ...
记一次检测到Mac文件格式请将源文件转换为DOS格式或UNIX格式解决方案
前言
事情起因是在用Lua根据文件模板生成CPP过程中出现的问题。 文件是正常生成了,但是编译遇到了错误,报错就是检测到Mac文件格式:请将源文件转换为DOS格式或UNIX格式
查找问题
几番百度谷歌,大家一致认为是每行末尾的CR LF出了问题
在Windows下换行使用CRLF两个字符来表示,其中CR为回车(ASCII=0x0D),LF为换行(ASCII=0x0A)
但是无论是记事本和IDE都无法显示这两个字符 网上说Notepad++可以显示
我试了下,可行!
到这里问题就很明显了,就是有部分文本行结尾是CR,而不是Windows标准的CRLF 但是问题出在哪呢? 文件模板没问题
我在Lua那边的字符串拼接(..)和替换(string.gsub)过程打印了一下,也都是正常的字符串 那问题只可能出在最后的往文件内写入字符串(file:write)了 想了想原因,应该是我直接整个读入的文件模板,而不是逐行读入,造成了写入文件过程中他会自动用CR分割每行内容,所以就出现了这个问题
解决问题
找到问题根源就很好解决了,我们只需要在最后写入文件前,逐行替换'\r'为'\n' ...
《大贵族》观后感
推荐大家配合音乐食用嗷(国际惯例,不含剧透)!
正文
今天偶然在QQ看点刷到了《大贵族》的片段,里面几个主要角色颜值都很高,遂决定去看看这部动漫,结果确实没有让我失望,剧情,画面皆属上乘。(我是很少写动漫观后感的嗷)
动漫大体脉络还是男主龙傲天开局,但动漫整体风格偏阴暗,甚至可以说是残酷。人类也好,吸血鬼也好,改造人也好,每个人都有自己想要守护的东西,都想努力的活下去。
最难得可贵的地方是它能够将每个主要角色的形象和情感都刻画的非常丰满,真实。顺带提一句,剧中有多达10余个主要角色。
剧情不拖沓,但也没有太明显的类似一些动漫因为赶进度而过于激进的推进,节奏很舒服。
男主莱的人格塑造的很有魅力,为了大贵族的责任,甘愿承受百年孤独,直到遇到了因与吸血鬼抗争而身负重伤而逃入自己城堡的管家。
很优秀的一部动漫,十分推荐大家去观看!
Unity Shader入门精要学习笔记:Unity中的渲染优化技术
影响性能的因素
对于一个游戏来说,它主要需要使用两种计算资源,CPU和GPU,他们会互相合作,来让我们游戏可以在预期的帧率和分辨率下工作。
所以,我们可以把造成游戏性能瓶颈的主要原因分成以下几个方面
-CPU
– 过多的draw call
– 复杂的脚本或者物理模拟
-GPU
– 顶点处理
– - 过多的顶点
– - 过多的逐顶点计算
– 片元处理
– - 过多的片元
– - 过多的逐片元计算
-带宽
– 使用了尺寸很大且未压缩的纹理
– 分辨率过高的帧缓存
对于CPU来说,限制它的主要是每一帧中draw call的数目,draw call简单来说就是CPU在每次通知GPU进行渲染之前,都需要提前准备好顶点数据(如位置,法线,颜色,纹理坐标等),然后调用一系列API把它们放到GPU可以访问的指定位置,最后调用一个绘制命令,而调用绘制命令时,就会产生一个draw call,过多的draw call会造成CPU的性能瓶颈。
对于GPU来说,它负责整个渲染流水线,它从处理CPU传递过来的模型数据开始,进行顶点着色器,片元着色器等一系列工作,最后输出屏幕上的每个像素,因此CPU的性能瓶颈和 ...
奥日&&空洞玩后感
最近游戏荒了,很想找点游戏玩玩,请教了群友们,都是推荐了那些3A大作,怪猎,刺客信条,只狼,黑魂之类的,讲道理这些作品虽然很优秀但是并不合我胃口,遂还是自己找,正当我在Steam里翻箱倒柜的时候,脑子里突然冒出奥日这两个字眼,因为前阵子正好看到 《奥日与精灵意志》是如何完成近乎不可能的Switch移植任务的?这一文章,加上更前些日子里在B站看到的一些关于奥日的评测,唯美的宛如艺术品一般的画质已经让我急不可耐了。
奥日启动!
游戏的起始界面就是宏大的场景,微风,森林,暖阳,非常的清新漂亮,配上类似笛子和萧制作的背景音乐,就这一招,就把我折服了。
剧情
然后进入游戏流程,故事线就不说了,防止剧透。
描述的是一个小精灵拯救这个世界的故事,剧情算是中规中矩。
画面
游戏整体采用2D+3D的渲染模式,加上各种法线贴图,光照贴图让游戏中的画面非常类似全3D制作的,各种光效,关节动画,拖影都恰到好处,对于我来说是无可挑剔的画面了。
音效
音效也是非常的赞,包括跑动,跳跃,与物体进行交互的时候给人非常舒适的感觉。
尤其在Boss战的时候切换到紧张刺激的BGM为战斗增色不少,刺激度++
关卡 ...
个人对于游戏UI架构的思考与总结
前言
这阵子我的开源Moba项目要开始着手准备客户端的表现工作了,后端的逻辑基本上没有太大的问题。
如果对这个项目感兴趣的可以去看一下
谈及客户端表现,UI是必不可少的一环,那么选定一个好的UI解决方案和框架就更加重要了。
对于解决方案,我们耳熟能详的有UGUI,FGUI,NGUI等。
对于UI框架,基本架构基本上就是MVC,MVVM这种MV*系列的框架。
在此之前,我并没有对这些UI框架的使用经验,所以就趁此机会好好学习一下。
UI解决方案的选择
UGUI
原生的UGUI似乎是一个好的选择,因为官方在一直维护,各个方面都有保障,但是许多功能需要自己重新造轮子,对于没有模块积累的人来说可能有些麻烦。
NGUI
与UGUI还是有比较大的差别的,有一些轮子,拓展模块,底层也做了一些调整和优化。不过近几年势头越来越弱了,本身也不打算选择,如果UGUI和NGUI选一个,我会选UGUI。
FGUI
FGUI全名FairyGUI,是一个开源的,跨平台UI解决方案,它包含几乎所有游戏UI常用功能,易于拓展,性能优秀,可以做到一次导出,各处使用,开发效率也很高。无疑更加适合独立游戏团队或者 ...
那些年我喜欢的主播——曾经的我长大了,他们却不在了
今天天气很好,但是昨天睡得很晚,第一节又有课,7:50就起床了,所以很困。 但是又不想午睡,把玩的时间浪费在睡觉上总有点不合适,那干什么呢? LOL?不想玩,太累了。 看直播吧,嗯小C不错,但是总感觉少了点什么,哦,不知道什么时候阿亮已经不在了,看了一会,除了那略显做作的大吼大叫,已经没什么节目效果了吧。带着略微烦躁的心情推出了直播间。
发了一会呆,突然想起,去看看曾经的那些主播吧。
最先想起的是猴哥,曾经和老王闹掰之后人气就再也回不来了了,直播间也尘封已久了。
老王其实现在也还行,在企鹅直播,当年可是龙珠LOL区霸主级别的主播,虽然现企鹅人气大不如前,不过相对于其他主播来说处境已经很好了。
城管希,曾经的观赏性极强的王者AP蛮王,也早就不在了,据说考上公务员之后就停播了。
马老C现在热度还行,靠着B站那几个传菜的互相反哺,经营的不错,不过这种情况还能维持多久呢?
LOL区就这么多吧,接下来是从高中玩到大学的英魂之刃
首先想到的是LS小妖,当时的童年女神哦,其实在上高中的时候偶然瞥见了一次她的直播,没有了当年的清纯,浓妆艳抹的样子。现在在各个平台也找不到了,据说是擦边球违规被封了。
然 ...