Ogre--Pass 属性

Pass 属性

Texture_unit 纹理单元

我们在PASS渲染通道处已经进行了一次整体的渲染环境设置,然而,在每个纹理单元,我们还可以对单独的纹理进行渲染属性设置。

  1. texture_alias
    设置一个纹理的别名。类似于技术的别名。格式: texture_alias 纹理别名
    默认该别名就是纹理单元的名字。
  2. texture
    本层要使用的静态纹理图象名字。可以简单的格式为
    Texture xxx.jpg (注意:纹理文件名禁止有空格)也可对其属性进行详细的设置。如下
    Texture xxx.jpg 2d 8 none PF_A8R8G8B8
    2d是装载的纹理类型,类型实际上包括1d(1象素的纹理点),2d(纹理面,默认也是该项),3d(3D带深度的纹理),cubic(有些类似天空盒式的贴在立方体内侧6个2D纹理,但是仅可贴同一种纹理,不如使用cubic_texture)
    8 是MipMap的层级,默认是unlinited,代表可以无限的对纹理进行mipmap,我们这里设置为8代表生成8个层级递减的MIPMAP。注意:若多个材质脚本中使用同一个纹理,切记他们的mipmap数量必须一致。
    None 这项是我们指定的单独的透明通道做为alpha进行装载,默认的为 none,表示以红色作为alpha通道。
    PF_A8R8G8B8纹理格式,常用的有PF_R5G6B5,PF_A4R4G4B4,PF_A8R8G8B8,PF_X8R8G8B8等。
  3. anim_texture
    与上面的texture对应,是用于活动的纹理层,即动态图象。注意,这里不是使用默认的保存好的.gif动画,而是导入多桢图,设置好桢之间的间隔时间。这里我们有两种方法。
    一种是按照Ogre内部规定对动画的纹理命名:xxx_0.jpg xxx_1.jpg xxx_2.jpg这样以0为首,加下划线递增命名,这样我们调用时会比较方便,这样便可以了
    Anim_texture xxx.jpg 3 2.2 即代表xxx_0.jpg这样命名的纹理有3张,间隔时间为2.2秒。
    另一种是非标准的纹理命名,则需要我们如下写:
    Anim_texture 1.jpg flame2.jpg xxx_3.png hit4.tga 2.2直接以空格间隔标示逐个标示出每一桢的纹理即可。
    注意:2.2是每桢间的间隔时间,若设置为0,则不会自动进行桢画面切换,需要我们代码中手工控制了。
  4. 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坐标,适用于天空盒。
  5. tex_coord_set
    因为一个Mesh网格允许有多套纹理坐标集,我们在这里设置使用哪套坐标集。格式为 tex_coord_set 3 (使用编号为3的坐标集)
    默认为 tex_coord_set 0
  6. tex_address_mode
    纹理寻址模式。即当纹理UV值大于1.0时的纹理处理方法。参数有以下几种枚举选择:
    Wrap 会将所有UV值大于1.0的值设置为0.0,纹理会被重复连续绘制。
    Clamp 会将所有UV值大于1.0的值设置为1.0,这样的话就相当于在模糊边界。
    Mirror 会当UV值等于1.0的时候,将纹理反转后连续绘制。
    Border 超过1.0的UV都会被设置为边界色,就是描边效果。此项可设置tex_border_colour属性。
  7. tex_border_colour
    和上一属性对应,设置纹理边界色,仅对Border纹理寻址有效。
    格式 : tex_border_colour RGBA(0.0 – 1.0取值)
  8. filtering
    纹理过滤形式:我们可以使用其预定的四种基本类型,包括
    None 不进行纹理过滤
    Bilinear 进行双线性纹理过滤。就是对mipmap进行挑选过滤,但是不对mipmap各个级别之间进行过滤
    Trilinear 进行三线性纹理过滤。将最近的两个mipmap一起进行过滤。
    Anisotropic 各向异性纹理过滤。使用该项,则你必须设置其max_anisotropy值。
    默认为bilinear。
  9. max_anisotropy
    最大各相异性程度偏差值。根据硬件不同一般限制为8或者16
    默认为 max_anisotropy 1
  10. mipmap_bias
    我们在Pass通道时已经允许设置mipmap纹理Lod运用层级以及适用的距离。在纹理单元这层级我们可以重新对其进行调整。格式为
    Mipmap_bias -3 后面的整数代表在所有的范围内强制使用增大或缩小的mip级别。-3代表,在所有范围内强制使用更大3级的mip纹理。
    默认是不进行层级偏移:mipmap_bias 0
  11. colour_op
    简单的纹理混合方式,我们可以使用预定义的4项枚举:
    Replace 不处理,用当前的纹理直接替换掉后面的所有颜色。覆盖式。
    Add 将当前纹理色和后面的渲染颜色进行加法处理。
    Modulate 将当前纹理色和后面的渲染颜色进行乘法处理。
    Alpha_blend 将当前纹理和后面的纹理进行alpha颜色混合。
    默认为 colour_op modulate 当前纹理色和后面颜色进行乘法混合。
  12. colour_op_ex
    高级的纹理混合模式,可以详细的指定混合系数和效果,但个人不推荐使用。效率消耗较大,且受不用的硬件限制性大,使用默认支持的4种混合模式可以了。
  13. colour_op_multipass_fallback
    当上面一个colour_op_ex设置要求过高,硬件无法支持多纹理混合时,则不得不调用该项进行多通路混合渲染。若我们使用的是colour_op预设置的4种纹理混合模式,则无需在此处理,OGRE底层已经做了完善的处理。
  14. alpha_op_ex
    同colour_op_ex,不推荐使用。
  15. env_map
    设置环境映射效果。该项可以使用预定义的五个选项
    Off 关闭环境映射反射。 默认即本项。
    Spherical 开启球面环境映射。 它需要一个单独的纹理,该纹理进行周围反射的记录。
    Cubic_reflection 开启平面环境映射。
  16. scroll
    静态纹理偏移。 个人感觉这个函数的存在意义完全是拿来弥补美术的小BUG。或者是个别情况下,事件响应时调用对纹理的修改?
    格式如下:scroll x y
  17. scroll_anim
    动态纹理偏移。 ……针对上一功能的补足。给纹理层一个移动速度进行偏移。
    格式为 scroll_anim xspeed yspeed
  18. rotate
    以固定角度静态旋转一个纹理。和scroll没什么区别。格式如下 rotate angle
    注: angle是逆时针旋转的角度数
  19. rotate_anim
    动态旋转一个纹理。 格式为 rotate_anim 3 代表每秒旋转3次360度。
  20. scale
    静态缩放一个纹理。 格式为 scale x_scale y_scale
  21. wave_xform
    制作类似于水面波纹性质的专用函数。可以制造出一个类似于波状的动态纹理变化形式。
    格式: wave_xform <xform_type> <wave_type>
    示例: wave_xform scale_x sine 1.0 0.2 0.0 5.0
    xform_type
    scroll_x
    变动x滚动值
    scroll_y
    变动y滚动值
    rotate
    变动旋转值
    scale_x
    变动x比例值
    scale_y
    变动y比例值
    wave_type
    sine
    典型的正弦波,在最小值和最大值之间平稳地循环。
    triangle
    以恒定的速度增加减少的有角度的波,在极值时立即改变。
    square
    最大是波长的一半,最小是瞬时转换之间的停止时间。
    sawtooth
    经过一段时间,从最小逐渐持续增加到最大,最后立即回到最小。
    inverse_sawtooth
    经过一段时间,从最大逐渐持续减少到最小,最后又立即返回最大。::base
    基值,如果amplitude > 0就是指最小值,amplitdue < 0就是指最大值。
    frequency
    波每秒重复的次数,即速度。
    phase
    波开始的偏移量。
    amplitude
    波的大小。
    波的输出范围在{base, base+amplitude}。所以,以在x方向调整纹理为例,沿正弦波方向从1(标准值)调整到5,即表示每5秒一个周期(每秒0.2个波)。
  22. transform
    为纹理提供一个4*4矩阵以直接替代上面的旋转,缩放,移动等一系列变化。
    格式为 transform m00 m01 m02 m03 m10 m11 m12 m13 m20 m21 m22 m23 m30 m31 m32 m33
  23. binding_type
    设置绑定类型。该纹理是绑定到片断处理单元还是顶点处理单元。格式为:
    Binding_type fragment / vertex
    默认为绑定片断处理单元。
  24. content_type
    设置纹理内容的来源类型。格式为 content_type named / shadow
    默认是为named,表示纹理单元图片来源于texture,cubic_texture,anim_texture之一,但个别时候我们需要使用阴影纹理,则此时可以设置为shadow
    注: 除去上面的纹理属性设置之外,假若我们需要更高级的纹理属性支持,可以使用外部纹理源。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值