查看: 1571|回复: 6

关于教程

[复制链接]

该用户从未签到

发表于 2012-12-19 16:56:48 | 显示全部楼层 |阅读模式
教程12.2
向着色器传递变量数据
代码中//bumpMapProgramObject->setUniform("LightPosition", osg::Vec3(0,0,1));
       //bumpMapProgramObject->setSampler("normalMap",1);
       //bumpMapProgramObject->setSampler("baseTexture",0);
注释了,改为用bumpMapState->addUniform(lightPosU);
       bumpMapState->addUniform(normalMapU);
       bumpMapState->addUniform(baseTextureU);
是为什么呢?我查过,osg::program没有成员函数setUniform、setSampler,是不是该版了啊?还是什么其他原因,求解答啊

该用户从未签到

发表于 2012-12-20 07:51:56 | 显示全部楼层
首先确定您所谓的教程所使用的osg version 然后在确定您现在使用的osg version

该用户从未签到

 楼主| 发表于 2012-12-20 10:22:05 | 显示全部楼层
那个教程就是在osg官网中的教程啊

该用户从未签到

发表于 2012-12-20 12:39:24 | 显示全部楼层
00450681 发表于 2012-12-20 10:22
那个教程就是在osg官网中的教程啊

自己看一下src的实现不就可以了么?这难道也是问题了?

该用户从未签到

 楼主| 发表于 2012-12-20 15:10:13 | 显示全部楼层
算吧,我研究一下吧

该用户从未签到

发表于 2012-12-21 09:39:52 | 显示全部楼层
addUniform现在是StateSet的方法,不是Program的,这也是为了Uniform共享和继承的考虑。注释掉的代码可能是因为很早期的版本使用了不同的接口而已。

该用户从未签到

 楼主| 发表于 2012-12-21 16:41:05 | 显示全部楼层
好的,谢谢array大神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表