Reyes渲染架构

维基百科,自由的百科全书
跳转至: 导航搜索

Reyes 渲染架构,是三维计算机图形学的一个软件架构,用于渲染照片一样真实的图像。该架构是80年代中期由卢卡斯影业的计算机图形研究小组成员艾德文·卡特姆洛伦·卡彭特罗伯特·库克所开发的,那个研究小组最后发展成了今天的皮克斯[1] 该架构最早使用于1982年的科幻片《星际迷航2:可汗之怒》中的创世片段。皮克斯的PRMan是Reyes算法的一个实现。

根据最初描述该算法的论文,Reyes渲染系统是一个用于复杂图像的快速高质量渲染的“架构”,论文中指出Reyes包括一系列算法和数据处理系统,不过本词条中的“算法”和“架构”是同义的。

ReyesRenders Everything You Ever Saw(渲染你曾见到的任何物体)的首字母缩写,这个名字也是卢卡斯影业以前所在地——加州Reyes海角的名字,因此Reyes是双关语,它还暗指和光学影像系统有关的过程。根据罗伯特·库克的说法,Reyes的正确写法是首字母大写,其余小写,和1987年库克/卡彭特/卡特姆的SIGGRAPH论文中一样。

Reyes架构的设计目标[编辑]

Reyes架构的设计遵从以下目标:

  • 模型复杂性和多样性:为了产生复杂和样式丰富的图像,渲染系统的用户必须能通过分形粒子系统等,经由编写程序生成大量复杂的几何结构。
  • 复杂着色:场景的复杂度通常由光线和物体表面的相互作用产生。通常,在计算机图形学里,这是通过使用纹理来表现的,纹理可以是一组像素,用于描述表面位移(置换)、透明度或反射率等。Reyes允许用户用计算机程序来描述表面结构和光学互作用,而不是简单的数据查询表,并和可编程着色器结合。算法的一个重要目标是减少处理器从存储器中读取纹理的时间。
  • 避免光线追踪:Reyes架构提出的时候,计算机的处理能力和存储量都很有限,意味着使用光线追踪需要耗费几万小时才能渲染完一个图像,Reyes算法避免使用光线追踪,因此渲染快的多,并且图像也非常逼真。
  • 速度:(单个计算机)一年能渲染完成一部每秒24帧的两小时影片,即平均每帧只需要渲染3分钟。
  • 图像质量:任何图像,若带有无用的、因算法导致的缺陷,都是不可接受的。
  • 灵活性:该架构必须足够灵活,在引入新技术时,不需把算法完全重写。

Reyes算法能很高效的渲染一些电影画面要求的必不可少的效果:光滑的曲面、表面纹理、运动模糊景深

Reyes渲染流程[编辑]

Reyes渲染流程

Reyes算法通过把参数曲面分割成微多边形(micropolygon)——小于一个像素的四边形,来渲染光滑曲面。虽然要精确逼近曲面需要很多微多边形,不过他们可以简单并行的进行处理。Reyes渲染器对高级的几何图形进行细分时,会根据需要来进行,它只需要刚好细分到使图形在最终图像中看起来光滑的程度。

然后,一个着色系统给微多边形的每个顶点赋予一个颜色和透明度,许多Reyes渲染器允许用户使用着色语言编写任意的灯光和纹理函数。微多边形可以在一个大的网格里进行处理,因此可以进行并行向量处理。

经过着色的微多边形在屏幕空间进行采样,以生成输出图像。Reyes引入了一个开创性的隐面判别算法或者叫hider,算法对运动模糊和景深进行必要的整合,而无需比未加模糊的渲染使用更高的模型和着色采样数。hider通过一种称为随机采样蒙特卡洛方法收集一定时间和镜头位置内每个像素里微多边形的颜色。

基本Reyes渲染管线工序[编辑]

  1. Bound,计算几何图形的边界。
  2. Split,把大的图形分割为更小的图形。
  3. Dice,把图形转换成微多边形网格,每个大概一个像素大小。
  4. Shade,计算每个微多边形网格顶点的灯光和颜色。
  5. Bust,把网格炸开成单个的微多边形,对每个计算边界并判断是否可见。
  6. Hide,对微多边形进行采样,并生成最后的平面图像。

在这个设计中,渲染器必须把整个图像缓存在内存中,因为必须把所有的图形都处理完成以后才能输出最终图像。一般在dice步骤之前会进行一步叫bucketing的常见内存优化,这一步中,输出图像被分割成若干指定大小的小块,通常每一块是16x16像素大小,之后,场景中的物体沿着每小块的大致边缘按照位置分割到不同的块里,然后每个小块分别进行处理,处理下一小块之前会先丢弃上一个小块的数据。如此只有当前的小块区域里的图形被加载到内存里,通常的情况下,这种处理能比未修改的Reyes算法显著的减少内存的使用。

Reyes渲染器[编辑]

以下渲染器使用了Reyes算法,或者用户可以根据需要选择使用Reyes算法:

参考资料[编辑]

  • 罗伯特·库克,洛伦·卡彭特,艾德文·卡特姆,《Reyes 图像渲染架构》,计算机图形学 (1987 年 SIGGRAPH 论文),95-102页。
  • Anthony A. Apodaca和拉里·格里兹Advanced RenderMan: Creating CGI for Motion Pictures,Morgan Kaufmann,ISBN 1-55860-618-1

外部链接[编辑]