查看: 2598|回复: 5

请问在osg中如何设置opengl shader中的uniform变量值

[复制链接]

该用户从未签到

发表于 2009-2-13 11:06:09 | 显示全部楼层 |阅读模式
这是我的shader程序,我想把 uniform变量的值改变,请问如何做?

uniform vec3  SurfaceColor; // (0.75, 0.75, 0.75)
uniform vec3  WarmColor;    // (0.6, 0.6, 0.0)
uniform vec3  CoolColor;    // (0.0, 0.0, 0.6)
uniform float DiffuseWarm;  // 0.45
uniform float DiffuseCool;  // 0.45

varying float NdotL;
varying vec3  ReflectVec;
varying vec3  ViewVec;

void main (void)
{
    vec3 kcool    = min(CoolColor + DiffuseCool * SurfaceColor, 1.0);
    vec3 kwarm    = min(WarmColor + DiffuseWarm * SurfaceColor, 1.0);
    vec3 kfinal   = mix(kcool, kwarm, NdotL);
}

该用户从未签到

发表于 2009-2-13 12:43:52 | 显示全部楼层
StateSet::addUniform()函数,可以参看osgshaders例子以及NAVY海军研究生教程(本站教程区置顶)

此外烦请提问的朋友:如果您的问题不涉及私密的话,请直接在论坛上发帖,不必再用短消息发给我一份;即使是短消息我也不会立即知道,只有登陆论坛网页之后才能看到,因此也无法节省您的提问时间。
不必担心您帖子中的问题是否过于浅显或者晦涩。版主和版内的朋友会尽力回复您的问题,并保证不会有攻击性和侮辱性的词汇出现。

该用户从未签到

 楼主| 发表于 2009-2-15 13:50:52 | 显示全部楼层

发什么广告贴

版主请删此用户

该用户从未签到

发表于 2010-9-28 22:42:37 | 显示全部楼层
3# panbin

Array 就是版主,而且那也不是广告 呵呵

该用户从未签到

发表于 2014-5-19 10:32:24 | 显示全部楼层
改怎么传数组呢?
"uniform vec4 change_points[];\n"


该用户从未签到

发表于 2015-3-20 17:24:42 | 显示全部楼层
xiaol_deng 发表于 2014-5-19 10:32
改怎么传数组呢?
"uniform vec4 change_points[];\n"

同求啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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