Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyglet,图像的边缘像素正在被包装_Python_Image_Pyglet - Fatal编程技术网

Python Pyglet,图像的边缘像素正在被包装

Python Pyglet,图像的边缘像素正在被包装,python,image,pyglet,Python,Image,Pyglet,我目前正在用Python开发游戏,并一直推迟尝试解决这个问题 出于某种原因,我的图像分幅的边缘正缠绕在图像的另一侧。看起来不是很大,只是很小的亚像素数量 这是一个屏幕截图的特写镜头,所以你可以看到我的意思,很明显,通过这些简单的瓷砖,在某些地方比其他地方更明显(看到橙色的一面,从另一边可以看到道路) 此问题是由于图像边缘存在较小的浮点精度问题造成的。OpenGL必须在没有给出更多值的边缘处对某些值进行插值。正常操作是GL_REPEAT,这意味着纹理的环绕效果。您需要的是GL_CLAMP,但这必须

我目前正在用Python开发游戏,并一直推迟尝试解决这个问题

出于某种原因,我的图像分幅的边缘正缠绕在图像的另一侧。看起来不是很大,只是很小的亚像素数量

这是一个屏幕截图的特写镜头,所以你可以看到我的意思,很明显,通过这些简单的瓷砖,在某些地方比其他地方更明显(看到橙色的一面,从另一边可以看到道路)


此问题是由于图像边缘存在较小的浮点精度问题造成的。OpenGL必须在没有给出更多值的边缘处对某些值进行插值。正常操作是GL_REPEAT,这意味着纹理的环绕效果。您需要的是
GL_CLAMP
,但这必须在创建纹理时声明,好的

glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, CL_CLAMP )
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP )

不幸的是,我不知道如何将其与pyglet集成。可能有创建选项?

这是一个非常好的开始,如果没有人回答pyglet,我会标记它(我不知道如何将参数传递到pyglet.image)这让我走上了正确的方向,我最终需要使用钳制到边缘以防止得到黑色光晕gl.glTexParameteri(gl.gl_纹理_2D、gl.gl_纹理_包裹、gl.gl_夹紧至_边缘)gl.GLTEX参数(gl.gl_纹理_2D、gl.gl_纹理_包裹、gl.gl_夹紧至_边缘)