游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2233|回复: 0

关于ogre中使用hlsl时,传参数的问题

[复制链接]

12

主题

27

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2007-9-5 17:51:00 | 显示全部楼层 |阅读模式
我在一个使用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.
不知道问题出在那里?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-18 21:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表