【渲染教程】Renderman是什么?

19 十一月, 2014
206
0

Renderman是什么?

Renderman标准渲染器在强大的内存控制能力、巨量的数据类型支持以及高自定性图像输出能力方面都得到了业界的广泛公认。但是当你去问一个Renderman TD(Renderman技术指导)”什么是Renderman最为强大和吸引人的地方?”他多半会回答你”是可以通过RSL来编写任何需求的Shader!”

 

虽然绝大部分电影级渲染引擎都支持可编程纹理,不过他们使用的大多是C++或者别的类似计算机语言。Pixar早期的开发者发现使用C++之类的语言来实现高复杂程度的图形图像表现需求显得过于笨重。于是1990年的ACM Computer Graphics(现在的ACM Siggraphic)上Pixar公司发布了Renderman Shading Language标准。

Renderman Shading Language标准专门为Shader创作而设计。它继承了C语言固有的很多特征(Renderman Shading Language是类C语言)。作为初学者而言,完全没有学过编程也没有太大关系,Renderman Shading Language体系的概念是非常简单易懂的。下面我们简单的介绍一些RSL常识。
变量类型介绍:

RSL支持的变量分六个大类。

浮点(Floats)
浮点变量用于储存数值,大部分计算机语言中都习惯将浮点数变量(floats)和整形数变量(Integers)分开。但在RSL中他们同时储存于浮点变量中。
色彩(Color)
一个色彩变量有三个数值组成,如(0.4,1,0.5)。默认情况下每个数值分别对应的是R,G,B三个色彩通道的值。取值范围都是0至1。
矢量、点、法线(Vectors,Points,Normals)
这是在给物体进行Shading工作时及其重要的一组变量。在过去的RSL版本中,这三种类型共同使用”点”(Points)来描述。现在的RSL版本中都已将他们分开。矢量通常用于描述一个方向,如摄像机方向等等。点用于描述空间中的某一坐标。法线描述物体面的方向。
转换矩阵(Transfotmation Matrices)
转换矩阵通常用于同等空间转换和映射。
字符串(Strings)
和其他语言的字符串变量相近。
队列(Arrays)
这是新的RSL变量,用于反复调用一组参数给Shader。
全局常量(Global Variables)
RSL提供了很多常量。他们是Shader中必须的变量。分可写和不可写常量。查询常量表点击此处。

转载于:chaoskids.org