2D Sketch Rendering¶
The 2D sketch rendering module provides functionality to convert vector sketches into raster images for visualization.
Available Methods¶
The module currently supports the following renderers:
A class for rasterizing vector sketches into images using the Cairo backend. |
|
A class for brush-based rendering of vector sketches using the method of paper "GPU-Accelerated Rendering of Vector Brush Strokes" in SIGGRAPH 2024. |
Cairo Renderer¶
The Cairo renderer module provides functionality to rasterize vector sketches into images using the Cairo backend. This is useful for visualizing sketch data, generating raster outputs for downstream tasks, and applying configurable rendering options such as randomized colors.
Source: tests/unit/test_renderer_cairo.py
Code¶
The main interface is the CairoRenderer class.
from sketchkit.datasets import OpenSketch
from sketchkit.renderer import CairoRenderer
# Load a sketch dataset
my_data = OpenSketch()
sketch = my_data[0]
# Initialize the renderer
renderer = CairoRenderer()
# Render a sketch into a raster image
raster_image = renderer.render(sketch)
# Save the rendered result
raster_image.save("cairo_rendering.png")
Ciallo Renderer¶
The method implements GPU-Accelerated Rendering of Vector Brush Strokes from SIGGRAPH 2024. This is useful for high-quality sketch visualization, expressive brush-based rendering, and producing raster outputs with configurable canvas, stroke, brush texture, and background settings.
Source: tests/unit/test_renderer_ciallo.py
CialloRenderOptions¶
CialloRenderOptions stores configurable rendering parameters for CialloRenderer. These options can be used to control properties such as:
brush texture path
stroke color
canvas size
background color
Code¶
The main interfaces are the CialloRenderer and CialloRenderOptions classes.
from sketchkit.datasets import DifferSketching
from sketchkit.renderer import CialloRenderer, CialloRenderOptions
my_data = DifferSketching()
sketch = my_data[0]
render_options = CialloRenderOptions()
renderer = CialloRenderer()
render_options.canvas_size = (1024, 1024)
render_options.brush_texture_path = "./assets/stamp1.png"
render_options.background_color = (2, 0, 0, 1.0)
render_options.stroke_color = (1, 0, 0, 255)
raster_image = renderer.render(sketch, render_options)
raster_image.save("ciallo_rendering.png")