我现在知道如何在openGL着色器代码中使用sampler2D对象,但是我想在LWJGL中使用它,并且在Internet上找不到任何简单的代码或教程,其中只显示了重要的行。我知道您必须使用
将单元号绑定到sampler2D单元的位置int loc = getUniformAdress(uniformName);
glUniform1i(loc, unitNr);
然后我还找到了像
这样的代码段glActiveTexture(GL_TEXTURE0 + unitNr);
最后我知道,毕竟你必须通过
将纹理的整数值绑定到单位glBindTexture(GL_TEXTURE_2D, textureLoc);
但对我来说,仍然不清楚如何混合所有这些以及如何加载图片并使textureLoc值可用。
对此有基本知识的人可能只是给我一个代码示例如何做到这一点?我不需要着色器编码器或类似的东西,只是如何将纹理文件(可能是PNG)绑定到着色器。
答案 0 :(得分:1)
我不会写很多Java,但怀疑OpenGL调用的顺序在不同语言中是相同的。
初始化需要在程序运行中至少执行一次,通常在开始时。
在渲染帧功能中:
其他序列也是可能的。我还建议再看一下http://www.opengl.org/wiki/GLSL_Sampler#Binding_textures_to_samplers。