相关疑难解决方法(0)

GLSL float/vec3/vec4数组最大大小= GL_MAX_VERTEX_UNIFORM_VECTORS?

我跑

glGetIntegerv(GL_MAX_VERTEX_UNIFORM_VECTORS, &maxVertUniformsVect);
Run Code Online (Sandbox Code Playgroud)

得到1024.

比我在GLSL做的

uniform mediump vec4[1020] instance_mat
Run Code Online (Sandbox Code Playgroud)

那没关系.但是使用vec3/vec2/float它会失败:

uniform mediump float[1030] instance_mat;          // fails
//uniform mediump vec2[1030] instance_mat;         // and this
//uniform mediump vec3[1030] instance_mat;         // and this
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

无法找到合适的资源来绑定变量"instance_mat".可能是大阵列.

问题是:GL_MAX_VERTEX_UNIFORM_VECTORS是否返回所有类型的数组,无论它们的大小是多少?我的意思是,无论这个浮动/ vec2/vec3/vec4 - 都算作一个VERTEX_UNIFORM_VECTOR?


顶点着色器代码,原样如下:

#version 120
uniform mediump float[1200] instance_mat;        //mat4x3
attribute mediump float instaceIdF;             // in range 0..1000 Will be converted to int

attribute mediump vec3 vertex_;
attribute lowp vec4 color;
uniform mediump mat4 matrix;
varying lowp vec4 v_color;

void main(void)
{
    v_color = color;


        int …
Run Code Online (Sandbox Code Playgroud)

opengl glsl

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

glsl ×1

opengl ×1