[cairo-commit] papers/opengl_freenix04 ChangeLog,1.12,1.13 opengl_freenix04.tex,1.21,1.22
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-serv19382
Modified Files:
ChangeLog opengl_freenix04.tex
Log Message:
Update convolution filter section and programmetic surface section
Index: ChangeLog
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/ChangeLog,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** a/ChangeLog 18 Feb 2004 17:01:23 -0000 1.12
--- b/ChangeLog 23 Feb 2004 03:50:01 -0000 1.13
***************
*** 1,2 ****
--- 1,7 ----
+ 2004-02-23 <c99drn at cs.umu.se>
+
+ * opengl_freenix04.tex: Update convolution filter section and
+ programmetic surface section.
+
2004-02-18 <c99drn at cs.umu.se>
Index: opengl_freenix04.tex
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/opengl_freenix04.tex,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** a/opengl_freenix04.tex 22 Feb 2004 15:48:43 -0000 1.21
--- b/opengl_freenix04.tex 23 Feb 2004 03:50:01 -0000 1.22
***************
*** 255,266 ****
library handles this gracefully using image buffers.
! \subsection{Client-Provided Immediate Data}
! As surfaces provide the only representation of pixel data within
! \libname{}, application generated images must be transmitted to
! video memory in some way. For this purpose \libname{} provides two
! functions, one for transmitting pixel data from user memory to a
! surface and one for retrieving pixel data from a surface to user
! memory.
\subsection{Image Compositing}
--- 255,265 ----
library handles this gracefully using image buffers.
! \subsection{User-Provided Immediate Data}
! As all representation of pixel data within \libname{} are in the graphics
! hardware's memory, application generated images must be transmitted to the
! hardware in some way. For this purpose \libname{} provides two
! functions, one for transmitting pixel data to graphics hardware and one
! for retrieving pixel data from graphics hardware.
\subsection{Image Compositing}
***************
*** 404,409 ****
discrete pixel positions. With the currently available display
devices it is simply not feasible to sample a non aliased signal
! according to Nyquists Theorem. Figure~\ref{jaggies} illustrates an aliased
! graphical image suffering from a jagged edge.
\begin{figure}[htbp]
--- 403,408 ----
discrete pixel positions. With the currently available display
devices it is simply not feasible to sample a non aliased signal
! according to Nyquists Theorem. Figure~\ref{jaggies} illustrates an
! aliased graphical image suffering from a jagged edge.
\begin{figure}[htbp]
***************
*** 411,417 ****
\epsfig{file=jaggies.eps}
\small\itshape
! \caption{\small\itshape (1) The mathematical representation of an edge
! (2) The aliased signal point sampled to screen pixels (3) Anti-aliased
! signal}
\label{jaggies}
\end{centering}
--- 410,416 ----
\epsfig{file=jaggies.eps}
\small\itshape
! \caption{\small\itshape (1) The mathematical representation of an
! edge (2) The aliased signal point sampled
! to screen pixels (3) Anti-aliased signal}
\label{jaggies}
\end{centering}
***************
*** 481,486 ****
systems this technique has potential for generating extremely high
quality results with a relatively low cost. Not always supported to
! offscreens (pbuffers). This means problems with indirect polygon rendering
! as polygons are then drawn to intermediate offscreen surfaces.
This technique will be used on all rendering operations if available,
direct as well as indirect.
--- 480,485 ----
systems this technique has potential for generating extremely high
quality results with a relatively low cost. Not always supported to
! offscreens (pbuffers). This means problems with indirect polygon
! rendering as polygons are then drawn to intermediate offscreen surfaces.
This technique will be used on all rendering operations if available,
direct as well as indirect.
***************
*** 510,524 ****
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 the 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}
--- 509,524 ----
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}
***************
*** 533,545 ****
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}
--- 533,551 ----
matrix is called the convolution kernel.
! \libname{} supports user defined 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.
! In \libname{} convolution filtering is implemented using fragment
! programs and is only available on hardware that have fragment program
! support with at least 5 texture indirection instructions. The alternative
! would be to use OpenGL's imaging extension and would require a transfer
! of all pixels through OpenGL's pixel pipeline to an intermediate
! texture. Eventhough the alternative method would be supported by older
! hardware, \libname{} uses fragment programs in favor of peformance.
! \edannote{The number of required texture indirection instructions
! is probably uninteresting.}
\subsubsection{Useful Convolution kernels}
***************
*** 576,586 ****
\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}
--- 582,608 ----
\end{table}
! \edannote{Original image and image after 3x3 gaussian filtering}
! \subsection{Programmetic Surfaces}
! \libname{} allow you to create programmetic surfaces, a
! programmetic surface doesn't contain any actual image data only
! a minimum subset of attributes which describe how to calculate
! 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
! written working fragment programs for linear and radial
! gradients and that should be a good start so I'll
! probably implement it soon.}
\subsection{Still Under Construction}
***************
*** 588,591 ****
--- 610,617 ----
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}
More information about the cairo-commit
mailing list