Ogre材质脚本中定义参数变量


1、顶点着色程序中传递参数:

GpuProgramParametersSharedPtr params = entity->getSubEntity(0)->getMaterial()->
getTechnique(0)->getPass(0)->getVertexProgram().createParameters();
params->setNamedConstant(“ambient”,  ColourValue(0.5, 0.5 0.5 1.0));

2、片段着色程序中传递参数:

      脚本中:

param_named_auto worldMatrix3x4Array[0] world_matrix_array_3x4
param_named_auto viewProjectionMatrix viewproj_matrix
param_named_auto ambient custom 12

    后面额外的参数(“12)是用来传递给Ogre程序来辨认到底是绑定到哪个参数上面。被绑定到GPU程序中的变量类型只能是4-vector(四元向量)类型(换句话说,就是Ogre中的Vector类),但是从CPUGPU传递数据具体的含义可以任你确定,比如在我们现在的例子中,我们认为这个定制的参数的意义是RGBA各式的颜色值。

      程序中:

Vector4 myColor;
entity->getSubEntity(0)->setCustomParameter(12, myColor);

   现在,当GPU程序开始执行渲染到这个通路的时候,Ogre会自动的提供当前的myColor变量的值作为参数。而我们在脚本中使用的索引(“12)的唯一目的就是为了查询绑定参数,需要注意的是,这个索引值不可以为0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值