相同的偏移量在OpenGL中的共享型统一缓冲对象中为4个不同的浮点数
same offset in a shared-type uniform buffer object in OpenGL for 4 different floats
我目前正在编写一个使用新的ogl3功能ubos的手机聚光灯着色器。我在着色器中的缓冲对象是:
Uniform Light {
vec3 origin;
vec3 color;
vec3 direction;
float intensity;
float linear_dissipation;
float illu_angle;
float max_illu_angle;
} Light[8];
当我通过函数
计算各种偏移量时glGetActiveUniformsiv ()
程序返回
<>之前原点:0颜色:16强度:48方向:32Illu_angle: 48Max_illu_angle: 48线性耗散:48之前我不能使用我的强度,illu_angle, max_illu_angle和linear_耗散变量(好吧,只有一个:D)。
考虑到origin
, color
和direction
都在16字节上对齐,我假设OpenGL将最后四个浮点合并为单个vec4
。
您是否真的尝试使用其中一个来验证它们是否有别名?
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 使用提升将数据从 PyObject 复制到浮点数 *
- 使用浮点数和双精度数的非常小数字的数学
- 使用英特尔内联函数将打包的 8 位整数乘以浮点数向量
- 如何在 c++ 中将小数点后两位数的浮点数分配给另一个浮点数
- 返回浮点数的小数位数
- txt 文件中浮点数的最大和最小值
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 将浮点数转换为无符号字符数组并打印出来
- 如何将时间字符串 (M:SS) 转换为浮点数
- 如何使用 c++ 模板实现整数、字符串、浮点数和日期对象的数组
- 如何在不使用对象的情况下连接字符串、整数和浮点数
- 如何创建一个类似"范围"的浮点数可迭代对象?
- 我可以在CUDA设备上为包含浮点数数组的对象分配内存吗
- 无法理解浮点数和对象实例化之间比较的原因
- 如何将 c++ 字符串对象的元素转换为浮点数
- 相同的偏移量在OpenGL中的共享型统一缓冲对象中为4个不同的浮点数
- GLSL:统一缓冲区对象中的浮点数组