Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Releases: pygfx/pygfx

v0.15.3

15 Dec 11:23

Choose a tag to compare

v0.15.2

11 Nov 09:35

Choose a tag to compare

A hotfix that updates the upper bounds for dependencies rendercanvas and wgpu-py.

This is not a reflection of main at the time of release, but basically v0.15.0 with updated dependency bounds.

Full Changelog compared to 0.15.0: v0.15.0...v0.15.2

v0.15.0

30 Oct 09:54
72ebbc3

Choose a tag to compare

What's Changed

Full Changelog: v0.14.0...v0.15.0

v0.14.0

09 Oct 07:28
5341be4

Choose a tag to compare

What's Changed

Added:

Changed:

Other:

New Contributors

Full Changelog: v0.13.0...v0.14.0

v0.13.0

05 Sep 10:51
e032c64

Choose a tag to compare

Introduction

This release represents a lot of work on refactoring how PyGfx deals with transparency. We recommend reading https://docs.pygfx.org/latest/transparency.html to learn how PyGfx works now.

The most important changes related to transparency:

The renderer.blend_mode is no more. Some modes like the 'ordered2' and 'weighted_plus' no longer exist. Instead, you can now set material.alpha_mode on each object separately. Yes, you can mix different modes in the same scene.

It does mean that as a user you'll have to be a bit more aware of whether your objects are transparent, and how to approach that. In short, the default material.alpha_mode='auto' works fine for opaque and most semi-transparent objects, as well as for objects that have mixed opaque/transparent fragments. But if you know your object is opaque, use alpha_mode='solid', and if it's transparent, use alpha_mode='blend'. For more context check https://docs.pygfx.org/latest/transparency.html#a-quick-guide-to-select-alpha-mode

We also changed some things on how we approach anti-aliasing:

  • The SSAA (super-sample anti-aliasing) that we already applied now uses an improved filter (the Mitchell filter). The same improved filter is also used for upsampling. Also see the new renderer.pixel_scale and renderer.pixel_filter.
  • We added support for PPAA (post-processing anti-aliasing) to improve the smoothness of the rendered result. It's enabled by default. See the new renderer.ppaa.
  • The material.aa for text lines and points is now off by default, to prevent blending artifacts. Though we recommend turning it on for text for higher quality glyphs.
  • See https://docs.pygfx.org/latest/aa.html for details.

API changes

Objects and materials:

  • Removed WorldObject.render_mask.
  • Added Material.alpha_mode, default is 'auto'.
  • Adeded .alpha_config, .alpha_method (setting alpha_mode also sets these).
  • Added Material.render_queue, default is None (auto).
  • Added Material.depth_write, default is None (auto).
  • Added `Material.depth_compare, default is "<".
  • Added Material.alpha_test.
  • Added Material.alpha_compare, default is "<".
  • Removed material.color_is_transparent for Line, Mesh, Points, Text. Use material.color.a < 1 instead.
  • Removed material.edge_color_is_transparent for Points. Use material.edge_color.a < 1 instead.
  • Removed material.outline_color_is_transparent for Text. Use material.outline_color.a < 1 instead.

Renderer:

  • Removed Renderer.blend_mode.
  • The renderer.sort_objects is True by default.
  • The renderer's sorting logic is completely overhauled.
  • Added renderer.effect_passes.
  • Added renderer.ppaa.
  • Added renderer.pixel_scale.
  • The renderer.pixel_filter is now a string instead of an int.
  • Added renderer.clear() to clear render targets.

Commits

Changes related to transparency and anti-aliasing

Changes to the engine

Other changes

New Contributors

Full Changelog: v0.12.0...v0.13.0

v0.12.0

12 Jun 21:12
15e3681

Choose a tag to compare

What's Changed

Full Changelog: v0.11.0...v0.12.0

v0.11.0

04 Jun 08:49
869a9ef

Choose a tag to compare

What's Changed

Some more improvements related to camera and depth

  • Camera with fov==0 does not move backwards when zooming out by @almarklein in #1090
  • Set ruler's z-position closer to origin to avoid ruler disappearing when camera.depth is small by @almarklein in #1101

User-facing changes

  • Drop Python 3.9 because its already broken, and bump CIs by @hmaarrfk in #1104
  • Pass through worldobject parameters from Text Object by @hmaarrfk in #1102
  • Promote the use of VolumeMipMaterial instead of the VolumeRayMaterial base class by @almarklein in #1107

Internal (and low-level) changes

New Contributors

Full Changelog: v0.10.0...v0.11.0

v0.10.0

19 May 10:20
d7da7fa

Choose a tag to compare

What's Changed

Camera's and controllers

  • Add match_aspect arg to camera.show_object() by @almarklein in #1051
  • Change controller.add_camera so it does not change camera order by @almarklein in #1086
  • add Controller.pause context manager by @kushalkolar in #1080
  • Camera.get_state() returns new copy of the array instead of a view by @kushalkolar in #1076
  • Improvements to cameras by @almarklein in #1085
    • Added camera.depth that gets automaticallet by camera.show_() methods. Can be manually set in cases where the depth is very different from width and height.
    • Avoid depth clip issues when zooming in by calculating depth range using depth..
    • The Ruler no longer reports a bounding box, so that axii in the scene no longer break camera.show_object().
    • The OrthographicCamera no longer move in the view direction (typically z-axis) as it zooms. Note that a PerspectiveCamera with fov==0 still does.

Rendering

Examples

Other

New Contributors

Full Changelog: v0.9.0...v0.10.0

v0.9.0

19 Mar 08:48
84dd53e

Choose a tag to compare

API changes

The biggest change in the release is that we made the geometry a simple object to contain buffers and textures. It does not have any methods, and you should probably not subclass it.

  • Move Text API and implementation to Text world object by @almarklein in #1034
    • TextGeometry and MultiTextGeometry are gone. Use Text and MultiText instead.
    • See #1034 for a small migration guide.
  • Remove get_bounding_box() from geometry by @almarklein in #1042
  • Make geometry a simple Store by @almarklein in #1044

Behavioral changes

New features

Other changes

Full Changelog: v0.8.0...v0.9.0

v0.8.0

06 Mar 21:51
1d85102

Choose a tag to compare

Summary

It's been a while, so quite a lot of changes! The gltf support has been improved a lot, the transform system has been optimized for performance, gamma prop for image and volume materials, improved text rendering (inc. multi-text), faster clipping planes, and much more!

API changes

  • Added ImageBasicMaterial.gamma and VolumeBasicMaterial.gamma.
  • Added PointsMarkerMaterial.edge_color_mode.
  • Added MeshPhysicalMaterial.iridescence, .iridescence_ior, and .iridescence_thickness_range.
  • Added MultiTextGeometry and TextBlock for efficiently handling multiple texts (e.g. labels).
  • Added TextGeometry.max_width, .paragraph_spacing, added Markdown support for headers and bullets, and support for vertical text.

PRs merged

New Contributors

Full Changelog: v0.7.0...v0.8.0