https://github.com/lancelet/cheesegrater
Experimental rasteriser in Haskell
https://github.com/lancelet/cheesegrater
Last synced: about 2 months ago
JSON representation
Experimental rasteriser in Haskell
- Host: GitHub
- URL: https://github.com/lancelet/cheesegrater
- Owner: lancelet
- License: apache-2.0
- Created: 2015-03-23T06:41:11.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2015-03-28T05:03:55.000Z (about 11 years ago)
- Last Synced: 2025-03-03T10:33:30.153Z (over 1 year ago)
- Language: Haskell
- Size: 199 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CheeseGrater
Cheesegrater is a (very early stage) experimental rasteriser, written in Haskell.
## Objectives
The intent of the project is to follow two main phases:
1. Implementation of a rasteriser that works on a polygonal representation of geometry, and
uses an algorithm that clips each polygon against each rendered pixel. This is equivalent
to box-filtering the geometry.
2. Implementation of a rasteriser based upon Manson (2013), which involves analytic
rasterisation of geometry using filter functions expressed as polynomials.
Phase 2 requires geometry that can be clipped to pixel boundaries, so it seems natural to
implement the box filtering as a separate initial phase.
Manson, J. and Schaefer, S. (2013) Analytic Rasterization of Curves with Polynomial FIlters.
Eurographics. 32(2).
## Primitives
The SVG specification seems to be a good indicator of the geometry and fill options that should
be supported. Initially, all geometric primitives will be diced into a polygonal form. Fills
will be represented as `Point -> Color` functions that are presumed to be low-frequency enough
to be sampled only once per pixel.
Later in the project, non-polygonal forms will be investigated for splines.