图形系统
屏幕上所有的像素的颜色值都存储在一个被称为
帧缓冲区(frame buffer)
巨大的内存块中;改变屏幕上的图片需要改变被存储在
帧缓存区(frame buffer)
中的颜色值;屏幕每秒被重新绘制许多次;
gui
- gui的特点就是,这个ui thread,不要block它,因为它有任务在身,每隔1/60s左右,它要执行一次渲染任务,就是在屏幕上把你要的图形给绘制出来,所以如果有操作block了这个线程,超过1/60s的话,用户就会觉得卡顿
渲染
- 概念:计算机将用数学描述的3d场景通过计算自动化成图像的过程;
- 图像:对于计算机来说,图像就是一个二维排列的数据块,是一个离散采集的样本集;
- 所以,渲染可以看做是对
3d场景
的数学模型
进行离散采样
的一个过程;
渲染技术的分类:
扫描线渲染与栅格化:将场景切碎(离散)之后,贴到图像(屏幕)上来
- 将场景物体投射到屏幕上之后离散,
从而确定颜色
;
- 将场景物体投射到屏幕上之后离散,
光线追踪:将图像切碎后投射到场景当中去;
- 将像素沿视线方向投射到场景物体表面,
从而确定颜色
; - 根据几何光学,从反射光线或者折射光线入手,倒推出入射光线,然后,沿着入射光线的反方向一路继续倒退,直到找到光源;
- 将像素沿视线方向投射到场景物体表面,
辐射着色
光线投射
结论:
光线追踪和辐射度方法,主要是一种光照模型,光线追踪擅长
镜面反射
和折射
,而辐射度方法擅长漫反射
和大面积光源
的模拟一个完整的渲染
- 采样方法
- 光照模型
- 材质模型
网格渲染,阴影渲染
- 视觉工业,CG领域的技术实现思路完全不同
- 这些工具会借鉴类似游戏领域的思路,(类似引文中的
预渲染技术
为主, - CG专业工具都要求
渲染管线
的完整,精确和前后统一,更多采用延迟渐进
的准实时渲染
方案, 也被称为交互式渲染
- 其架构能使用所有可用的计算单元,(cpu+gpu,并随网络节点平行扩展)充分利用计算资源,接近
实时渲染
- 这些工具会借鉴类似游戏领域的思路,(类似引文中的
实时渲染
- 在三维场景有动态的时候,计算机给你即时的
光影
/(光照,阴影)
反馈; - 涉及到需要人机交互并且需要实时反馈的画面,都需要用到实时渲染;
实时
- 液晶显示屏上的画面,都是靠计算机一幅幅画出来的;所以显示器有个属性叫做
刷新率
;- 液晶显示器的内容是计算机一帧,一帧画出来的,所以叫
实时的
- 动画片的
下一幅
都是过去画好的,所以叫非实时,离线的
- 液晶显示器的内容是计算机一帧,一帧画出来的,所以叫
渲染
- 是一个过程,把人为组织好的数据,经过计算机处理后,呈现到屏幕上的过程
- 组织好的数据:美术人员画好的图,做好的3d模型;