首页 > 技术文章 > GLSL数组类型、浮点数Uniform

coolbear 2019-04-03 17:48 原文

// 添加shader中的uniform
    ss->addUniform(new osg::Uniform("test1", false));
    //设置shader中的uniform值
    //ss->getUniform("test1")->set(false);
    ss->addUniform(new osg::Uniform("test2", 63.0f));//注意float类型的uniform,这里一定要加上后缀f

    // 数组类型的uniform,数组大小必须与.glsl中的数组大小保持一致
    osg::FloatArray* g_GaussNum = new osg::FloatArray(10);
    osg::Uniform* gauss_num = new osg::Uniform(osg::Uniform::FLOAT, "gauss_num", g_GaussNum->size());
    gauss_num->setArray(g_GaussNum);

uniform bool test1=true;
uniform float test2=15.0;
uniform float gauss_num[10];

推荐阅读