Open topic with navigation
Texture Matrix
OpenGL contains a feature which allows the user to set a transformation
matrix for texture coordinates. When a texture matrix is applied, all
texture coordinates will be transformed through it. In the example code below, the texture is animated by updating the texture matrix every frame:
import viz
import vizact
viz.go()
viz.clearcolor(viz.SLATE)
#Create a quad to display texture
quad = viz.addTexQuad(pos=[0,1.8,3])
#Create texture with repeating wrap mode
tex = viz.addTexture('images/tile_grass.jpg', wrap=viz.REPEAT)
tex.pos = 0
#Apply texture to quad
quad.texture(tex)
ANIMATE_SPEED = 0.1
def animateTexture():
#Increment texture position
tex.pos += ANIMATE_SPEED * viz.elapsed()
#Create transform for texture
mat = viz.Transform()
mat.setTrans(tex.pos,0,0)
#Apply transform to texture
quad.texmat(mat)
vizact.ontimer(0,animateTexture)
See also
In this section:
Appearance & texturing
basics
Texture wrapping
Multi-texturing
Environment mapping
Texture appearance and filtering
Texture types
Visibility
Draw order & Z offsetting
Projecting textures
Appearance &
texturing command table
Other sections:
Matrix transform basics
Example scripts:
Matrix transformations