我正在尝试使用以下代码从现有文件中绘制带有TextureGrid的Skybox:
boxname = 'skybox1.jpg'
print('Loading',boxname)
skygrid = image.load(os.path.join('Assets', boxname))
sky_grid = image.ImageGrid(skygrid, 3,4)
sky = image.TextureGrid(sky_grid) # as per the documentation
sky_frames = [sky[4], sky[6], sky[9], sky[1], sky[7], sky[5]]
我得到的错误回溯:
Loaded skybox1.jpg
Traceback (most recent call last):
File "C:PythonPython36libsite-packagespygletresource.py", line 435, in file
location = self._index[name]
KeyError: <TextureRegion 64x64>
TextureImage
错误地尝试使用resource
来读取TextureRegion
,就好像它是文件一样。我在 Python 36 上。我已经升级到最新的 Pyglet,但没有变化。我已经查看了 Pyglet 图像、gl 和资源代码,但我并不明智。
首先加载图像网格很好。 事实证明,图像网格内容是构建立方体图像纹理所需的内容,因此我根本不需要使用纹理网格。 仍然有点令人不安的是,记录的功能无法正常工作。
这解决了我的问题:
skygrid = image.load('Assets/skybox/' + boxname)
print('Loaded',boxname,'Format wxh',skygrid.format,(skygrid.width,skygrid.height))
skyg = image.ImageGrid(skygrid,3,4) # pyglet reverses y axis so swap top,btm
sky = image.TextureGrid(skyg) # extract 6 face textures in that order
skyFace = [sky[4], sky[6], sky[9], sky[1], sky[7], sky[5]] # image data
所以我现在可以显示网格格式的立方体图。