腾讯游戏学院:实时图形渲染管道

news/2025/1/12 21:53:05/

腾讯游戏学院课程1:实时图形渲染管道

时间:2019年11月23日
地点:清华大学深圳研究生院C1

目录

    • 腾讯游戏学院课程1:实时图形渲染管道
      • 宏观渲染系统
          • 图形渲染
          • 管线与管道
      • 应用阶段
          • 查找
          • 可见性检测
          • 分组和排序(按什么顺序绘制)
          • 提交图元
      • 几何阶段
      • 光栅化阶段
      • 总结&参考
      • 参考网站及书籍推荐

宏观渲染系统

图形渲染

从而为/三维模型生成图像,数学上可以用渲染方程表示
两种方法:
离线渲染(光线跟踪、路径跟踪、辐射度算法)
实时渲染(光栅化)

画家算法
深度缓冲(z-buffer)无需排序,分辨率与图像(颜色缓冲)相同。

管线与管道

宏观渲染管道
输入场景-应用阶段(cpu)-几何阶段(gpu)-光栅阶段(gpu)-输出图像

应用阶段

输入场景-可见性检测–分组和排序-提交图元-输出图元
场景图Sence Graph需要组织场景中的物体(摄像机、光源、网格 、骨骼)

查找

使用空间分割技术加速场景查询,包括:二元空间分割BST Tree、八叉树BVH Tree(现在用的比较多)、入口(Protal)

可见性检测

平截头体剔除、遮挡剔除、细节LOT

分组和排序(按什么顺序绘制)

通常按渲染层layer分组
半透明物体不能用z-buffer排序
所以需要半透明物体运用与渲染无关的技术OIT(Order Independant)

提交图元

drawcall
图元:顶点数据(存放在顶点缓冲区,vertex buffer)与索引数据(存放在索引缓冲区,index buffer)

几何阶段

渲染图元-顶点着色-裁剪-屏幕映射-变换后顶点
输入装配,读取vb ib,生成三角形的顶点数据
顶点着色,执行顶点着色器,输入顶点属性,输出
包括:空间变换(模型空间-世界空间-观察空间(透视投影or正交投影)-齐次坐标空间-屏幕空间)几何图元的顶点定义在模型空间,需要变换到屏幕空间
三个矩阵:Oject2World,View,Projection,
投影变换(观察空间-齐次坐标空间)

几何着色器
朝向剔除:渲染时只渲染正面/背面
三角形裁剪:裁剪超出裁切平面的部分
透视除法及

光栅化阶段

变换后的顶点-扫描转换-像素着色-输出合并-渲染目标
扫描转换:把三角形数据转换为像素的位置。需要对颜色、纹理坐标进行插值(须透视正确)会出现锯齿
像素着色:执行像素着色器,比如对问题采样、光照计算、阴影计算,最后输出颜色的修正

总结&参考

前向管线与延迟管线 Geometry-VS-OS-FS-Render Target
前向 O(M*N)
延迟 O(M+N) more buffer

参考网站及书籍推荐

《游戏引擎装配》
http://www.realtimerendering.com/portal.html
http://jcgt.orge
http://github.com/miloyip/game-programmer
《Real-time Rendering》
《腾讯游戏开发精粹》

腾讯-魔方工作室群


http://www.ppmy.cn/news/666552.html

相关文章

深圳 Google Playtime 2017 完美收官!

今年的 10 月 31 日有些特别,Google Play 专门为中国的开发者们举办了一场特别的 Party —— Playtime 2017。实际上,Playtime 在全球的举办次数已经超过了 30 次,这是 Playtime 第二次来到中国,并选择在深圳举办,足以…

游戏制作之路(24)Camera(摄像机)的清除标志Skybox

在前面学习了摄像机的属性:Clear Flags,知道它有四个选项,但是什么时候使用哪一个选项呢?这是一个必须学习会的知识点,否则你是做不出来游戏的,就像数学里充分必要条件一样。由于摄像机的重要性&#xff0c…

移动游戏性能优化通用技法

1. 前言 很多年前就想将这些年工作中积累的优化经验撰写成文章,但懒癌缠身,迟迟未动手,近期总算潜下心写成文章。 涉及到具体优化技巧时,我会尽量阐述原理和依据,让读者知其然也知其所以然。 要完全读懂这篇文章&#…

深圳大学数学文化赏析MOOC答案

1.4 章节测验 一、多选题 (共 100.00 分) 1. 以下关于数学的描述,正确的有( )。 A. 数学是研究现实世界的空间形式与数量关系的科学。 B. 数学是研究模式与秩序的科学 C. 数学研究事物的物质属性 D. 数学只是研究数的科学 满分…

Hibernate Validator 组件

Hibernate Validator 组件介绍 Hibernate Validator 是一个基于 Java 的验证框架,它提供了强大且灵活的验证功能,用于验证 JavaBean 对象的状态。它是基于 JSR 380 规范(Bean Validation 2.0)的实现,并且可以与任何 J…

IDEA开发插件的相关参考

教程 用gradle开发IDEA插件_idea gradle插件_ykdsg的博客-CSDN博客 5分钟从零开发一款简易的IDEA插件 ※通过gradle开发idea插件,环境版本适配_wl1411956542的博客-CSDN博客 技术调研,IDEA 插件怎么开发「脚手架、低代码可视化编排、接口生成测试」&…

苹果手机自制铃声

把文件拖到资料库,或者点击文件-将文件添加到资料库 点击菜单栏下面的 音乐 图标,右键点击刚刚添加的音乐文件名称——显示简介——选项:设置铃声开始与结束时间,长度不能超过40秒,确认; 左侧菜单栏切换到歌…

panic 苹果aop_iPhone重启故障 iOS日志分析

iPhone重启故障 iOS日志分析 Panic Full文件里面记录了iPhone重启原因,根据对日志数据的分析,我们能得到一些故障信息,以此判断出是哪个硬件导致的问题。 进入手机设置 – 通用-隐私-分析-数据,找到对应时间的重启文件,Panic Full开头的文件,如Panic Full – 2020/02/25 …