RenderMan规范:修订间差异
新条目 |
(没有差异)
|
2011年8月24日 (三) 08:31的版本
RenderMan规范[1],简称RISpec,是一个开放的应用程序接口(API),由皮克斯开发,用于描述三维场景并把它转换成逼真的数字图像,该规范包括了RenderMan着色语言。
RenderMan规范作为建模程序和渲染程序之间的通信协议(或称为接口),用于生成逼真的数字图像。该规范类似于PostScript,不过是用来描述三维场景而非二维页面布局。因此,理解RenderMan接口的建模软件,可以输出场景数据到符合RenderMan规范的渲染器(以下简称RenderMan渲染器),而无需关心后者使用什么渲染算法来渲染出图像。
RenderMan规范最初发布于1988年(3.0版本),后来的事实证明了规范的前瞻性,规范在多年之后也无需过多改动就能引入新技术。RenderMan规范的当前版本是3.2.1版,发布于2005年11月。
RenderMan接口规范
RenderMan规范和当时的其他标准的不同之处在于它允许使用高级的几何图元,比如二次曲面或双三次曲面来表示图形,而非依赖于建模程序事先生成多边形逼近模型。规范的另一个创新之处是着色语言的规范。
RenderMan着色语言(简称RSL)使三维场景表面的材质不只用很少的参数来描述,而是允许使用类似C语言的程序来编写任意复杂的着色函数,通常称之为程序纹理和着色器(shader)。光照以及表面置换也是可编程的,能用着色语言编程来修改。RSL允许每个语句以单指令流多数据流的方式执行,但不强制使用此方式。另一个使RenderMan渲染器区别于许多其他渲染器的功能是它允许输出任意变量为一个图像,不管是表面法线、单独的灯光通道还是什么别的信息,都可以使用RenderMan渲染器输出到单独的通道里。
RenderMan和OpenGL有很多相同之处,虽然两个API是针对不同的用户(OpenGL用于实时硬件辅助渲染,而RenderMan规范则用于逼真图像的离线渲染),两个API都是基于栈的状态机机制直接渲染出几何图形。
必备功能
一个RenderMan渲染器,必须实现以下功能:
- 完全层级化的图形状态(graphics state),包括属性、变换栈(transformation stacks)和有效光源列表。
- 正交投影和透视投影视角变换。
- 基于深度的隐面消除。
- 像素过滤和反走样。
- 图像量化前的伽马校正和dithering。
- 输出图像包括RGB、A和Z的任意组合,并且分辨率可由用户指定。
- 所有规范里描述的几何图元,以及各图元的标准图元变量。
- 支持可编程着色。
- 支持索引纹理贴图、环境贴图和阴影贴图。
- 须提供规范所要求的十五种标准的着色器,包括light source,surface,volume,displacement和imager等类型。任一新增的着色器和由规范中标准着色器衍生的着色器,都必须提供一个等效的RenderMan着色语言描述作为该着色器的文档。
可选的功能
此外,渲染器还可以实现以下的某项功能:
RIB导出工具
- Maya:
- 3Delight for Maya
- liquidmaya,开源软件
- AnimalLogic的MayaMan
- 皮克斯的RenderMan for Maya
- Softimage:
- 3Delight for XSI
- Rising Sun Pictures的Affogato,开源软件
- Graphic Primitives的XSIMan
工具
- RenderMan Studio
- RenderMan Pro Server
- RIBKit,开源的RenderMan工具集,包括一个图形界面的材质编辑器——SLer。
- RIBShrink和RIBDepends,3Delight渲染器附带的RIB精简工具和依赖处理工具。
- ShaderMan.Next,开源的材质编辑器,ShaderMan的重写。
编程语言实现
进阶阅读
- Apodaca, Anthony A.; Larry Gritz, Ronen Barzel. Advanced RenderMan: Creating CGI for Motion Pictures. San Francisco: Morgan Kaufmann Publishers. 1999. ISBN 1-55860-618-1. OCLC 42621055.
- Ebert, David S.; F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley. Texturing and modeling: a procedural approach, 3rd ed.. Burlington, MA: Morgan Kaufmann Publishers. 2003. ISBN 1-55860-848-6. OCLC 52689816.
- Raghavachary, Saty. Rendering for Beginners: Image synthesis using RenderMan. Burlington, MA: Focal Press. 2005. ISBN 0-240-51935-3. OCLC 57670361.
- Stephenson, Ian. Essential RenderMan Fast. London, New York: Springer. 2002. ISBN 1-85233-608-0. OCLC 50494960.
- Upstill, Steve. The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics. Reading, Mass: Addison-Wesley. 1990. ISBN 0-201-50868-0. OCLC 19741379.
- Cortes, Rudy; Saty Raghavachary. The RenderMan Shading Language Guide. Course Technology PTR. 2007. ISBN 1-598-63286-8.
参见
参考来源
- ^ RenderMan规范主页. [2009-06-12].
外部链接
- RenderMan规范,——规范的官方页面
- RenderMan仓库
- Malcolm Kesson教授的CG参考和教程
- RenderMan笔记
- Dominik Susmel的RenderMan Shader Language
- Rendering for Beginners里用到的 RIB文件和材质(shader)