PyOpenGL多维数据集映射纹理

我试过texture_2D来推动我的立方体的纹理。 那没问题。

但是当我使用TEXTURE_CUBE_MAP纹理不可见。 只是一个黑色立方体。

有谁能够帮助我?

#### INIT FUNCTION
textureIDs = glGenTextures(1)                                                                                                                                                                                                       

glBindTexture(GL_TEXTURE_CUBE_MAP, textureIDs)                                                                                                                                                                                      
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)                                                                                                                                                           
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)                                                                                                                                                           
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE)                                                                                                                                                           
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR)                                                                                                                                                              
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR)   

glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGB, imgRaw.size[0], imgRaw.size[1], 0, GL_RGB, GL_UNSIGNED_BYTE, img)                                                                                                           


..... (for the other five also)


####DISPLAY FUNCTION
glEnable(GL_TEXTURE_GEN_S)                                                                                                                                                                                                          
glEnable(GL_TEXTURE_GEN_T)                                                                                                                                                                                                          
glEnable(GL_TEXTURE_GEN_R)                                                                                                                                                                                                          
glEnable(GL_TEXTURE_CUBE_MAP)                                                                                                                                                                                                       

glEnableClientState(GL_VERTEX_ARRAY)              


myVBO.bind()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

glUseProgram(program) #shader frag and vert                                                                                                                                                                                                               
varLocation = glGetUniformLocation(program, "mvpMatrix")                                                                                                                                                                            
glUniformMatrix4fv(varLocation , 1, GL_TRUE, mvpMat.tolist())                                                                                                                                                                       


glVertexPointer(3, GL_FLOAT, 32, myVBO)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
glBindTexture(GL_TEXTURE_CUBE_MAP, textureIDs)                                                                                                                                                                                     
glDrawArrays(GL_QUADS, 0 ,len(data))                                                                                                                                                                                                
myVBO.unbind()                            

立方体贴图不是一个文字“将纹理放在立方体上”。 它是一种纹理,与2D,3D等纹理类型分开。

2D纹理是2D图像,您可以使用2D空间中的某个位置进行访问。 3D纹理是一种3D图像,您可以使用3D空间中的位置进行访问。 立方体贴图是您使用3D方向访问的一组6个2D图像。 想象自己坐在一个立方体的中心。 在每个方向都是该立方体上的一个位置。 这是通过访问具有给定方向的立方体贴图获得的颜色。

链接地址: http://www.djcxy.com/p/81849.html

上一篇: PyOpenGL Cube Mapping Textures

下一篇: Quaternion cube rotation animation