目录

游戏引擎渲染的挑战:

渲染流水线:

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带宽和内存的占用

渲染流水线:

Shader预备知识一-------渲染的基本工作流程_This is MX的博客-CSDN博客

这个其实很全了,但是比较简略,但是适合入门

GPU架构:

指令:

SIMD:单指令多数据操作

SIMT:单指令多线程操作。并行计算中使用的一种执行模型,其中单指令、多数据(SIMD)与多线程相结合

GPU运算单元:

GPC:用于计算、光栅化、着色和纹理的专用硬件块

CPU向GPU传输数据:

缓存效率:

我们要尽可能的提高缓存命中效率,因为如果不命中需要进内存里面进行获取,这个操作是非常消耗的。

GPU性能边界:

手机渲染架构:

当代硬件渲染架构:

渲染数据组织:

mesh系统:

我们可以需要分开存顶点数据和索引数据,并且每个顶点都要有法线数据。

材质系统:

常见的光照模型 Phone,Bilin-Phone,PBR

光照模型也需要贴图控制

Shader用来表达这个光照模型

多材质系统

那我们怎么表现多材质呢,我们可以将各个部分的数据存储到同一个buffer的不同的连续位置,我们再用的时候就只需要offset就能够使用。

实例化渲染:

相同的纹理、材质、网格渲染,对渲染命令进行合并提交

对材质进行排序对相同的材质只提交一次渲染命令

裁剪:

我们会将不在摄像机视锥体的图元进行裁剪

包围盒:

空间划分:

我们如果使用空间划分,就可以减少很多的复杂度,不用每个都去问询。

PVS:

PVS可以大大的提高裁剪速度和资源加载的效率

GPU Culling:

Earlyz

就是将深度测试提前到光栅化的片元着色器之前,这样片元就会提前被舍弃,但是这个操作其实还是有一些问题的,比如说如果渲染的排序是从后往前渲染这个的优化效果就很拉,并且如果手动写入深度值或者开启了alphatest或者舍弃片元的操作,那么gpu就会关闭early-z直到下次clear z-buffer后才会重新开启

Hiz

全名Hierarchical Z,和z-perpass一样也是一种软件技术,据说这项技术最早是在《刺客信条:大革命》中使用的。其核心原理是利用上一帧的深度图和摄像机矩阵,来对当前帧的场景做剔除,对于剔除后的物体进行绘制新的深度图和GBuffer,然后再用新的深度图和当前摄像机矩阵再对当前帧的场景做剔除,对剔除后的物体进行绘制更新刚刚的深度图和GBuffer。之所这种看起来十分复杂的方法能提高效率,是因为每一帧的绘制都已上一帧的绘制结果为基础。我们假设相邻两针差距不会特别大,那么以上一帧的深度图作为结果来对当前帧可见的物体进行筛选,可以得到绝大部分。

纹理压缩:

这个可以看这个:

图形学入门---纹理压缩_This is MX的博客-CSDN博客

纹理压缩一般不能选择压缩得最小的方法,因为无法随机访问。

块压缩算法:

建模工具:

Maya,blender, Zbrush

程序化生成:

Cluster Based 渲染:

将精细的模型分成多个多个mesh块,进行渲染。并且基于mesh块,我们以前只能对单个物体进行裁剪,但是现在我们也能够对单个物体的mesh块进行裁剪。

PILOT引擎:

https://github.com/BoomingTech/Pilot

作业:

Games 104: 现代游戏引擎:从入门到实践

学习资料:

Games104

1.UE预计算遮挡剔除(PVS)全解析 - 知乎

