OGRE手册--脚本<Pass>
------------摘自<OGRE中文帮助手册>
渲染通路(Pass)
一个渲染通路就是几何问题里的一次渲染;一个带有一整套渲染属性的渲染API的一次调用。一个技术可以包
含有1到16个渲染通路,当然,渲染通路用得越多,技术在渲染的时候开销越大.
无效情况:
ambient ,diffuse ,specular ,emissive 在下面情况下无效
当asm,CG,HLSL(High Level Shader Language高级渲染语言)使用时,该属性无效。与GLSL()一起使用时,渲染器可以读OpenGL材质状态。
使用了'lighting off'
任何纹理层有'colour_op replace'属性
ambient : 周围环境的反射系数
格式: ambient (<red> <green> <blue> [<alpha>]| vertexcolour)
数值的取值范围在0.0到1.0之间。
示例: ambient 0.0 0.8 0.0
默认: ambient 1.0 1.0 1.0 1.0
diffuse : 漫反射系数
格式: diffuse (<red> <green> <blue> [<alpha>]| vertexcolour)
数值的取值范围在0.0到1.0之间。
示例: diffuse 1.0 0.5 0.5
Default: diffuse 1.0 1.0 1.0 1.0
specular : 反射系数
格式: specular (<red> <green> <blue> [<alpha>]| vertexcolour) <shininess>
数值的取值范围在0.0到1.0之间。闪耀值(shininess)可以是任意比0大的值。
示例: specular 1.0 1.0 1.0 12.5
默认: specular 0.0 0.0 0.0 0.0 0.0
emissive : 自发光的量
格式: emissive (<red> <green> <blue> [<alpha>]| vertexcolour)
数值的取值范围在0.0到1.0之间。
示例: emissive 1.0 0.0 0.0
默认: emissive 0.0 0.0 0.0 0.0
scene_blend : 此渲染通路与场景中现有的内容混合的方式
这个混合是将此渲染通路的输出结果与当前渲染目标的内容相结合
格式1: scene_blend <add|modulate|alpha_blend|colour_blend> 枚举参数
示例: scene_blend add
add
渲染输出的颜色被叠加到场景中,用在爆炸、闪光、闪电、鬼魂等地方效果很好。相当于“scene_blend one
one”
modulate
另一种将渲染输出加到场景内容中,一般用于给场景着色和加深场景颜色。对于浓烟弥漫的玻璃,半透明的物
体等,有很好的使用效果。相当于“scene_blend dest_colour zero”。
colour_blend
基于输入文件的亮度给场景着色,但是并不加深颜色。相当于“scene_blend src_colour
one_minus_src_colour”。
alpha_blend
渲染输出的alpha值被用作遮罩。相当于“scene_blend src_alpha one_minus_src_alpha”
格式2: scene_blend <src_factor> <dest_factor>
示例: scene_blend one one_minus_dest_alpha
默认: scene_blend one zero (这句意为不透明的)
最终被写入渲染目标的颜色结果是(texture * sourceFactor) + (scene_pixel * destFactor)。
one
常数值1.0
zero
常数值0.0
dest_colour
已存在的像素颜色
src_colour
纹理像素颜色
one_minus_dest_colour
1 -(dest_colour)
one_minus_src_colour
1 -(src_colour)
dest_alpha
已存在的像素alpha值
src_alpha
纹理像素alpha值
one_minus_dest_alpha
1 -(dest_alpha)
one_minus_src_alpha
1 -(src_alpha)
lighting 如果使用了顶点程序,则此属性无效。
格式: lighting <on|off>
默认: lighting on