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_UNIFORM_COLOR
- Attributes
vec3 pos
- Uniforms
vec4 color
2D_FLAT_COLOR
- Attributes
vec3 pos, vec4 color
- Uniforms
none
2D_SMOOTH_COLOR
- Attributes
vec3 pos, vec4 color
- Uniforms
none
2D_IMAGE
- Attributes
vec3 pos, vec2 texCoord
- Uniforms
sampler2D image
3D_UNIFORM_COLOR
- Attributes
vec3 pos
- Uniforms
vec4 color
3D_FLAT_COLOR
- Attributes
vec3 pos, vec4 color
- Uniforms
none
3D_SMOOTH_COLOR
- Attributes
vec3 pos, vec4 color
- Uniforms
none
- gpu.shader.code_from_builtin(pygpu_shader_name)
Exposes the internal shader code for consultation.
- Parameters
pygpu_shader_name (str) –
One of these builtin shader names:
2D_FLAT_COLOR
2D_IMAGE
2D_SMOOTH_COLOR
2D_UNIFORM_COLOR
3D_FLAT_COLOR
3D_SMOOTH_COLOR
3D_UNIFORM_COLOR
3D_POLYLINE_FLAT_COLOR
3D_POLYLINE_SMOOTH_COLOR
3D_POLYLINE_UNIFORM_COLOR
- Returns
Vertex, fragment and geometry shader codes.
- Return type
dict
- gpu.shader.from_builtin(shader_name, config='DEFAULT')
Shaders that are embedded in the blender internal code. They all read the uniform
mat4 ModelViewProjectionMatrix
, which can be edited by thegpu.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 ofmat4 ModelMatrix
.For more details, you can check the shader code with the
gpu.shader.code_from_builtin()
function.- Parameters
shader_name (str) –
One of these builtin shader names:
2D_FLAT_COLOR
2D_IMAGE
2D_SMOOTH_COLOR
2D_UNIFORM_COLOR
3D_FLAT_COLOR
3D_SMOOTH_COLOR
3D_UNIFORM_COLOR
3D_POLYLINE_FLAT_COLOR
3D_POLYLINE_SMOOTH_COLOR
3D_POLYLINE_UNIFORM_COLOR
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.