(译)SRP Batcher Speed up your rendering!
推荐去个人网站或者原文观阅文章,因为文章中有嵌入式视频:
https://www.lfzxb.top/srp-batcher-speed-up-your-rendering/
本文翻译自:SRP Batcher: Speed up your rendering! 和 https://docs.unity3d.com/Manual/SRPBatcher.html
在2018,我们介绍了一个被称为SRP的高度自定义的渲染技术,一个被称为SRP Batcher新的引擎底层Loop就是这个技术的一部分,SRP Batcher可以在渲染时加速你的CPU 1.2到4倍(这取决于你的场景)。让我们看看如何这个功能的最佳实践吧!
上面那个视频显示了Unity渲染时最坏的一个场景:每个对象都是动态的,并且使用不同的材质(材质的颜色或者贴图等属性不同),所以尽管非常多相同的Mesh,但是在渲染时每个Mesh都会被当成不同的Mesh进行渲染(所以无法使用GPU Instance优化技术)。这个场景使用SRP Batcher在PS4平台上可以加速4倍(这个视频是PC的,渲染API是DX11)
注意:当 ...
《守望先锋》GDC2017技术分享精粹重制版总目录
本文章已于2022.2.1更新,新增了每个视频的内容大纲所对应的时间点内容,以及个人对视频片段简单的内容概括
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,上传了武器和技能系统PDF,一些必要的地方我录制了Gif图,方便观看。
《守望先锋》GDC 2017技术分享视频内容大纲
《守望先锋》架构设计和网络同步
原视频链接
《守望先锋》回放技术-阵亡镜头、全场最佳和亮眼表现
原视频链接
《守望先锋》网络脚本化的武器和技能系统
原视频链接
《守望先锋》架构设计和网络同步
前言
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,一些必要的地方我录制了Gif图,方便观看。
全系列链接:《守望先锋》GDC2017技术分享精粹重制版总目录
原视频链接:https://www.youtube.com/watch?v=W3aieHjyNvw&t=2886s&ab_channel=GDC
ECS
ECS概述
哈喽,大家好,这次的分享是关于《守望先锋》(译注:下文统一简称为Overwatch)游戏架构设计和网络部分。老规矩,手机调成静音;离开时记得填写调查问卷;换下半藏,赶紧推车!(众笑)
我是Tim Ford,是暴雪公司Overwatch开发团队老大。自从2013年夏季项目启动以来就在这个团队了。在那之前,我在《Titan》项目组,不过这次分享跟Titan没有半毛钱关系。(众笑)
这次分享的一些技术,是用来降低不停增长 ...
《守望先锋》网络脚本化的武器和技能系统
前言
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,一些必要的地方我录制了Gif图,方便观看。
全系列链接:《守望先锋》GDC2017技术分享精粹重制版总目录
原PDF链接:本文部分图片如果想查看高清大图,可前往 《守望先锋》中网络脚本化的武器和技能系统 PDF 下载PDF
原视频链接:https://www.youtube.com/watch?v=ScyZjcjTlA4&ab_channel=GDC
嗨,大家好,我叫 Dan Reed, 是暴雪娱乐的游戏工程师(gameplay engineer,译注:游戏机制工程师,或者游戏工程师,都可以),今天主要跟大家分享《守望先锋》(后面统一用Overwatch表示)中的网络脚本化的武器和技能系统。
那么这里先简单介绍下我在Overwatch中的主要工作。
Statescript脚本系统,这也是今天 ...
《守望先锋》回放技术-阵亡镜头、全场最佳和亮眼表现
前言
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,一些必要的地方我录制了Gif图,方便观看。
全系列链接:《守望先锋》GDC2017技术分享精粹重制版总目录
原视频链接:https://www.youtube.com/watch?v=W4oZq4tn57w&ab_channel=GDC
设计目标
那么回放系统的概要设计(high level design)目标是什么呢?
这次分享的标题就预示着必须给出答案,对吧?概要需求是创建一个单一的中央系统,能够支持阵亡镜头、全场最佳和亮眼表现,除此之外我们还特别需要能够生成录像文件,在开发期间可以用来做内部调试。
下面开始深入介绍每个议题。
每次玩家死亡时,游戏里就会显示临死前几秒钟的――大部分情况是以凶手(killer)视角来看的――死因及死亡过程。阵亡镜头可以帮助玩家理解他们是怎么死的,以及为什么 ...
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. 大招帅,还能刷新连劈
视频链接们
炸胡视频:
记一次检测到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' ...
给想入行游戏行业学弟学妹们的一封信
本文章已于2024.7.7更新,原因是被校园卡的高额月消费搞得焦头烂额,废了好大劲才处理好。
前言
大家好,我是一位来自南京二本院校的CS专业的大四学生,你们可以叫我烟雨。这篇博客主要分享我的大学学习/生活历程和建议,以及对于一些想作为一名程序员进入游戏行业的人的建议。
本篇博客仅仅是建议,仅供参考,每人有自己的人生观,价值观,人生路线规划,我也尊重每个人的人生观,价值观,人生路线的规划,如果某些言辞刺痛了你,我提前道歉。
目标人群
仅限在校大学生。
正文
行业介绍
在游戏行业,细分了很多工种,比重比较大的,有GamePlay程序员,策划,美术,测试,当然还有比较稀缺但珍贵的技术美术(TA),这也是我当前在努力的方向和目标,由于我本身学习路线是属于GamePlay工种,所以主要讲Gameplay方面的内容了。
先给大家大体介绍一下这几个工种的具体分工吧
GamePlay程序员:主要负责游戏逻辑代码的编写,功能/架构的开发,插件开发
策划:策划游戏的玩法,战斗系统,游戏的活动
美术:主要负责提供游戏中的美术素材,比如我们看到游戏中的UI,模型,特效等
测试:负责对程序功能进 ...