fresnel.tracer¶
Overview
Path tracer. |
|
Preview ray tracer. |
|
Base class for all ray tracers. |
Details
Ray tracers process a fresnel.Scene
and render output images.
Fresnel provides a Preview
tracer to generate a quick approximate
render and Path
which provides soft shadows, reflections, and other
effects.
-
class
fresnel.tracer.
Path
(device, w, h)¶ Path tracer.
- Parameters
device (
Device
) – Device to use.w (int) – Output image width.
h (int) – Output image height.
The path tracer applies advanced lighting effects, including soft shadows, reflections, etc…. It operates by Monte Carlo sampling. Each call to
render()
performs one sample per pixel. The output image is the mean of all the samples. Many samples are required to produce a smooth image.sample()
provides a convenience API to make many samples with a single call.-
reset
()¶ Clear the output buffer and start sampling a new image. Increment the random number seed so that the new image is statistically independent from the previous.
-
sample
(scene, samples, reset=True, light_samples=1)¶ - Parameters
- Returns
A reference to the current output buffer as a
fresnel.util.ImageArray
.
Note
When reset is False, subsequent calls to
sample()
will continue to add samples to the current output image. Use the same number of light samples when sampling an image in this way.
-
class
fresnel.tracer.
Preview
(device, w, h, anti_alias=True)¶ Preview ray tracer.
- Parameters
device (
Device
) – Device to use.w (int) – Output image width.
h (int) – Output image height.
anti_alias (bool) – Whether to perform anti-aliasing. If True, uses an 8x8 subpixel grid.
Overview
The
Preview
tracer produces a preview of the scene quickly. It approximates the effect of light on materials. The output of thePreview
tracer will look very similar to that from thePath
tracer, but will miss soft shadows, reflection, transmittance, and other lighting effects.Anti-aliasing
The default value of
anti_alias
is True to smooth sharp edges in the image. The anti-aliasing level corresponds to aa_level=3 in fresnel versions up to 0.11.0. Differentseed
values will result in different output images.-
property
anti_alias
¶ Whether to perform anti-aliasing
-
class
fresnel.tracer.
Tracer
¶ Base class for all ray tracers.
Tracer
provides operations common to all ray tracer classes.Each
Tracer
instance stores a pixel output buffer. When yourender()
aScene
, the current data stored in the buffer is overwritten with the new image.Note
You cannot instantiate a Tracer directly. Use one of the sub classes.
-
linear_output
¶ Reference to the current output buffer in linear color space (modified by
render()
)- Type
-
disable_highlight_warning
()¶ Disable the highlight clipping warnings.
-
enable_highlight_warning
(color=(1, 0, 1))¶ Enable highlight clipping warnings.
When a pixel in the rendered image is too bright to represent, make that pixel the given color to flag the problem to the user.
- Parameters
color (tuple) – Color to make the highlight warnings.
-
histogram
()¶ Compute a histogram of the image.
The histogram is computed as a lightness in the sRGB color space. The histogram is computed only over the visible pixels in the image, fully transparent pixels are ignored. The returned histogram is nbins x 4, the first column contains the lightness histogram and the next 3 contain R,B, and G channel histograms respectively.
- Returns
(histogram, bin_positions).
-
render
(scene)¶ Render a scene.
- Parameters
scene (
Scene
) – The scene to render.- Returns
A reference to the current output buffer as a
fresnel.util.ImageArray
.
Render the given scene and write the resulting pixels into the output buffer.
-