皮格莱特形象.TextureGrid 在给定 ImageGrid 时出错



我正在尝试使用以下代码从现有文件中绘制带有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

所以我现在可以显示网格格式的立方体图。

相关内容

  • 没有找到相关文章

最新更新