Difference between revisions of "Rendering Infrastructure"

From VTKM
Jump to navigation Jump to search
(Created page with "= Under Construction = This will be a design document which describes the major features (and likely the non-features or anti-features) of a rendering infrastructure which al...")
 
Line 15: Line 15:
 
==== Fonts ====
 
==== Fonts ====
  
No explicit third-party dependencies means any annotation must be self-contained.  Initially, this means bitmap fonts.  For EAVL, I used Liberation 2.0 fonts.  These are licensed under the SIL Open Font License.  The former 1.x series Liberation fonts have licensing problems.  In particular, EAVL contains Liberation 2 Mono, Sans, and Serif as bitmap fonts along with spacing metrics.  For the ASCII character set, these files take 500KB each as source, and 160KB as object files.
+
No explicit third-party dependencies means any annotation must be self-contained.  Initially, this means bitmap fonts.  For EAVL, I used Liberation 2.0 fonts.  These are licensed under the SIL Open Font License.  The former 1.x series Liberation fonts have licensing problems.  In particular, EAVL contains Liberation 2 Mono, Sans, and Serif as bitmap fonts along with spacing metrics.  For the ASCII character set, these files take 500KB each as source, and 160KB each as object files. (I.e., multiply these sizes by 3x if you want to include all three fonts, so about half a megabyte in final binary form for all three.)

Revision as of 15:45, 19 August 2015

Under Construction

This will be a design document which describes the major features (and likely the non-features or anti-features) of a rendering infrastructure which allows VTK-m to function as a standalone library which can output images. Given that algorithms like ray casting and volume rendering can be highly data-parallel and are being implemented using VTK-m algorithms, it makes sense to hook these up to a basic infrastructure which can output these results.

(Note that this will start as a description of the EAVL rendering infrastructure, but will evolve to a VTK-m specific design, which can then be implemented as a modification of EAVL's.)

Goals

Implementation Considerations

Compilation

Anything potentially OpenGL- or Mesa-dependent must be defined in header files only. We do not want to deal with mangling, or multiple-linkage issues in or required by our library.

Fonts

No explicit third-party dependencies means any annotation must be self-contained. Initially, this means bitmap fonts. For EAVL, I used Liberation 2.0 fonts. These are licensed under the SIL Open Font License. The former 1.x series Liberation fonts have licensing problems. In particular, EAVL contains Liberation 2 Mono, Sans, and Serif as bitmap fonts along with spacing metrics. For the ASCII character set, these files take 500KB each as source, and 160KB each as object files. (I.e., multiply these sizes by 3x if you want to include all three fonts, so about half a megabyte in final binary form for all three.)