Ejemplo n.º 1
0
def setup_texture(volume):
    ## Set multitexturing number ##
    #gl.gl.glActiveTextureARB(texture0_arb+volume)
    
    ## Setup texturing parameters ##
    gl.glTexParameterf(gl.GL_TEXTURE_3D, gl.GL_TEXTURE_MAG_FILTER, gl.GL_LINEAR)
    gl.glTexParameterf(gl.GL_TEXTURE_3D, gl.GL_TEXTURE_MIN_FILTER, gl.GL_LINEAR)
    gl.glTexParameteri(gl.GL_TEXTURE_3D, gl.GL_TEXTURE_WRAP_S, gl.GL_CLAMP)
    gl.glTexParameteri(gl.GL_TEXTURE_3D, gl.GL_TEXTURE_WRAP_T, gl.GL_CLAMP)
    gl.glTexParameteri(gl.GL_TEXTURE_3D, gl.GL_TEXTURE_WRAP_R, gl.GL_CLAMP)

    ## Setup texture coordinate generation parameters ##
    gl.glEnable(gl.GL_TEXTURE_GEN_S)
    gl.glEnable(gl.GL_TEXTURE_GEN_T)
    gl.glEnable(gl.GL_TEXTURE_GEN_R)

    ## Texture coordinates will be generated in eye-centered coordinates ##
    gl.glTexGeni(gl.GL_S, gl.GL_TEXTURE_GEN_MODE, gl.GL_EYE_LINEAR)
    gl.glTexGeni(gl.GL_T, gl.GL_TEXTURE_GEN_MODE, gl.GL_EYE_LINEAR)
    gl.glTexGeni(gl.GL_R, gl.GL_TEXTURE_GEN_MODE, gl.GL_EYE_LINEAR)

    ## Object coordinates will be translated 1:1 to texture coordinates ##
    gl.glTexGenfv(gl.GL_S, gl.GL_EYE_PLANE, [1,0,0,0])
    gl.glTexGenfv(gl.GL_T, gl.GL_EYE_PLANE, [0,1,0,0])
    gl.glTexGenfv(gl.GL_R, gl.GL_EYE_PLANE, [0,0,1,0])