Games104笔记---LE4--渲染系统1:渲染基础相关推荐

  1. Games104笔记---LE6--渲染系统3:游戏中的地形/天空/云渲染

    目录 地形几何 高度图: 自适应网格细分 几个原则: 网格细分的方法: 实时变形的地形: 体素化: Marching Cubes算法: 地形着色: 存储内容: 地形纹理采样: 正确的过渡算法: 凹凸/ ...

  2. OGRE3D 渲染系统线程化

    OGRE3D 渲染系统线程化 译:BoYueJiang http://blog.csdn.net/BoYueJiang 由于BLOG注册不到一周,无法上传图片.所以文中图片下周补上. 本文以及原文已上 ...

  3. Games104笔记---LE1--现代游戏引擎导论

    目录 前记: 基础理论: 现代游戏引擎 当代一些专业的引擎(中间件) 什么是游戏引擎: 游戏里面复杂的系统 开发者平台 书籍推荐 课程内容: 游戏引擎的基础内容 MVVM: 渲染系统 动画系统 物理系 ...

  4. Unity基础笔记(5)—— Unity渲染基础与动画系统

    Unity渲染基础与动画系统 Unity渲染基础 一.摄像机 1. 摄像机概念 和现实中的摄像机很接近,Unity 中 Camera 组件负责将游戏画面拍摄然后投放到画面上 Camera 拍摄到的画面 ...

  5. 设计渲染系统,为什么要特别关注“显卡”? | GAMES104实录 - 现代游戏引擎:从入门到实践

    本期为GAMES104<现代游戏引擎:从入门到实践>视频公开课文字实录第11期.本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发. 课程 ...

  6. Games104现代游戏引擎入门-lecture4游戏中的渲染系统

    Games104现代游戏引擎入门-lecture4游戏中的渲染系统 1.有没有选人的游戏没? 2 图形学渲染理论 3 游戏渲染的挑战 1 物体很多,渲染效果的类型很多 2 需要深度适配现代的CPU a ...

  7. antd 中table上加不同字体颜色_字体渲染系统!微软终于决定优化Win10字体模糊问题...

    据外媒WindowsLatest报道 , 微软可能会在明年为Windows 10系统带来新的字体渲染系统和便捷的颜色选择器. 在目前版本的Windows 10中字体管理已经比较方便,在设置里可以轻松查 ...

  8. 商品详情页动态渲染系统:大型网站的多机房4级缓存架构设计

    124_大型电商网站的商品详情页的深入分析 之前,咱们也是说在讲解这个商品详情页系统的架构 缓存架构,高可用服务 商品详情页系统,我们只是抽取了其中一部分来讲解,而且还做了很大程度的简化 主要是为了用 ...

  9. C4D R26 渲染学习笔记(2):渲染流程介绍

    往期文章 C4D R26 渲染学习笔记(1):C4D版本选择和初始UI框介绍 3D建模流程 大致流程 #mermaid-svg-eE2RXHal49sVZ34l {font-family:" ...

最新文章

  1. Bzoj2555 SubString
  2. 常见php面试题,常见的 PHP 面试题和答案分享
  3. npm时需要python
  4. onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案)
  5. Keepalived实战(3)
  6. PyCharm——项目管理
  7. Guava学习笔记 第6个记录(Immutable(不可变)集合)
  8. mysql8.0驱动包下载_Java JDBC 驱动包下载,MySQL 8及以上适用, mysql-connector-java-8.0.22.jar 官方版。...
  9. 单片机控制12864显示多行汉字(含PROTEUS仿真文件、程序和字模提取软件)
  10. 一名前端 Leader 的转正述职记录
  11. 两个不同网段的局域网如何互通_不同品牌的对讲机如何实现互通?
  12. 126邮箱国外服务器,网易邮箱海外服务器大升级
  13. 少年上人号怀素下一句,这首诗本是咏怀素的,却在结尾幽了张旭一默,我白够狂︱浅雨
  14. 程序员用300行代码,让外婆实现语音搜索购物
  15. 【已解决】WPS/OFFICE中word文件可以打印,excel打印后无响应
  16. 一车abs线路怎么量_汽车ABS传感器怎么测量好坏?
  17. 同时安装wampserver和xampp
  18. 11. Nginx HTTPS
  19. java商城开发可以说是日臻完美
  20. 揭秘阿里VR电商购物

热门文章

  1. vue项目实现pc端和手机端屏幕自适应
  2. python 读取excel 插入mysql
  3. 派派和京东的paipai域名之争
  4. 莫烦python-Tensorflow笔记
  5. E家连锁超市是什么?
  6. c++IO流——开工啦
  7. SpringBoot+SpringSecurity前后端分离+Jwt的权限认证改造记录!
  8. 我的爱情与Python不得不说的故事
  9. MySQL快速下载地址
  10. cmd中如何回退到上一级文件目录