我正在尝试将uniform变量绑定到特定位置,但目前还无法解决:
要绑定属性(例如顶点/法线数据),我使用以下代码:
Override
protected void bindAttributes() {
super.bindAttribute(1, "position");
super.bindAttribute(2, "textureCoords");
super.bindAttribute(3, "normal");
}
protected void bindAttribute(int attribute, String variableName){
GL20.glBindAttribLocation(programID, attribute, variableName);
}
我希望你能对统一变量进行类似的操作,当前我是这样获取自动分配位置的:
```
public int location_transformationMatrix;
public int location_lightPosition;
public int location_lightColour;
@Override
public void getAllUniformLocations(){
location_transformationMatrix = super.getUniformLocation("transformationMatrix");
location_lightPosition = super.getUniformLocation("lightPosition");
location_lightColour = super.getUniformLocation("lightColour");
}
然而,由于我绑定了属性,最好的结果是丢失光照和法线等数据,最糟糕的情况是游戏会崩溃,约有60%的人无法正常运行。
#version 130
,这仍然有效吗? - Joehot200#version 430
。或者你有可用的特定扩展。 - BDL