介绍:这是我个人学习渲染技术的效果与技术展示demo
仓库地址:https://github.com/Acgmart/Sekia_URP_TechDemo
Unity官方仓库地址:https://github.com/Unity-Technologies/Graphics
ET官方仓库地址:https://github.com/egametang/ET
SekiaPipeline倾向于使用ET的Unity版本以及最新的Unity版本(目前使用2021.3)
避免因Unity版本牵扯过多精力 将稀缺的时间花在解决游戏开发实际问题上
主版本中将测试场景渲染原型和美术工具链 单独开小工程测试个别问题
为了使一套代码兼容多个Unity版本 SekiaPipeline对URP采取轻度介入方案
参考文档:SekiaPipeline与URP之间的依赖关系
目前框架整体还不完善 实现了精简的前向渲染和延迟渲染
延迟渲染强制关联NativeRenderPass 直接渲染到backBuffer GBuffer都是Memoryless的
带宽消耗最低化 是理想中的低带宽模式
效果不足 计划在现有基础上添加效果复杂度 如TAA抗锯齿
To do:
美术工具链
FlowMap笔刷 Terrain笔刷
多版本兼容性
实现多个Unity版本兼容
美术验证demo场景
使用Unity的预计算GI教程资源制作美术效果预览
利用实时GI支持早晚|天气变化
预计算GI的性能测试
FairyGUI支持
相机栈模式
1.所有Pass都Feature列表化
将RT的生命周期和Feature执行顺序在代码层面上清晰化
类似连连看 因为是给程序员看的所以不用过于图形化
明确Feature的依赖 按需声明和释放资源 性能消耗做到心里有数
提高Debug效率 快速判断病症所在
2.层级设计
有没有地面特效 地面特效与水哪个先渲染
明确TAA发生的位置 和后处理的关系
明确雾发生的位置 和透明特效的关系
反射的性能控制
这个阶段主要处理的是场景规划 考虑到运行时添加的各种效果
场景在特殊视角可能存在的缺陷
场景的透明渲染复杂度限制
这个阶段的问题处理后 我们能得到某一个时间点的正确渲染结果
3.大世界需求
程序化地形、云雾雨雷天空银河风等天气变化
这些东西本来就有 只不过现在我们要求提高产能与自动化
天气变化可以看做是不同时间点效果之间的插值
必须要基于强壮的构架才能兼容复杂交互 将天气参数化并配表
抗锯齿:低配SMAA+高配TAA
美术向技术:
每个像素的着色主要受到 光照-色调映射 影响
光照 风格化渲染的核心-突出想表达的细节
色调映射 调整画面的氛围
美术迭代思路:
对项目美术风格的把控 落地在光照和色调映射上
确定好美术风格、所见即所得是最优先事项
对标原神、香港漫画、永劫无间等不同画风的商业作品
提炼细节、层次感指标 在不同人设/表情/动作、环境上验证
DCC工具链扩展 提高制作环节的生产效率
HDR?
程序向技术:
场景内的物体会进行互动 体现出画面的层次感
SSAO等AO方案 增强实时物体与场景的融合度
TAA等抗锯齿方案 改善动态场景像素的高频闪烁
SSR等反射方案 增加反射细节
GI方案 提供环境漫反射与环境镜面反射光源
结合美术风格开发 先从无到有 再优化性能
面向GamePlay制作复杂的表现系统
武打 部位打击 伤残 身体平衡
捏人换装 动态骨骼 布料
AI