|
|
我在一个使用hlsl的ogre例子中,在顶点脚本中添加了两个参数posx和posy,其他的参数是ogre例子中以前就有的,具体如下:
VS_OUTPUT main(float4 pos : POSITION,
float4 normal : NORMAL,
float2 tex : TEXCOORD0,
uniform float4x4 worldViewProjMatrix,
uniform float timeVal,
uniform float scale,
uniform float posx,
uniform float posy
)
然后我在扩展名为.material材质脚本中也添加了这个参数的默认值,如下:
vertex_program_ref VS
{
param_named_auto worldViewProjMatrix worldviewproj_matrix
param_named_auto timeVal time 0.05
param_named scale float 50
param_named posx float 1.25
param_named posy float 2.35
}
但是,当我在代码中通过
Ogre::GpuProgramParametersSharedPtr para=mat->getTechnique(0)->getPass(0)->getVertexProgramParameters();
if (para->_findNamedConstantDefinition("posx"))
{
para->setNamedConstant("posx",val);
}
却总是找不到posx这个参数,并有这样的日志信息:
OGRE EXCEPTION(2:InvalidParametersException): Parameter called posx does not exist.
不知道问题出在那里? |
|