6
私は特定の場所に均一な変数をバインドしようとしていますが、私は現在、どのようにうまくいかないことができます。GLSLで一様な場所をバインドするにはどうすればよいですか?
をバインドするには、(その例頂点/ノーマルデータ用)属性、私は次のコードを使用します。
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
いいえ、私が言ったように、OpenGL 4.3以上が必要です。これは '#version 430'を意味します。または、特定の内線番号を使用できます。 – BDL