.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "_gallery/feature_demo/transparency1.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr__gallery_feature_demo_transparency1.py: Transparency 1 ============== Example showing transparency using three overlapping planes. Press space to toggle the order of the planes. Press 1-7 to select the blend mode. .. GENERATED FROM PYTHON SOURCE LINES 9-83 .. image-sg:: /_gallery/feature_demo/images/sphx_glr_transparency1_001.webp :alt: transparency1 :srcset: /_gallery/feature_demo/images/sphx_glr_transparency1_001.webp :class: sphx-glr-single-img .. code-block:: Python from wgpu.gui.auto import WgpuCanvas, run import pygfx as gfx canvas = WgpuCanvas() renderer = gfx.renderers.WgpuRenderer(canvas) scene = gfx.Scene() background = gfx.Background.from_color("#000") geometry = gfx.plane_geometry(50, 50) plane1 = gfx.Mesh(geometry, gfx.MeshBasicMaterial(color=(1, 0, 0, 0.4))) plane2 = gfx.Mesh(geometry, gfx.MeshBasicMaterial(color=(0, 1, 0, 0.4))) plane3 = gfx.Mesh(geometry, gfx.MeshBasicMaterial(color=(0, 0, 1, 0.4))) plane1.local.position = (-10, -10, 1) plane2.local.position = (0, 0, 2) plane3.local.position = (10, 10, 3) scene.add(background, plane1, plane2, plane3) camera = gfx.OrthographicCamera(100, 100) scene_overlay = gfx.Scene() blend_mode_text = gfx.Text( text=f"Blend mode: {renderer.blend_mode}", anchor="bottom-left", material=gfx.TextMaterial(outline_thickness=0.3), ) scene_overlay.add(blend_mode_text) screen_camera = gfx.ScreenCoordsCamera() @renderer.add_event_handler("key_down") def handle_event(event): if event.key == " ": print("Rotating scene element order") scene.add(scene.children[1]) # skip bg canvas.request_draw() elif event.key == ".": clr = "#fff" if background.material.color_bottom_left == "#000" else "#000" print(f"Changing background color to {clr}") background.material.set_colors(clr) canvas.request_draw() elif event.key in "012345678": m = [ None, # 0 "opaque", # 1 "dither", # 2 "ordered1", # 3 "ordered2", # 4 "weighted", # 5 "weighted_depth", # 6 "weighted_plus", # 7 "additive", # 8 ] mode = m[int(event.key)] renderer.blend_mode = mode print("Selecting blend_mode", mode) blend_mode_text.set_text(f"Blend mode: {mode}") def animate(): renderer.render(scene, camera, flush=False) renderer.render(scene_overlay, screen_camera, flush=True) if __name__ == "__main__": print(__doc__) canvas.request_draw(animate) run() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.175 seconds) .. _sphx_glr_download__gallery_feature_demo_transparency1.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: transparency1.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: transparency1.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: transparency1.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_