avatar
文章
19
标签
13
分类
27
Home
Archives
Tags
Categories
About
雪之湖畔-SnowyLakeSide为美好的URP献上解析[0x00]: 管线架构 返回首页
搜索
Home
Archives
Tags
Categories
About

为美好的URP献上解析[0x00]: 管线架构

发表于2023-06-12|更新于2024-05-20|Game EngineUnityURP/SnowyOwl
|浏览量:
文章作者: SnowyLake
文章链接: https://snowylake.net/post/urp-analysis-0x00-pipeline-framework.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 雪之湖畔-SnowyLakeSide!
RenderingUnityURPCSharp
上一篇
SnowyArkEngine开发笔记[0x00]: 写在最前
下一篇
建站记录
建这个网站的初衷是因为自己知乎被连续封了几次, 以至于让我对这类非可控的平台产生了大量不信任感, 再加之我个人的知乎账号掺杂了大量的非技术相关内容, 所以尽管我在知乎也写了一些技术文章, 但仍并不方便将来贴在简历上. 总总原因驱使下, 在综合考量了云服务器+Wordpress和GitHubPages+Hexo两种方案后, 我还是选择了更为轻便的后者, 毕竟对我而言只是需要一个发布文章与随想的、完全可控的平台罢了, 没必要去折腾什么服务器. 技术选型到此为止, 剩下的便是具体实现了. 这篇文章便是用来记录我的建站流程以及踩到的一些小坑. 顺便一提, 这个网站就叫作SnowyLakeSide好了, 中文名雪之湖畔, 一个独属于我(SnowyLake/雪湖)、面向互联网的小小浅滩. Github Pages创建 这一步非常简单, 其实本质就是创建一个名为 snowylake.github.io 的repo, 只是要求前缀与github用户名相同. 创建之后实际上我们就已经可以通过repo名访问网站了, 但应该是空空如也的. 然后就可以暂时放在这里不管了, 甚至都不需要clone到本...
相关推荐
2023-09-11
URP延迟渲染+Native Renderpass踩坑记录
过去两周多折腾URP Deferred + Native Renderpass, 踩了无数的坑, 翻遍国内国外的社区也找不到太多可供参考的资料. 于是在这里简述一下一些不可回避的问题以及其解决方案, 也算是为社区做点贡献. 在开始之前, 我想延迟渲染这种烂大街的玩意就没什么讲的必要了, 而Native Renderpass可能不少人没听过, 这东西底层调用的其实就是vulkan的renderpass/subpass API(metal也有类似的一套), 简单来说就是利用移动端TB(D)R的硬件架构, 相比于传统延迟管线在basepass结束后将gbuffer store回system memory, 之后再在lightpass中load回来这种带宽压力极大的方案, Native Renderpass可以在每个tile的basepass结束后将gbuffer保存在On-Chip Memory上, 以供接下来的lightpass直接使用, 直接优化掉了两个pass之间的store/load操作, 极大减缓了带宽压力, 这种形式的rt也被称之为memoryless. 简单科普到此为止...
2024-09-15
聊聊UI分辨率分离与线性空间下的GammaUI
整理了下近期以及过去做过的这方面的一些功能, 挑出点有意思的东西或思路谈谈. 这篇没有什么代码之类的东西, 就纯是碎碎念. UI 分辨率分离 这年头在移动端做 3D 游戏, 分辨率基本是没可能拉满的, 最高基本也就八九百这样子, 低配下甚至六百多都有可能. 虽然场景怎么低分辨率怎么糊都好说, 但 UI 是万万不能糊的, 一糊这游戏也别玩了. 所以场景&UI 分辨率分离就成了一个项目必需的 feature. 最简单也是最直接的方案就是给 UI 单独来一张 RT, 我们叫他 UITarget. 场景在低分辨率的 CameraAttachment 上渲完后 Blit 到高分辨率的 UITarget 上, 再交给 UI 相机绘制 UI. 听着很美好, 但实际并不能用. 因为这个方案对于带宽本就不富裕的移动端打击是致命的, 多一张 1080p 的 RT 简直是要了手机的老命. 于是就有了优化方案, 借用系统提供的 Backbuffer 作为 UITarget. Backbuffer 默认为手机硬件的原生分辨率, 无论任何情况下渲染管线的最终目标都会是它, 在 URP 正常的流程...
2023-09-11
从零开始的UE5卡通渲染0x00:理论基础
最近在研究基于UE5的卡通渲染,颇有收获。正巧前段时间与同事吃饭,聊到知乎,深感自己知乎各种不正经的东西实在太多了,而我又是个懒得腾出时间写正经东西的懒狗,遂决定趁编译Shader的空闲,写点学习笔记、心得与分享。 虽然卡渲本身的知识不算很多,但放到UE5上就是不得不改动源码的大工程了,不由得让人怀念起自由的Unity,令人感叹……扯远了,总之UE5卡渲这块我准备分成多篇文章,多水一水。 目前的大(feng)致(kuang)计(hua)划(bing)如下: 卡通渲染理论基础 修改源码的卡渲光照模型实现 基于卷积矩阵的卡渲描边实现、添加子Mesh的Backface卡渲描边实现 修改源码自定义Pass的Backface卡渲描边实现 …… 次世代卡渲/独立的Hair、Skin卡渲光照模型/UE5复刻原神ShadingModel……(或许会有?) 废话不多说了,进入正题。 提到卡通渲染,很多了解不多的朋友可能就会将其与NPR(Non-Photorealistic Rendering)混为一谈,可实际上这两者并不能划等号。事实上NPR是个非常广泛的概念,不止是卡渲,油画、水墨风等等...
2024-07-12
从插件开始的UE渲染开发0x00: Shader路径重定向
UE 渲染开发一直以来都是个很蛋疼的话题, 拜屎山一般的渲染系统所赐, 想要加点什么东西基本就只有改源码一条路可走, 以至于网上搜十个改源码的文章可能九个都是教你怎么加 ShadingModel 或 MeshPass. 我自己也曾在这类重复且枯燥的工作上花费大量的时间, 深切感受到这玩意到底有多恶心. 而且源码修改一时爽, 后续维护火葬场, 将来如果要升级引擎版本, 面对茫茫多的 diff 那才叫一个痛不欲生. 所以这个系列从 UE 的插件系统(Plugin)入手, 尝试探索在不改动源码的情况下, 如何最大限度的自定义渲染. 虽说不改 C++ 源码, 但 Shader 该改还是要改. 不过直接去引擎路径下改 Shader 就很恶心, 可能我只想为当前项目改动某部分 Shader, 但引擎路径下 Shader 的改动却会影响到本地的所有项目. 如果能像 Unity 那样每个项目自己有一份 Shader 就好了——正确的, 我们就先来把这个功能做了. 在动工之前, 需要先理解 UE Shader 的路径引用原理. UE shader 代码中 include 的文件路径并非真实的路径...
2023-09-11
UE5.1移动端延迟管线基于Light Channels模拟Unity Rendering Layers
待搬运, 内容详见原文链接. 原文链接: https://zhuanlan.zhihu.com/p/577239276
2023-09-11
UE5.1移动端延迟渲染管线测试与剖析
待搬运, 内容详见原文链接. 原文链接: https://zhuanlan.zhihu.com/p/575618981
avatar
SnowyLake
Don't worry, be happy.
文章
19
标签
13
分类
27
公告
不想工作, 苦呀西~
最新文章
Code is cheap. Show me the idea.2026-06-13
聊聊UI分辨率分离与线性空间下的GammaUI2024-09-15
从插件开始的UE渲染开发0x00: Shader路径重定向2024-07-12
一个C++20下的string split实现2023-09-11
UE5.1移动端延迟管线基于Light Channels模拟Unity Rendering Layers2023-09-11
© 2025 - 2026 By SnowyLake框架 Hexo 6.3.0|主题 Butterfly 5.5.5
搜索
数据加载中