TextureCube¶
-
class
moderngl.
TextureCube
¶ A Texture is an OpenGL object that contains one or more images that all have the same image format. A texture can be used in two ways. It can be the source of a texture access from a Shader, or it can be used as a render target.
Note
ModernGL enables
GL_TEXTURE_CUBE_MAP_SEAMLESS
globally to ensure filtering will be done across the cube faces.A Texture3D object cannot be instantiated directly, it requires a context. Use
Context.texture_cube()
to create one.
Create¶
-
Context.
texture_cube
(size, components, data=None, alignment=1, dtype='f1') → TextureCube Create a
TextureCube
object.Parameters: - size (tuple) – The width, height of the texture. Each side of the cube will have this size.
- components (int) – The number of components 1, 2, 3 or 4.
- data (bytes) – Content of the texture. The data should be have the following ordering: positive_x, negative_x, positive_y, negative_y, positive_z + negative_z
Keyword Arguments: - alignment (int) – The byte alignment 1, 2, 4 or 8.
- dtype (str) – Data type.
Returns: TextureCube
object
Methods¶
-
TextureCube.
read
(face, alignment=1) → bytes¶ Read a face from the cubemap texture.
Parameters: face (int) – The face to read. Keyword Arguments: alignment (int) – The byte alignment of the pixels.
-
TextureCube.
read_into
(buffer, face, alignment=1, write_offset=0)¶ Read a face from the cubemap texture.
Parameters: - buffer (bytearray) – The buffer that will receive the pixels.
- face (int) – The face to read.
Keyword Arguments: - alignment (int) – The byte alignment of the pixels.
- write_offset (int) – The write offset.
-
TextureCube.
write
(face, data, viewport=None, alignment=1)¶ Update the content of the texture.
Parameters: - face (int) – The face to update.
- data (bytes) – The pixel data.
- viewport (tuple) – The viewport.
Keyword Arguments: alignment (int) – The byte alignment of the pixels.
-
TextureCube.
use
(location=0)¶ Bind the texture to a texture unit.
The location is the texture unit we want to bind the texture. This should correspond with the value of the
samplerCube
uniform in the shader because samplers read from the texture unit we assign to them:# Define what texture unit our two samplerCube uniforms should represent program['texture_a'] = 0 program['texture_b'] = 1 # Bind textures to the texture units first_texture.use(location=0) second_texture.use(location=1)
Parameters: location (int) – The texture location/unit.
-
TextureCube.
release
()¶ Release the ModernGL object.
Attributes¶
-
TextureCube.
size
¶ The size of the texture.
Type: tuple
-
TextureCube.
dtype
¶ Data type.
Type: str
-
TextureCube.
components
¶ The number of components of the texture.
Type: int
-
TextureCube.
filter
¶ The minification and magnification filter for the texture. (Default
(moderngl.LINEAR. moderngl.LINEAR)
)Example:
texture.filter == (moderngl.NEAREST, moderngl.NEAREST) texture.filter == (moderngl.LINEAR_MIPMAP_LINEAR, moderngl.LINEAR) texture.filter == (moderngl.NEAREST_MIPMAP_LINEAR, moderngl.NEAREST) texture.filter == (moderngl.LINEAR_MIPMAP_NEAREST, moderngl.NEAREST)
Type: tuple
-
TextureCube.
swizzle
¶ The swizzle mask of the texture (Default
'RGBA'
).The swizzle mask change/reorder the
vec4
value returned by thetexture()
function in a GLSL shaders. This is represented by a 4 character string were each character can be:'R' GL_RED 'G' GL_GREEN 'B' GL_BLUE 'A' GL_ALPHA '0' GL_ZERO '1' GL_ONE
Example:
# Alpha channel will always return 1.0 texture.swizzle = 'RGB1' # Only return the red component. The rest is masked to 0.0 texture.swizzle = 'R000' # Reverse the components texture.swizzle = 'ABGR'
Type: str
-
TextureCube.
anisotropy
¶ Number of samples for anisotropic filtering (Default
1.0
). The value will be clamped in range1.0
andctx.max_anisotropy
.Any value greater than 1.0 counts as a use of anisotropic filtering:
# Disable anisotropic filtering texture.anisotropy = 1.0 # Enable anisotropic filtering suggesting 16 samples as a maximum texture.anisotropy = 16.0
Type: float
-
TextureCube.
glo
¶ The internal OpenGL object. This values is provided for debug purposes only.
Type: int
-
TextureCube.
mglo
¶ Internal representation for debug purposes only.
-
TextureCube.
extra
¶ Any - Attribute for storing user defined objects
-
TextureCube.
ctx
¶ The context this object belongs to