[cairo-commit] papers/opengl_freenix04 opengl_freenix04.tex,1.24,1.25

David Reveman commit at pdx.freedesktop.org
Mon Aug 15 11:12:59 PDT 2005


Committed by: davidr

Update of /cvs/cairo/papers/opengl_freenix04
In directory pdx:/tmp/cvs-serv2856

Modified Files:
	opengl_freenix04.tex 
Log Message:
More text

Index: opengl_freenix04.tex
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/opengl_freenix04.tex,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** a/opengl_freenix04.tex	23 Feb 2004 13:49:09 -0000	1.24
--- b/opengl_freenix04.tex	23 Feb 2004 15:12:08 -0000	1.25
***************
*** 129,133 ****
    and more consistent hardware acceleration of the rendering process.
  
- 
    Still the question remains about how to actually render all the graphics
    with hardware support. OpenGL~\cite{gl:1.2.1} is the most widely used and
--- 129,132 ----
***************
*** 528,551 ****
        surfaces when rendering indirect polygons.
  
- 
      \subsection{Text Rendering}
  
      Current versions of \libname{} has no built in text support. 
!     Glyph rasterization and glyph management should be handled by the
!     application or a higher level library. For efficient text rendering, 
      glyph sets with offscreen surfaces containing alpha masks should be 
!     used.
! 
!     Right now \libname{} renders text at around 50000 glyphs/sec.
!     But major part of the rendering time is CPU time in the library and
!     we are confident that after some profiling and optimization glyph
!     rendering speed could be at least doubled.
  
!     For optimal glyph rendering speed, built in text rendering support
!     needs to be added \libname{}.
   
-     \edannote{Built in text support or not? We'll see after we've done
-               some profiling and optimizations.}
- 
      \subsection{Convolution Filters}
  
--- 527,543 ----
        surfaces when rendering indirect polygons.
  
      \subsection{Text Rendering}
  
      Current versions of \libname{} has no built in text support. 
!     Glyph rasterization and glyph management could however be handled by 
!     the application or a higher level library. For efficient text rendering, 
      glyph sets with offscreen surfaces containing alpha masks should be 
!     used. With external glyph management \libname{} renders text at around 
!     50000 glyphs/sec.
  
!     Built in text handling is planned for future version of the library and
!     tests have proven that this will increase glyph rendering speed to
!     at least 200000 glyphs/sec.
   
      \subsection{Convolution Filters}
  
***************
*** 617,629 ****
      the color for each pixel in the surface. 
  
!     Programmetic surfaces can be used for wide range of effects,
!     maybe the most usable are linear and radial gradients.
! 
!     \edannote{Some info about linear and radial gradients here.}
  
!     Programmetic surfaces requires fragment program support.
  
