-1
我已經得到了天空盒的工作,除了它需要六個文件。我想知道如何使用1個文件而不是6個文件。我看遍了互聯網,找不到任何可行的東西。下面是將這些圖像到立方體貼圖的loadCubeMap功能:你如何製作單幅影像天空盒?
public int loadCubeMap(String[] textureFiles){
int texID = GL11.glGenTextures();
GL13.glActiveTexture(GL13.GL_TEXTURE0);
GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, texID);
for(int i=0;i<textureFiles.length;i++){
TextureData data = decodeTextureFile("res/" + textureFiles[i] + ".png");
GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL11.GL_RGBA, data.getWidth(), data.getHeight(), 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, data.getBuffer());
}
GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
textures.add(texID);
return texID;
}
什麼形象?你知道佈局嗎?有關如何從'TextureData'中提取圖像部分的問題?請更具體一些。 – keltar 2015-03-31 07:01:08
@keltar從代碼我看到他的當前立方體地圖是在6個PNG圖像。我相信他希望在一個單一的文件 – 2015-03-31 07:02:37
@ratchetfreak我可以看到,但它可能意味着不同的事情。壓縮6 pngs是1個文件;使用多表面文件格式是一個文件;將所有圖像合併爲單個2D也是一個文件。如果使用最後一個選項,圖像可能包含不同的佈局(在一行中設置全部6個或其他任何內容),並且加載器必須注意這一點。 – keltar 2015-03-31 07:41:28