fresnel releases follow semantic versioning.
Changed
- Fixed a bug in the intersect function for an edge case.
Added
- Support Numpy 2.0.
Changed
- Provide support via GitHub discussions.
- Revise installation documentation.
- Add copy button to documentation code examples.
- Enable arrow key navigation in documentation.
Removed
- Support for Python 3.8.
Added
- Support Python 3.11.
- Support for Embree 4.x.
Removed
- Support for Embree 3.x.
Added
- Support Python 3.10.
- Support clang 13.
Added
- Support Windows.
Added
- Support macos-arm64.
Fixed
- Add missing
version
module
Added
- Perspective camera.
- Depth of field effect.
Changed
- Reduce latency in
interact.SceneView
while rotating the view. - Improve user experience with mouse rotations in
interact.SceneView
. - [breaking] - Moved
camera.orthographic
tocamera.Orthographic
. - [breaking] - Moved
camera.fit
tocamera.Orthographic.fit
.
Removed
- [breaking] - Removed "auto" camera in
Scene
. Usecamera.Orthographic.fit
Added
preview
andtracer.Preview
accept a boolean flaganti_alias
to enable or disable anti-aliasing.
Changed
preview
andtracer.Preview
enable anti-alisasing by default.- Python, Cython, and C code must follow strict style guidelines.
- Renamed
util.array
toutil.Array
- Renamed
util.image_array
toutil.ImageArray
- Converted
interact.SceneView.setScene
to a property:scene
Removed
preview
andtracer.Preview
no longer accept theaa_level
argument - useanti_alias
.
Added
- Added box geometry convenience class
Box
.
Removed
- Support for Python 3.5.
Fixed
- Compile on systems where
libqhullcpp.a
is missing or broken. - Find Embree headers when they are not in the same path as TBB.
Fixed
- Restore missing examples on readthedocs.
Changed
- CMake >= 3.8 is required at build time.
- pybind11 >= 2.2 is required at build time.
- qhull >= 2015 is required.
- install to the Python
site-packages
directory by default. - CI tests execute on Microsoft Azure Pipelines.
Fixed
- Improved installation documentation.
- Added support for linearizing colors of shape (4,).
- Improve examples.
- Documentation improvements.
- Add
geometry.Polygon
: Simple and/or rounded polygons in the z=0 plane. - API breaking changes:
- Remove:
geometry.Prism
- Remove:
- Fix conda-forge build on mac
- Add
util.convex_polyhedron_from_vertices
: compute convex polyhedron plane origins and normals given a set of vertices - Improve documentation
- Add
interact.SceneView
: pyside2 widget for interactively rendering scenes with path tracing - Add
geometry.Mesh
: Arbitrary triangular mesh geometry, instanced with N positions and orientations - fresnel development is now hosted on github: https://github.com/glotzerlab/fresnel/
- Improve
light.lightbox
lighting setup - API breaking changes:
geometry.ConvexPolyhedron
arguments changed. It now accepts polyhedron information as a dictionary.
- Implement
tracer.Path
on the GPU. - Implement
ConvexPolyhedron
geometry on the GPU. - Improve path tracer performance with Russian roulette termination.
- Compile warning-free.
- Fix sphere intersection test bugs on the GPU.
tracer.Path
now correctly starts sampling over when resized.- Wrap C++ code with pybind 2.2
- Make documentation available on readthedocs: http://fresnel.readthedocs.io
- Fresnel is now available on conda-forge: https://anaconda.org/conda-forge/fresnel
- embree >= 3.0 is now required for CPU support
- Improve documentation
- Add new lighting setups
lightbox
cloudy
ring
- Adjust brightness of lights in existing setups
- Remove
clearcoat
material parameter - Add
spec_trans
material parameter - Add
Path
tracer to render scenes with indirect lighting, reflections, and transparency (CPU-only) - Add
ConvexPolyhedron
geometry (CPU-only, beta API, subject to change) - Add
fresnel.preview
function to easily generatePreview
traced renders with one line - Add
fresnel.pathtrace
function to easily generatePath
traced renders with one line - Add anti-aliasing (always on for the
Path
tracer,set aa_level
> 0 to enable forPreview
) - API breaking changes:
render
no longer exists. Usepreview
orpathtrace
.tracer.Direct
is nowtracer.Preview
.
CPU-only features will be implemented on the GPU in a future release.
- Enforce requirement: Embree >= 2.10.0
- Enforce requirement Pybind =1.8.1
- Enforce requirement TBB >= 4.3
- Rewrite camera API, add camera.fit to fit the scene
- scenes default to an automatic fit camera
- Implement area lights, add default lighting setups
Scene
now supports up to 4 lights, specified in camera space- Implement Disney's principled BRDF
Tracer.histogram
computes a histogram of the rendered imageTracer.enable_highlight_warning
highlights overexposed pixels with a given warning colorDevice.available_modes
lists the available execution modesDevice.available_gpus
lists the available GPUsDevice
can now be limited to n GPUs- API breaking changes:
camera.Orthographic
is nowcamera.orthographic
Device
now takes the argument n instead of limitScene
no longer has alight_direction
member
- Suppress "cannot import name" messages
- Support Nx3 and Nx4 inputs to
color.linear
- Parallel rendering on the CPU
- Fix PTX file installation
- Fix python 2.7 support
- Unit tests
- Fix bug in sphere rendering on GPU
- Prototype API
- Sphere geometry
- Prism geometry
- outline materials
- diffuse materials
- Direct tracer