Skip to content
/ gliss Public

A library for resolution-independent rendering of hardware-accelerated vector graphics directly on the GPU.

License

Notifications You must be signed in to change notification settings

mdk/gliss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gliss

Gliss is a OpenGL/GLES library for resolution-independent rendering of hardware-accelerated vector graphics directly on the GPU. The core functionality of the package is a suite of tools allowing to render cubic curves (third-degree polynomials) directly on the hardware using fragment shaders. The core optimisation comes from the fact that the CPU-intensive geometry generation step (and tessellation) can be skipped entirely from the rendering process.

Curves image Curves image

Gliss also provides direct support for quadratics (second-degree polynomials) which are interesting being a part of the SVG standard and the basis of TrueType font rendering.

Example

glissBegin (GLISS_CUBIC_PATH);
glissMoveTo2d (0, 0);
glissCubicTo6d (-200, -100, -200, -150, -200.0, -200.0);
glissCubicTo6d (0, -150, 0, -100, 0.0, 0.0);
glissCubicTo6d (200, -100, 200, -150, 200.0, -200.0);
glissCubicTo6d (0, -150, 0, -100, 0.0, 0.0);
glissCubicTo6d (200, 100, 200, 150, 200.0, 200.0);
glissCubicTo6d (0, 150, 0, 100, 0.0, 0.0);
glissCubicTo6d (-200, 100, -200, 150, -200.0, 200.0);
glissCubicTo6d (0, 150, 0, 100, 0.0, 0.0);
glissEnd ();

Reference

This works is based on a research paper "Resolution Independent Curve Rendering using Programmable Graphics Hardware" by Charles Loop and Jim Blinn from Microsoft Research.

You can find more details and some examples in my (very old) blog post.

About

A library for resolution-independent rendering of hardware-accelerated vector graphics directly on the GPU.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published