API Docs: gpu api introduction + examples
This commit is contained in:
33
doc/python_api/examples/gpu.5.py
Normal file
33
doc/python_api/examples/gpu.5.py
Normal file
@@ -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')
|
||||
Reference in New Issue
Block a user