!     \edannote{Maybe a picture showing results form composite with 
!               a programmatic surface}
      
      \edannote{Programmatic surfaces are not implemented yet but I've
--- 609,627 ----
      the color for each pixel in the surface. 
  
!     Programmetic surfaces can be used for wide range of effects, however the
!     most useful seems to be gradients. Gradients consistz of a continuously 
!     smooth color transition along a vector from one color to another. 
!     \libname{} provides for at least two types of gradients, linear and 
!     radial. A linear gradient defines two points which form the color 
!     transition vector. A radial gradient defines a center point and a 
!     radius, together they form a dynamic transisiton vector around the 
!     center point.
  
!     As all programmetic surfaces are implemented using fragment programs
!     they will only be available on hardware supporting the fragment program
!     extension.
  
!     \edannote{A picture showing results form composite with 
!               a programmatic surface (linear gradient should be fine)}
      
      \edannote{Programmatic surfaces are not implemented yet but I've
***************
*** 653,675 ****
      Allowing for the applications to perform ordinary OpenGL calls in this 
      way enables \libname to also act as an easy to use toolkit on top of 
!     OpenGL. The initialization process then becomes much simplified and it takes
!     only a few lines of code to set up a powerful OpenGL drawing environment
!     for on- and offscreeen rendering.
  
      An example of usage is application that implements a visual effect 
      like a 3D transformation on a 2D surface created with \libname{}. 
      Something like the well known cube effect in Mac OS X's user switching 
!     procedure could easily be implemented with a \libname{} application in this 
!     fashion.
! 
!     \subsection{Still Under Construction}
! 
!     Most parts of the Render specification have been implemented but there are
!     still some issues that need to be addressed.
! 
!     Disjoint and Conjoint operators.
  
-     Sub-pixel ordering.
-   
    \section{Results}
  
--- 651,664 ----
      Allowing for the applications to perform ordinary OpenGL calls in this 
      way enables \libname to also act as an easy to use toolkit on top of 
!     OpenGL. The initialization process then becomes much simplified and it
!     takes only a few lines of code to set up a powerful OpenGL drawing
!     environment for on- and offscreeen rendering.
  
      An example of usage is application that implements a visual effect 
      like a 3D transformation on a 2D surface created with \libname{}. 
      Something like the well known cube effect in Mac OS X's user switching 
!     procedure could easily be implemented with a \libname{} application in
!     this fashion.
  
    \section{Results}
  
***************
*** 778,814 ****
    \section{Conclusion}
  
!   \section{Future Work}
  
!   \edannote {To be updated}
  
    As of today the existing implementation of the library supports all 
!   the basic functionality initially set up for the project. But still the 
!   software is in an early stage of development and lots of work remains for
!   making it stable and optimized with regards to performance and accuracy.
!   A deadline for the project has been set for March 2004. The aim is to have
!   a useful library by that time as well as complete documentation of the
!   project. A presentation of the work will be held at Umeå University at 
!   that time but development and maintenance of the software will certainly
!   stretch beyond that date. 
  
!   Of course the future will demand new features from the library as it is an 
!   area of continuous development. For example in the near future new functions
!   for the creation and compositing of glyph sets probably need to be added for
!   more efficient rendering of text. 
  
!   Special functions for more efficient rendering of gradients could also be
!   added at some level.
  
!   These additional functionalities will probably be added soon and documented
!   in the full paper.
  
!   \section{Visions}
  
!   \edannote {To be updated}
  
!   The Render compositing model has one major weakness when used with OpenGL, 
!   and that is that all compositing operations that use a mask surface require
!   that OpenGL creates an intermediate surface and perform the compositing 
!   in two steps.
  
    The X desktop seems to be going into a new era and cairo is definitely the
--- 767,817 ----
    \section{Conclusion}
  
!   During the development of \libname{} we've found that with the OpenGL 
!   extensions available today and the wide range of hardware supporting them,
!   it's not only possible create an Render-like interface on top of OpenGL
!   it's actually very efficient. We're not all the way there yet but with 
!   the current version of \libname{} we've taken a big step.
  
!   \section{Future Work}
  
    As of today the existing implementation of the library supports all 
!   the basic functionality initially set up for the project. But there are
!   still some important features missing and the software is in an early
!   stage of development and lots of work remains for making it stable and 
!   optimized with regards to performance and accuracy.
  
!   The following list contains those features that most importantly need to 
!   be addressed in future versions of the library.
  
!   \begin{itemize}
!     \item \bf{Text rendering}
!           Built in text rendering will allow much better glyph rendering
!           speeds and remove complex glyph management from the application.
!     \item \bf{Sub-pixel rendering}
!           Sub-pixel rendering can be used to effectively increase the 
!           horizontal resolution of LCD displays. This will require
!           support for compositing each color component with different
!           masks.
!     \item \bf{Conjoint operators}
!           For incremental scene updates.
!     \item \bf{Disjoint operators}
!           For tesselating figures with anti-aliased edges. 
!   \end{itemize}
  
!   \edannote{Thought maybe sub-pixel rendering could be possible
!             by masking color component output using glColorMask but
!             maybe I'm way off here. I'll do some testing soon and we'll
!             see what we can do.}
  
!   \edannote{Conjoint and Disjoint operators, this might
!             be done with one of the many blending extensions that exists. 
!             If not, we can always have both the source and destinations as 
!             textures and do all blending using fragment programs, slow and
!             complex though.}
  
!   Of course the future will demand new features from the library as it is an 
!   area of continuous development.
  
!   \section{Visions}
  
    The X desktop seems to be going into a new era and cairo is definitely the
***************
*** 817,824 ****
    importance. Plans for the creation of an X server that will use OpenGL for
    all rendering are currently being made and this library, or the work behind 
!   the library, can hopefully be usable for this purpose. 
! 
  
    \section{Acknowledgments}
    We would like to thank Carl Worth, Keith Packard, and all of the 
    people involved in the development of cairo for being helpful and
--- 820,827 ----
    importance. Plans for the creation of an X server that will use OpenGL for
    all rendering are currently being made and this library, or the work behind 
!   the library, can hopefully be usable for this purpose.
  
    \section{Acknowledgments}
+ 
    We would like to thank Carl Worth, Keith Packard, and all of the 
    people involved in the development of cairo for being helpful and





More information about the cairo-commit mailing list