收藏
0有用+1
0

Renderman

计算机图像渲染体系
RenderMan是一个计算机图像渲染体系,准确地说是一套基于著名的REYES渲染引擎开发的计算机图像渲染规范,所有符合这个规范的渲染器都称为RenderMan兼容渲染器。这其中最著名有3Delight 和Pixar公司的PhotorealisticRenderMan,其中3Delight 是一个专有的,符合 RenderMan 规范的逼真图像渲染器,同时在业界还有一些其它的免费版开源的RenderMan兼容渲染器。
中文名
Renderman
鉴    析
高端运动图像的生产制作
电    影
荣誉之刃
地    址
3delight技术支持网

鉴析

播报
编辑
RenderMan兼容渲染器其高超的渲染质量和及其快速的渲染能力而被广泛应用在高端运动图像的生产制作过程中婆欢,在当今的动画电影和影视特效等高端领域,RenderMan兼容渲染器是必不可少的一个渲染解决方案(另一个高端解决方案是著名的MentalRay渲染器),世界上许多著名制作公司捉您微像ILM和Sony等都使用它作为作为渲染的最终解决方案之辨剃狼放探婚一。
目道欠项前最普及的RenderMan是3De嚷微泪light因为3Delight的开放性和用户口群的庞大,3Deligh危企t已经成为RenderMan电订影厚影级别渲染器的主流。 [1]

支持系统

播报
编辑
3delight支持Maya、Houdini、XSI、Massive、Naiad、Nuke,不久3Delight将会支持MAX,这样符合renderman规范的3delight渲染器将会支持全系列3维软件。 [1]

RenderMan规范

播报
编辑
RenderMan规范,简称RISpec,是一个开放的应用程序接口(API),由皮克斯开发,用于描述三维模型并把它转换成逼真的数字图像。RenderMan规范作为建模程序和渲染程序之间的通信协议(或称为接口),用于生成逼真的数字图像。规范类似于PostScript,不过是用来描述三维场景而非二维页面布局。因此,理解RenderMan接口的建模软件,可以输出场景数据到符合规范的渲染器(以下简称RenderMan渲染器),而无需关心后者使用什么算法渲染出图像。
RenderMan规范最初发布于1988年,版本号为3.0,3.1版发布于1989年,并在1995年进行了修订,2000年7月,规范发布3.2版。规范的当前版本是3.2.1版,发布于2005年11月。后来的事实证明了规范的前瞻性,规范在多年之后也无需过多改动就能引入新技术。
RenderMan规范和当时的其他标准的不同之处在于它允许使用高级的几何图元,比如二次曲面双三次曲面来表示图形,而非依赖于建模程序事先生成多边形逼近模型,规范的另一个创新之处是引入着色语言
RenderMan和OpenGL有很多相同之处,虽然两个API是针对不同的用户(OpenGL用于实时硬件辅助渲染,而RenderMan规范则用于逼真图像的离线渲染),两个API都是基于栈的状态机机制直接渲染出几何图形。 [2]

RenderMan接口规范内容

播报
编辑
RenderMan渲染接口,主要包括两大部分,第一部分是RenderMan Interface,定义了着色计算所必须的一些基本数据类型,和RenderMan接口字节流协议(RenderMan Interface Bytestream Protocol),简写为RIB,rib也是RenderMan场景描述文件的扩展名;规范的第二部分,是RenderMan着色语言,RenderMan Shading Language,简称RSL,使用RenderMan着色语言编写的源程序,其源代码文件扩展名通常是sl [2]

RenderMan接口

RenderMan接口,定义了一些基本的数据类型,以规范的C语言实现为例,规范把C语言的short、int、float、char数据类型,分别映射至其RtBoolean、RtInt、RtFloat和*RtToken类型,另外,规范还定义了RtColor、RtPoint、RtVector、RtMatrix等特定于图形学着色计算必要的数据类型。
规范的图形状态(graphics state),包括了渲染一个模型所需的全部信息,RenderMan接口的命令,要么改变图形状态,要么渲染一个模型。图形状态又分为两部分,其一是全局状态,在渲染一幅图像或序列中的一帧时,保持不变;其二是当前状态,针对不同待渲染的模型,可以发生改变。全局状态中的参数,称为选项(Options);当前状态中的参数,称为属性(Attributes)。选项包括相机和显示(指输出像素的)参数,还有其他影响渲染质量的参数;属性包括控制模型外观和材质的参数(比如颜色、透明度、着色模型等),还有模型的位置、朝向和细分程度等参数。
RenderMan规范支持多边形曲面片细分曲面二次曲面、点和曲线、元球程序图元等多样的几何模型。 [2]

RenderMan着色语言(RSL)

RenderMan规范引入了RenderMan着色语言,使三维场景的外观不只用很少的参数来描述,而是允许使用类似C语言的程序来编写任意复杂的着色函数,通常称之为程序纹理着色器(shader)。光照以及表面置换也是可编程的,能用着色语言编程来修改。RSL允许每个语句以单指令流多数据流的方式执行,但不强制使用此方式。另一个使RenderMan渲染器区别于许多其他渲染器的功能是它允许输出着色函数里的任意信息,不管是表面法线、单独的灯光通道还是什么别的信息,都可以使用RenderMan渲染器输出到单独的通道里。
一个RSL编写的着色器,可以用于任何符合RenderMan渲染规范的RenderMan渲染器,比如皮克斯的PRMan、DNA Research的3Delight,以及开源的Pixie和Aqsis
RSL可以编写独立的函数和RenderMan渲染规范定义的五种类型的着色器:surface,light,volume,imager和displacement着色器。 [2]