0

キューブにテクスチャをプッシュするために 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()                            
4

1 に答える 1

1

キューブ マップは文字通りの「キューブにテクスチャを配置する」ものではありません。これは、2D、3D などのテクスチャ タイプとは別の一種のテクスチャです。

2D テクスチャは、2D 空間内の位置を使用してアクセスする 2D イメージです。3D テクスチャは、3D 空間内の位置を使用してアクセスする 3D イメージです。キューブ マップは、3D 方向を使用してアクセスする 6 つの 2D 画像のセットです。立方体の中心に座っている自分を想像してみてください。あらゆる方向に、その立方体上の場所があります。これは、指定された方向でキューブ マップにアクセスすることで得られる色です。

于 2012-06-04T21:04:48.613 に答える