Py API Docs: New Example for off screen rendering

This commit is contained in:
Jacques Lucke 2018-11-13 16:38:12 +01:00
parent dc6ba4f2ec
commit 3aa30406dd
1 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,38 @@
"""
Rendering the 3D View into a Texture
------------------------------------
The scene has to have a camera for this example to work.
You could also make this independent of a specific camera, but Blender does not expose good functions to create view and projection matrices yet.
"""
import bpy
import bgl
import gpu
from gpu_extras.presets import draw_texture_2d
WIDTH = 512
HEIGHT = 256
offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
def draw():
context = bpy.context
scene = context.scene
view_matrix = scene.camera.matrix_world.inverted()
projection_matrix = scene.camera.calc_matrix_camera(
context.depsgraph, x=WIDTH, y=HEIGHT)
offscreen.draw_view3d(
scene,
context.view_layer,
context.space_data,
context.region,
view_matrix,
projection_matrix)
bgl.glDisable(bgl.GL_DEPTH_TEST)
draw_texture_2d(offscreen.color_texture, (10, 10), WIDTH, HEIGHT)
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')