diff options
Diffstat (limited to 'doc/python_api/examples/gpu.5.py')
-rw-r--r-- | doc/python_api/examples/gpu.5.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/doc/python_api/examples/gpu.5.py b/doc/python_api/examples/gpu.5.py new file mode 100644 index 00000000000..7af3a518457 --- /dev/null +++ b/doc/python_api/examples/gpu.5.py @@ -0,0 +1,33 @@ +""" +Mesh with Random Vertex Colors +------------------------------ +""" +import bpy +import gpu +import numpy as np +from random import random +from gpu_extras.batch import batch_for_shader + +mesh = bpy.context.active_object.data +mesh.calc_loop_triangles() + +vertices = np.empty((len(mesh.vertices), 3), 'f') +indices = np.empty((len(mesh.loop_triangles), 3), 'i') + +mesh.vertices.foreach_get("co", + np.reshape(vertices, len(mesh.vertices) * 3)) +mesh.loop_triangles.foreach_get("vertices", + np.reshape(indices, len(mesh.loop_triangles) * 3)) + +vertex_colors = [(random(), random(), random(), 1) for _ in range(len(mesh.vertices))] + +shader = gpu.shader.from_builtin('3D_SMOOTH_COLOR') +batch = batch_for_shader(shader, 'TRIS', + {"pos" : vertices, + "color" : vertex_colors}, + indices=indices) + +def draw(): + batch.draw(shader) + +bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
\ No newline at end of file |