在.material文件,可以将参数scene_blend设置为add,modulate或alpha_blend.
(1) scene_blend add(是将渲染出的颜色和亮度一起叠加到渲染场景中)
你可以使用JPEG或PNG图像文件作为纹理。
图片的黑色部分将变成透明(即black = fully transparent)
通常用作爆炸、火焰、灯光等。
(2)scene_blend modulate(将渲染输出的颜色叠加到渲染场景中)
你可以使用JPEG或PNG图像文件作为纹理。纹理将和背景相乘(multiply)。通常,它将图片着色或变黑。图片的黑色部分将变成透明。
通常用作烟熏的玻璃、半透明物体等。
(3)scene_blend alpha_blend(将渲染输出的亮度叠加到渲染场景中)
你应该用PNG文件作为纹理。为了使你的PNG文件有透明效果,你应该在Photoshop中将背景层传给垃圾桶(trashcan),并在其他层中使用橡皮擦(eraser)。
被擦去的部分将变成透明的。
(4)scene_blend colour_blend(将渲染输出的alpha值进行遮罩缓和)
可以用如下的脚本来创建一个透明颜色的材质(参考):
- material Template/Red50
- {
- technique
- {
- pass
- {
- scene_blend alpha_blend
- depth_write off
- texture_unit
- {
- colour_op_ex source1 src_manual src_current 1 0 0
- alpha_op_ex source1 src_manual src_current 0.5
- }
- }
- }
- }
(1)colour_op
简单的纹理混合方式,我们可以使用预定义的4项枚举:
Replace 不处理,用当前的纹理直接替换掉后面的所有颜色。覆盖式。
Add 将当前纹理色和后面的渲染颜色进行加法处理。
Modulate 将当前纹理色和后面的渲染颜色进行乘法处理。
Alpha_blend 将当前纹理和后面的纹理进行alpha颜色混合。
默认为 colour_op modulate 当前纹理色和后面颜色进行乘法混合。
(2)colour_op_ex
高级的纹理混合模式,可以详细的指定混合系数和效果,但个人不推荐使用。效率消耗较大,且受不用的硬件限制性大,使用默认支持的4种混合模式可以了。
格式: colour_op_ex <operation> <source1> <source2> [<manual_factor>] [<manual_colour1>]
[<manual_colour2>]
示例: colour_op_ex add_signed src_manual src_current 0.5
默认: none (colour_op modulate)
同colour_op_ex,不推荐使用。
(4)env_map
设置环境映射效果。该项可以使用预定义的五个选项
Off 关闭环境映射反射。 默认即本项。
Spherical 开启球面环境映射。 它需要一个单独的纹理,该纹理进行周围反射的记录。
Cubic_reflection 开启平面环境映射。
(5)tex_address_mode
纹理寻址模式。即当纹理UV值大于1.0时的纹理处理方法。参数有以下几种枚举选择:
Wrap 会将所有UV值大于1.0的值设置为0.0,纹理会被重复连续绘制。
Clamp 会将所有UV值大于1.0的值设置为1.0,超过1.0的其它地方的纹理,沿用最后像素的纹理。用于当叠加过滤时,需要从0.0
到1.0精确覆盖且没有模糊边界的纹理。 这样的话就相当于在模糊边界。
Mirror 会当UV值等于1.0的时候,将纹理反转后连续绘制。
Border 超过1.0的UV都会被设置为边界色,就是描边效果。此项可设置tex_border_colour属性。
(6)cubic_texture
创建一个立方体纹理。这个一般用于反射映射和天空盒中。其格式和动态纹理一样,有两种方式,一种是Ogre制定的规范,我们调用就更加简单,如下
Cubic_texture skybox.jpg combinedUVW
我们仅提供一个基础的纹理名,此时OGRE会默认的去查找skybox_fr.jpg, skybox_bk.jpg, skybox_up.jpg, skybox_dn.jpg, skybox_lf.jpg, skybox_rt.jpg这些纹理。
第二中方式则是按照“前后上下左右”的顺序将这些纹理罗列出来。
最后一个参数需要设置为combinedUVW或separateUV, combinedUVW会将纹理组合到一个立方体纹理映射中,带有UVW三维纹理坐标,适合做反射映射。而separateUV仅仅保存2D的UV坐标,适用于天空盒。
转载自:http://blog.csdn.net/zhuxiaoyang2000/article/details/6555756