Hello, Boswell!

图形系统

  • 屏幕上所有的像素的颜色值都存储在一个被称为帧缓冲区(frame buffer)巨大的内存块中;

  • 改变屏幕上的图片需要改变被存储在帧缓存区(frame buffer)中的颜色值;

  • 屏幕每秒被重新绘制许多次;

gui

  • gui的特点就是,这个ui thread,不要block它,因为它有任务在身,每隔1/60s左右,它要执行一次渲染任务,就是在屏幕上把你要的图形给绘制出来,所以如果有操作block了这个线程,超过1/60s的话,用户就会觉得卡顿

渲染

  • 概念:计算机将用数学描述的3d场景通过计算自动化成图像的过程;
  • 图像:对于计算机来说,图像就是一个二维排列的数据块,是一个离散采集的样本集;
  • 所以,渲染可以看做是对 3d场景 的 数学模型 进行 离散采样 的一个过程;

渲染技术的分类:

  • 扫描线渲染与栅格化:将场景切碎(离散)之后,贴到图像(屏幕)上来

    • 将场景物体投射到屏幕上之后离散, 从而确定颜色 ;
  • 光线追踪:将图像切碎后投射到场景当中去;

    • 将像素沿视线方向投射到场景物体表面, 从而确定颜色 ;
    • 根据几何光学,从反射光线或者折射光线入手,倒推出入射光线,然后,沿着入射光线的反方向一路继续倒退,直到找到光源;
  • 辐射着色

  • 光线投射

结论:

  • 光线追踪和辐射度方法,主要是一种光照模型,光线追踪擅长 镜面反射 和 折射 ,而辐射度方法擅长 漫反射 和 大面积光源 的模拟

  • 一个完整的渲染

    • 采样方法
    • 光照模型
    • 材质模型

网格渲染,阴影渲染

  • 视觉工业,CG领域的技术实现思路完全不同
    • 这些工具会借鉴类似游戏领域的思路,(类似引文中的 预渲染技术 为主,
    • CG专业工具都要求 渲染管线 的完整,精确和前后统一,更多采用 延迟渐进 的 准实时渲染 方案, 也被称为 交互式渲染
    • 其架构能使用所有可用的计算单元,(cpu+gpu,并随网络节点平行扩展)充分利用计算资源,接近 实时渲染

实时渲染

  • 在三维场景有动态的时候,计算机给你即时的 光影 / (光照,阴影) 反馈;
  • 涉及到需要人机交互并且需要实时反馈的画面,都需要用到实时渲染;

实时

  • 液晶显示屏上的画面,都是靠计算机一幅幅画出来的;所以显示器有个属性叫做 刷新率 ;
    • 液晶显示器的内容是计算机一帧,一帧画出来的,所以叫 实时的
    • 动画片的 下一幅 都是过去画好的,所以叫 非实时,离线的

渲染

  • 是一个过程,把人为组织好的数据,经过计算机处理后,呈现到屏幕上的过程
    • 组织好的数据:美术人员画好的图,做好的3d模型;
Last Updated:
Contributors: jmz, Boswell, Boswell, mingzhuang.ji