Games104笔记---LE4--渲染系统1:渲染基础
目录
游戏引擎渲染的挑战:
渲染流水线:
GPU架构:
指令:
GPU运算单元:
CPU向GPU传输数据:
缓存效率:
GPU性能边界:
手机渲染架构:
当代硬件渲染架构:
渲染数据组织:
mesh系统:
材质系统:
实例化渲染:
裁剪:
包围盒:
空间划分:
PVS:
GPU Culling:
纹理压缩:
块压缩算法:
建模工具:
程序化生成:
Cluster Based 渲染:
PILOT引擎:
作业:
学习资料:
笔记导航:
LE7--渲染系统4:渲染管线,后处理:https://blog.csdn.net/m0_56399931/article/details/124790469
LE6--渲染系统3:游戏中的地形/天空/云渲染:LE6--渲染系统3:yo地形/天空/云渲染_This is MX的博客-CSDN博客
LE5--渲染系统2:光照、材质、Shadow:Games104笔记---LE5--渲染系统2:光照、材质、Shadow_This is MX的博客-CSDN博客
LE4--渲染系统1:渲染基础:Games104笔记---LE4--渲染系统1:渲染基础_This is MX的博客-CSDN博客_渲染系统
LE3--基础架构2:数据组织与管理:Games104笔记---LE3--基础架构2:数据组织与管理_This is MX的博客-CSDN博客
LE2--基础架构1:引擎架构分层整体Pipeline:Games104笔记---LE2--基础架构1:引擎架构分层整体Pipeline_This is MX的博客-CSDN博客
LE1--现代游戏引擎导论:Games104笔记---LE1--现代游戏引擎导论_This is MX的博客-CSDN博客
这个部分看一下games101和opengl会好很多
游戏引擎渲染的挑战:
(1)要做到数以万计的物体具有数十种效果
(2)需要了解CPU和GPU的复杂组合处理的现代计算机架构
(3)需要达到稳定的帧率
(4)限制CPU带宽和内存的占用
![](/assets/blank.gif)
![](/assets/blank.gif)
渲染流水线:
Shader预备知识一-------渲染的基本工作流程_This is MX的博客-CSDN博客
这个其实很全了,但是比较简略,但是适合入门
![](/assets/blank.gif)
GPU架构:
指令:
SIMD:单指令多数据操作
SIMT:单指令多线程操作。并行计算中使用的一种执行模型,其中单指令、多数据(SIMD)与多线程相结合
![](/assets/blank.gif)
GPU运算单元:
GPC:用于计算、光栅化、着色和纹理的专用硬件块
![](/assets/blank.gif)
CPU向GPU传输数据:
![](/assets/blank.gif)
缓存效率:
我们要尽可能的提高缓存命中效率,因为如果不命中需要进内存里面进行获取,这个操作是非常消耗的。
![](/assets/blank.gif)
GPU性能边界:
![](/assets/blank.gif)
手机渲染架构:
![](/assets/blank.gif)
当代硬件渲染架构:
渲染数据组织:
mesh系统:
![](/assets/blank.gif)
我们可以需要分开存顶点数据和索引数据,并且每个顶点都要有法线数据。
![](/assets/blank.gif)
材质系统:
常见的光照模型 Phone,Bilin-Phone,PBR
![](/assets/blank.gif)
光照模型也需要贴图控制
![](/assets/blank.gif)
Shader用来表达这个光照模型
多材质系统
![](/assets/blank.gif)
那我们怎么表现多材质呢,我们可以将各个部分的数据存储到同一个buffer的不同的连续位置,我们再用的时候就只需要offset就能够使用。
![](/assets/blank.gif)
实例化渲染:
相同的纹理、材质、网格渲染,对渲染命令进行合并提交
![](/assets/blank.gif)
对材质进行排序对相同的材质只提交一次渲染命令
![](/assets/blank.gif)
裁剪:
我们会将不在摄像机视锥体的图元进行裁剪
![](/assets/blank.gif)
包围盒:
![](/assets/blank.gif)
空间划分:
我们如果使用空间划分,就可以减少很多的复杂度,不用每个都去问询。
PVS:
PVS可以大大的提高裁剪速度和资源加载的效率
![](/assets/blank.gif)
![](/assets/blank.gif)
GPU Culling:
![](/assets/blank.gif)
Earlyz
就是将深度测试提前到光栅化的片元着色器之前,这样片元就会提前被舍弃,但是这个操作其实还是有一些问题的,比如说如果渲染的排序是从后往前渲染这个的优化效果就很拉,并且如果手动写入深度值或者开启了alphatest或者舍弃片元的操作,那么gpu就会关闭early-z直到下次clear z-buffer后才会重新开启
Hiz
全名Hierarchical Z,和z-perpass一样也是一种软件技术,据说这项技术最早是在《刺客信条:大革命》中使用的。其核心原理是利用上一帧的深度图和摄像机矩阵,来对当前帧的场景做剔除,对于剔除后的物体进行绘制新的深度图和GBuffer,然后再用新的深度图和当前摄像机矩阵再对当前帧的场景做剔除,对剔除后的物体进行绘制更新刚刚的深度图和GBuffer。之所这种看起来十分复杂的方法能提高效率,是因为每一帧的绘制都已上一帧的绘制结果为基础。我们假设相邻两针差距不会特别大,那么以上一帧的深度图作为结果来对当前帧可见的物体进行筛选,可以得到绝大部分。
纹理压缩:
这个可以看这个:
图形学入门---纹理压缩_This is MX的博客-CSDN博客
纹理压缩一般不能选择压缩得最小的方法,因为无法随机访问。
![](/assets/blank.gif)
块压缩算法:
![](/assets/blank.gif)
建模工具:
Maya,blender, Zbrush
程序化生成:
![](/assets/blank.gif)
![](/assets/blank.gif)
Cluster Based 渲染:
将精细的模型分成多个多个mesh块,进行渲染。并且基于mesh块,我们以前只能对单个物体进行裁剪,但是现在我们也能够对单个物体的mesh块进行裁剪。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
PILOT引擎:
https://github.com/BoomingTech/Pilot
![](/assets/blank.gif)
![](/assets/blank.gif)
作业:
Games 104: 现代游戏引擎:从入门到实践
![](/assets/blank.gif)
学习资料:
Games104
1.UE预计算遮挡剔除(PVS)全解析 - 知乎
Games104笔记---LE4--渲染系统1:渲染基础相关推荐
- Games104笔记---LE6--渲染系统3:游戏中的地形/天空/云渲染
目录 地形几何 高度图: 自适应网格细分 几个原则: 网格细分的方法: 实时变形的地形: 体素化: Marching Cubes算法: 地形着色: 存储内容: 地形纹理采样: 正确的过渡算法: 凹凸/ ...
- OGRE3D 渲染系统线程化
OGRE3D 渲染系统线程化 译:BoYueJiang http://blog.csdn.net/BoYueJiang 由于BLOG注册不到一周,无法上传图片.所以文中图片下周补上. 本文以及原文已上 ...
- Games104笔记---LE1--现代游戏引擎导论
目录 前记: 基础理论: 现代游戏引擎 当代一些专业的引擎(中间件) 什么是游戏引擎: 游戏里面复杂的系统 开发者平台 书籍推荐 课程内容: 游戏引擎的基础内容 MVVM: 渲染系统 动画系统 物理系 ...
- Unity基础笔记(5)—— Unity渲染基础与动画系统
Unity渲染基础与动画系统 Unity渲染基础 一.摄像机 1. 摄像机概念 和现实中的摄像机很接近,Unity 中 Camera 组件负责将游戏画面拍摄然后投放到画面上 Camera 拍摄到的画面 ...
- 设计渲染系统,为什么要特别关注“显卡”? | GAMES104实录 - 现代游戏引擎:从入门到实践
本期为GAMES104<现代游戏引擎:从入门到实践>视频公开课文字实录第11期.本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发. 课程 ...
- Games104现代游戏引擎入门-lecture4游戏中的渲染系统
Games104现代游戏引擎入门-lecture4游戏中的渲染系统 1.有没有选人的游戏没? 2 图形学渲染理论 3 游戏渲染的挑战 1 物体很多,渲染效果的类型很多 2 需要深度适配现代的CPU a ...
- antd 中table上加不同字体颜色_字体渲染系统!微软终于决定优化Win10字体模糊问题...
据外媒WindowsLatest报道 , 微软可能会在明年为Windows 10系统带来新的字体渲染系统和便捷的颜色选择器. 在目前版本的Windows 10中字体管理已经比较方便,在设置里可以轻松查 ...
- 商品详情页动态渲染系统:大型网站的多机房4级缓存架构设计
124_大型电商网站的商品详情页的深入分析 之前,咱们也是说在讲解这个商品详情页系统的架构 缓存架构,高可用服务 商品详情页系统,我们只是抽取了其中一部分来讲解,而且还做了很大程度的简化 主要是为了用 ...
- C4D R26 渲染学习笔记(2):渲染流程介绍
往期文章 C4D R26 渲染学习笔记(1):C4D版本选择和初始UI框介绍 3D建模流程 大致流程 #mermaid-svg-eE2RXHal49sVZ34l {font-family:" ...
最新文章
- Bzoj2555 SubString
- 常见php面试题,常见的 PHP 面试题和答案分享
- npm时需要python
- onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案)
- Keepalived实战(3)
- PyCharm——项目管理
- Guava学习笔记 第6个记录(Immutable(不可变)集合)
- mysql8.0驱动包下载_Java JDBC 驱动包下载,MySQL 8及以上适用, mysql-connector-java-8.0.22.jar 官方版。...
- 单片机控制12864显示多行汉字(含PROTEUS仿真文件、程序和字模提取软件)
- 一名前端 Leader 的转正述职记录
- 两个不同网段的局域网如何互通_不同品牌的对讲机如何实现互通?
- 126邮箱国外服务器,网易邮箱海外服务器大升级
- 少年上人号怀素下一句,这首诗本是咏怀素的,却在结尾幽了张旭一默,我白够狂︱浅雨
- 程序员用300行代码,让外婆实现语音搜索购物
- 【已解决】WPS/OFFICE中word文件可以打印,excel打印后无响应
- 一车abs线路怎么量_汽车ABS传感器怎么测量好坏?
- 同时安装wampserver和xampp
- 11. Nginx HTTPS
- java商城开发可以说是日臻完美
- 揭秘阿里VR电商购物