[cairo-commit] papers/opengl_freenix04 ChangeLog,1.11,1.12 opengl_freenix04.tex,1.18,1.19

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-serv11825

Modified Files:
	ChangeLog opengl_freenix04.tex 
Log Message:
Added text implementation section and convolution filter section

Index: ChangeLog
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/ChangeLog,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** a/ChangeLog	17 Feb 2004 16:53:37 -0000	1.11
--- b/ChangeLog	18 Feb 2004 17:01:23 -0000	1.12
***************
*** 1,2 ****
--- 1,7 ----
+ 2004-02-18    <c99drn at cs.umu.se>
+ 
+ 	* opengl_freenix04.tex: Added text implementation section
+ 	and convolution filter section.
+ 
  2004-02-17    <c99drn at cs.umu.se>
  

Index: opengl_freenix04.tex
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/opengl_freenix04.tex,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** a/opengl_freenix04.tex	17 Feb 2004 23:51:07 -0000	1.18
--- b/opengl_freenix04.tex	18 Feb 2004 17:01:23 -0000	1.19
***************
*** 5,8 ****
--- 5,9 ----
  \usepackage{epsfig}
  \usepackage{url}        % \url{} command with good linebreaks
+ \usepackage{amsmath}
  
  \def\libname{libglc}
***************
*** 447,451 ****
        rendering with the OpenGL API. The most common techniques include;
    
!       \begin {itemize}
          \item OpenGL's built in polygon smooth hint
          \item Multipass using accumulation buffering
--- 448,452 ----
        rendering with the OpenGL API. The most common techniques include;
    
!       \begin{itemize}
          \item OpenGL's built in polygon smooth hint
          \item Multipass using accumulation buffering
***************
*** 453,457 ****
          \item Full-scene anti-aliasing using software super-sampling
          \item Full-scene anti-aliasing using hardware assist
!       \end {itemize}
  
        All these anti-aliased drawing techniques are approximations. Each
--- 454,458 ----
          \item Full-scene anti-aliasing using software super-sampling
          \item Full-scene anti-aliasing using hardware assist
!       \end{itemize}
  
        All these anti-aliased drawing techniques are approximations. Each
***************
*** 520,527 ****
--- 521,602 ----
      \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. Benchmark tests have proven that performance decrement from 
+     having the glyph management outside \libname{} are insignificant.
+ 
+     With the latest hardware \libname{} renders text at around 50000 
+     glyphs/sec.
+ 
+     To increase text rendering performance multiple glyphs can be
+     composited in one OpenGL operation using a fragment program.
+     Performance could be increased by the maximum number of texture 
+     units supported by hardware. This requires some sort of built in
+     text rendering support in \libname.
+ 
      \subsection{Convolution Filters}
  
+     Convolutions are used to perform many common image processing operations
+     including sharpening, blurring, noise reduction, embossing, and 
+     edge enhancement.
+ 
+     A convolution is a mathematical function that replaces each pixel by a 
+     weighted sum of its neighbors. The matrix defining the neighborhood of
+     the pixel also specifies the weight assigned to each neighbor. This 
+     matrix is called the convolution kernel.
+ 
+     \libname{} supports user defined 3x3 convolution kernels. If a
+     convolution kernel has been set for a surface, the convolution filter
+     will be applied when the surface is used as a source in a compositing
+     operation without modifying the original source surface.
+ 
+     \edannote{Convolution filter support is actually under development and
+               not yet a part of \libname.}
+ 
+     Convolution filtering is implemented using fragment programs. 
+ 
+     \subsubsection{Useful Convolution kernels}
+ 
+     \begin{table}[htbp]      
+       \begin{tabular}{l l}
+         Gaussian Blur Filter: &        
+         \begin{math}
+           \begin{bmatrix}
+             0& 1& 0\\
+             1& 4& 1\\
+             0& 1& 0
+           \end{bmatrix}
+         \end{math}
+         \\\vspace{5pt} & \vspace{5pt}\\
+         High Pass (HP) Filter: &
+         \begin{math}
+           \begin{bmatrix}
+             0& -1& 0\\
+             -1& 5& -1\\
+             0& -1& 0
+           \end{bmatrix}
+         \end{math}
+         \\\vspace{5pt} & \vspace{5pt}\\
+         Emboss Filter: &
+         \begin{math}
+           \begin{bmatrix}
+             1& 0& 0\\
+             0& 0& 0\\
+             0& 0& -1
+           \end{bmatrix}
+         \end{math}
+       \end{tabular}      
+     \end{table}
+ 
      \subsection{Gradients}
  
+     Gradients can be created through drawing of direct polygons with
+     different vertex colors.
+ 
+     Future version of the library might include support for implicit
+     gradient source surfaces, implemented using fragment programs.
+ 
      \subsection{Still Under Construction}
  
***************
*** 531,535 ****
    \section{Results and Conclusion}
  
!   \edannote {To be updated}
  
    Right now the library hasn't really been tested that much in real
--- 606,610 ----
    \section{Results and Conclusion}
  
!   \edannote{To be updated}
  
    Right now the library hasn't really been tested that much in real





More information about the cairo-commit mailing list