gpt4 book ai didi

android - 在 Android 上使用 GLES31ext 编译几何着色器?

转载 作者:行者123 更新时间:2023-11-30 01:32:48 24 4
gpt4 key购买 nike

我想将几何着色器附加到我现有的(和工作中的)顶点和 fragment 着色器。负责构建程序的代码 fragment :

    int geometryShader = GLES31.glCreateShader(GLES31Ext.GL_GEOMETRY_SHADER_EXT);
glShaderSource(geometryShader, geometryShaderSource);
glCompileShader(geometryShader);

// Error checking:
glGetShaderiv(geometryShader, GL_COMPILE_STATUS, success, 0);
if(success[0] == 0)
Log.v(Debug.shaderHelper, "Geometry Shader Compile Failed: " + glGetShaderInfoLog(geometryShader));


int program = glCreateProgram();
glAttachShader(program, vertexShader);
glAttachShader(program, geometryShader);
glAttachShader(program, fragmentShader);

glLinkProgram(program);

这是几何着色器:

#version 310 es
layout (triangles) in;
layout (triangle_strip) out;
layout (max_vertices = 3) out;

void main(void){
int i

for (i = 0; i < gl_in.length(); i++){
//gl_Position = gl_in[i].gl_Position;

gl_Position = vec4(0.0);

//EmitVertex();
}

//EndPrimitive();
}

这个着色器应该只是一个直通着色器(目前只是为了测试)。问题是几何着色器代码对顶点的最终处理没有影响。即使我注释掉了代码的重要部分,它仍然有效。 (更不用说缺少的分号了。)

即使我检查了错误,也没有记录错误。

所以我的问题是:

  • 如何在 android 上编译几何着色器?

  • 为什么没有错误?

  • 我可以像顶点和 fragment 着色器一样将几何着色器附加到程序吗?

最佳答案

我发布的代码很好,这就是添加几何着色器的方式。我的设备不支持此扩展,这就是它没有提供任何错误日志的原因。事实证明,android os 版本与 opengl 版本和扩展(5.0 os 和 3.0 opengl 版本)无关。

关于android - 在 Android 上使用 GLES31ext 编译几何着色器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35525542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com