GLSL传递数组
数组 传递
2023-09-11 14:15:24 时间
static const char *microshaderFragSource = { "varying vec4 color;\n" "uniform bool test1=true;\n" "uniform float test2=15.0;\n" "uniform float gauss_num[10];\n" "void main(void)\n" "{\n" " if(test1)\n" " gl_FragColor = clamp( color, 0.0, 1.0 );\n" " else\n" " gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n" "}\n" };
// 数组类型的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);
//如果是vec2类型的数组,使用FLOAT_VEC2,setElement循环设置每一个元素 // 给uniform添加一个回调 osg::Uniform* OffsetUniform = new osg::Uniform("Offset", osg::Vec3(0.0f, 0.0f, 0.0f)); OffsetUniform->setUpdateCallback(new AnimateCallback()); ss->addUniform(OffsetUniform);
相关文章
- php在cli模式下取得命令行中的参数的方法-getopt命令行可传递数组-简单自定义方法取命令行参数
- Java实现 LeetCode 565 数组嵌套(没有重复值的数组)
- Java实现 蓝桥杯 算法训练 动态数组使用
- Python检查数组元素是否存在类似PHPisset()方法
- PHP获取二维数组中某一列的值集合
- Java数组转成list,list转数组
- 540. 有序数组中的单一元素
- [Go] golang 两个数组 list 的合并方式
- PHP 求解数组的交集或者差集
- NC22 合并两个有序的数组
- php 多维数组如何用foreach遍历修改其中的一个值
- LabVIEW使用Search 1D Array无法找到到数组中的浮点数
- LabVIEW DLL传递一个二维数组报错
- c语言函数传递数组