爲了調試我的着色器,我試圖顯示立方體貼圖的正面。 立方體地圖是在彼此的頂部上的6面的125x750圖像:使用GLKit加載立方體貼圖後,iOS上openGL ES 2.0的正確立方體貼圖座標是什麼?
首先,我加載立方體地圖GLKit:
_cubeTexture = [GLKTextureLoader cubeMapWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"uffizi_cube_map_ios" ofType:@"png"] options:kNilOptions error:&error];
然後我將其加載到着色器:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_CUBE_MAP, self.cubeTexture.name);
glUniform1i(glGetUniformLocation(self.shaderProgram, "cube"), 0);
然後,在片段着色器:
gl_FragColor = textureCube(cube, vec3(-1.0+2.0*(gl_FragCoord.x/resolution.x),-1.0+2.0*(gl_FragCoord.y/resolution.y),1.0));
這將顯示這似乎是立方圖的頂部的一部分的失真圖像:
它不應該被扭曲,並且它應該顯示的右表面,而不是頂面。
我無法找到任何描述座標映射到多維數據集的文檔,所以我做錯了什麼?
這就是我的想法。雖然立方體座標從-1到1而不是0到1的事實有點令人驚訝。儘管如此,我更新的代碼仍然不會產生正確的輸出。此代碼: vec2 coords = vec2(-1.0 + 2.0 *(gl_FragCoord.x/resolution.x), - 1.0 + 2.0 *(gl_FragCoord.y/resolution.y)); gl_FragColor = textureCube(cube,vec3(coords,1.0)); 產生此輸出: http://postimg.org/image/jkqjdz87t/ – xytor 2014-10-03 17:45:19