三维游戏图形学学习笔记(二)延迟渲染
来源:互联网 发布:淘宝客seo 编辑:程序博客网 时间:2024/06/03 18:23
首先介绍一下最基本的渲染模型:前向渲染(Forward Rendering)。渲染有两个最基本的要素:物体和灯光。前向渲染是指依次将每个灯光应用到每个物体上。流程如下:
for 每个物体 for 每个灯光 按照光照模型进行渲染
从中我们可以看出,这种算法的时间复杂度是
这种方法的原理是推迟了光照计算,从而避免多次渲染同一个像素。流程如下:
for 每个物体 将各种几何信息储存到g-buffer中for 每个灯光 从g-buffer中读取信息,按照光照模型进行渲染
根据流程可以得出,这种算法的复杂度是
根据上一篇中得到的公式,与物体相关的信息包括:物体位置、法线向量、纹理坐标、反射系数(
从这里可以看出,延迟渲染其实是一种空间换时间的策略,用g-buffer所占用的空间来换取渲染效率。所以延迟渲染的瓶颈主要是在g-buffer上,g-buffer的大小就是优化的重点。具体的优化方法不是本文的重点,这里不再赘述。
延迟渲染有两个限制。一个是无法使用硬件提供的抗锯齿功能,因为物体的几何信息基本都被抛弃了,只保留了每个像素所需要的基本渲染信息。延迟渲染一般使用Edge AA等方法来进行抗锯齿,相关信息可能之后会专门写一篇来说明。另一个限制是对半透明混合无能为力。因为g-buffer上只保留了最靠近相机的那个像素的信息,无法在光照计算后进行正确的混合,所以一般是用延迟渲染将非半透物体渲染完之后,再用前向渲染将半透明物体渲染一遍。
- 三维游戏图形学学习笔记(二)延迟渲染
- 三维游戏图形学学习笔记(三)延迟光照
- 三维游戏图形学学习笔记(一)基本光照模型
- 《计算机图形学》学习笔记(二)
- 计算机图形学 学习笔记(八):三维图形变换:三维几何变换,投影变换(平行/ 透视 投影)
- 三维场景的渲染优化(二)
- matlab学习笔记(二)---三维图形的绘制
- 三维图形学
- 计算机图形学笔记---Cg语言(二)
- maya(学习笔记)之Arnold渲染器二
- 计算机图形学学习记录(二)
- 【学习笔记】3D图形学:stage3D实战-延迟着色技术DeferredShading
- /LGC图形渲染/图形学系列 -- 关于计算机图形学的学习
- 计算机图形学学习方法和相关书籍,做游戏,GIS,虚拟现实,三维引擎的都可以看看.
- 《OpenGL游戏编程》学习笔记(二)
- canvas游戏学习笔记(二)
- cocos2dx游戏开发学习笔记(二)
- Direct3D学习笔记二:渲染管线
- 随机梯度下降
- windows 配置apache+php+mysql环境
- Android问题:ScrollView默认位置不是最顶部最全解决方案
- QT入门学习随笔
- hud 5726 GCD st表+二分
- 三维游戏图形学学习笔记(二)延迟渲染
- 商品展示
- WindowManager.LayoutParams详解
- K最近邻算法
- PX4开发指南中文版维护说明
- 浅谈指针
- YAHOO!军规
- 深度学习相关最新图书推荐
- javascript通常建立接口的三种方式(彻底的明白了)