GPU Shader Utilities (gpu.shader)

This module provides access to GPUShader internal functions.

Built-in shaders

All built-in shaders have the mat4 ModelViewProjectionMatrix uniform.

Its value must be modified using the gpu.matrix module.

2D_FLAT_COLOR
Attributes

vec2 pos, vec4 color

Uniforms

none

2D_IMAGE
Attributes

vec2 pos, vec2 texCoord

Uniforms

sampler2D image

2D_SMOOTH_COLOR
Attributes

vec2 pos, vec4 color

Uniforms

none

2D_UNIFORM_COLOR
Attributes

vec2 pos

Uniforms

vec4 color

3D_FLAT_COLOR
Attributes

vec3 pos, vec4 color

Uniforms

none

3D_IMAGE
Attributes

vec3 pos, vec2 texCoord

Uniforms

sampler2D image

3D_SMOOTH_COLOR
Attributes

vec3 pos, vec4 color

Uniforms

none

3D_UNIFORM_COLOR
Attributes

vec3 pos

Uniforms

vec4 color

3D_POLYLINE_FLAT_COLOR
Attributes

vec3 pos, vec4 color

Uniforms

vec2 viewportSize, float lineWidth

3D_POLYLINE_SMOOTH_COLOR
Attributes

vec3 pos, vec4 color

Uniforms

vec2 viewportSize, float lineWidth

3D_POLYLINE_UNIFORM_COLOR
Attributes

vec3 pos

Uniforms

vec2 viewportSize, float lineWidth

gpu.shader.create_from_info(shader_info)

Create shader from a GPUShaderCreateInfo.

Parameters

shader_info (bpy.types.GPUShaderCreateInfo) – GPUShaderCreateInfo

Returns

Shader object corresponding to the given name.

Return type

bpy.types.GPUShader

gpu.shader.from_builtin(shader_name, config='DEFAULT')

Shaders that are embedded in the blender internal code (see Built-in shaders). They all read the uniform mat4 ModelViewProjectionMatrix, which can be edited by the gpu.matrix module.

You can also choose a shader configuration that uses clip_planes by setting the CLIPPED value to the config parameter. Note that in this case you also need to manually set the value of mat4 ModelMatrix.

Parameters
  • shader_name (str) – One of the builtin shader names.

  • config (str) –

    One of these types of shader configuration:

    • DEFAULT

    • CLIPPED

Returns

Shader object corresponding to the given name.

Return type

bpy.types.GPUShader

gpu.shader.unbind()

Unbind the bound shader object.