本文整理汇总了Python中texture.Texture.loadImage方法的典型用法代码示例。如果您正苦于以下问题:Python Texture.loadImage方法的具体用法?Python Texture.loadImage怎么用?Python Texture.loadImage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类texture.Texture
的用法示例。
在下文中一共展示了Texture.loadImage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: renderSkin
# 需要导入模块: from texture import Texture [as 别名]
# 或者: from texture.Texture import loadImage [as 别名]
def renderSkin(dst, vertsPerPrimitive, verts, index = None, objectMatrix = None,
texture = None, UVs = None, textureMatrix = None,
color = None, clearColor = None):
if isinstance(dst, Texture):
glBindTexture(GL_TEXTURE_2D, dst.textureId)
elif isinstance(dst, Image):
dst = Texture(image = dst)
elif isinstance(dst, tuple):
dimensions = dst
dst = Texture(size = dimensions)
if dst.width < dimensions[0] or dst.height < dimensions[1]:
raise RuntimeError('Could not allocate render texture with dimensions: %s' % str(dst))
else:
raise RuntimeError('Unsupported destination: %r' % dst)
width, height = dst.width, dst.height
framebuffer = glGenFramebuffers(1)
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer)
glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, dst.textureId, 0)
glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, dst.textureId, 0)
if clearColor is not None:
glClearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3])
glClear(GL_COLOR_BUFFER_BIT)
glVertexPointer(verts.shape[-1], GL_FLOAT, 0, verts)
if texture is not None and UVs is not None:
if isinstance(texture, Image):
tex = Texture()
tex.loadImage(texture)
texture = tex
if isinstance(texture, Texture):
texture = texture.textureId
glEnable(GL_TEXTURE_2D)
glEnableClientState(GL_TEXTURE_COORD_ARRAY)
glBindTexture(GL_TEXTURE_2D, texture)
glTexCoordPointer(UVs.shape[-1], GL_FLOAT, 0, UVs)
if color is not None:
glColorPointer(color.shape[-1], GL_UNSIGNED_BYTE, 0, color)
glEnableClientState(GL_COLOR_ARRAY)
else:
glDisableClientState(GL_COLOR_ARRAY)
glColor4f(1, 1, 1, 1)
glDisableClientState(GL_NORMAL_ARRAY)
glDisable(GL_LIGHTING)
glDepthMask(GL_FALSE)
glDisable(GL_DEPTH_TEST)
# glDisable(GL_CULL_FACE)
glPushAttrib(GL_VIEWPORT_BIT)
glViewport(0, 0, width, height)
glMatrixMode(GL_MODELVIEW)
glPushMatrix()
if objectMatrix is not None:
glLoadTransposeMatrixd(objectMatrix)
else:
glLoadIdentity()
glMatrixMode(GL_PROJECTION)
glPushMatrix()
glLoadIdentity()
glOrtho(0, 1, 0, 1, -100, 100)
if textureMatrix is not None:
glMatrixMode(GL_TEXTURE)
glPushMatrix()
glLoadTransposeMatrixd(textureMatrix)
if index is not None:
glDrawElements(g_primitiveMap[vertsPerPrimitive-1], index.size, GL_UNSIGNED_INT, index)
else:
glDrawArrays(g_primitiveMap[vertsPerPrimitive-1], 0, verts[:,:,0].size)
if textureMatrix is not None:
glMatrixMode(GL_TEXTURE)
glPopMatrix()
glMatrixMode(GL_PROJECTION)
glPopMatrix()
glMatrixMode(GL_MODELVIEW)
glPopMatrix()
glPopAttrib()
glEnable(GL_DEPTH_TEST)
glDepthMask(GL_TRUE)
glEnable(GL_LIGHTING)
glEnableClientState(GL_NORMAL_ARRAY)
glEnableClientState(GL_COLOR_ARRAY)
#.........这里部分代码省略.........