gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] manuscripts/AGPU irregu.txt


From: Tuomas J. Lukka
Subject: [Gzz-commits] manuscripts/AGPU irregu.txt
Date: Sat, 12 Apr 2003 08:51:51 -0400

CVSROOT:        /cvsroot/gzz
Module name:    manuscripts
Changes by:     Tuomas J. Lukka <address@hidden>        03/04/12 08:51:51

Modified files:
        AGPU           : irregu.txt 

Log message:
        edits

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/manuscripts/AGPU/irregu.txt.diff?tr1=1.6&tr2=1.7&r1=text&r2=text

Patches:
Index: manuscripts/AGPU/irregu.txt
diff -u manuscripts/AGPU/irregu.txt:1.6 manuscripts/AGPU/irregu.txt:1.7
--- manuscripts/AGPU/irregu.txt:1.6     Thu Apr 10 07:05:48 2003
+++ manuscripts/AGPU/irregu.txt Sat Apr 12 08:51:51 2003
@@ -8,49 +8,58 @@
 we figuratively tear a piece off the large canvas instead of presenting
 a framed view (window) to it[Fig.2].
 
+
+Shape
+-----
+
 In order to maintain the illusion, the animation has to be appropriate:
 having the shape of the jagged edge remain while the viewport moves over
 the canvas would still *feel* like a window. The shape of the jagged
 edge must be tied to the location on the background[Fig.3].
 
-XXX: 
-- only need texture_env_add which is included in OpenGL 1.3
-- no more accuracy with NV10
-- less accuracy without texture_env_add (using horrible projective
-  color interpolation (which the spec does not require to be
-  implemented) hack to compensate the nonlinearity of texenv_modulate)
-- improved shapes?
-
 We show how the GPU can be used to accomplish this - this is the easy
-part and we can even do this on unextended OpenGL 1.3 (XXX jvk!),
-although the flexibility of the NV10 architecture allows us to obtain
-some more accuracy and improved shapes. The technique is simple:
-we tie the texture coordinates to the canvas inside (two different
-ways to do this for different appearance in the results - completely
-connected or with pieces of the shape separating from the edge) and
-draw smoothly interpolated polygons with a different color inside and
-outside of the viewport. The pixel pipeline is coaxed to combining the
+part and we can even do this on unextended OpenGL 1.3.  
+To draw a segment of the irregular shape, we draw a single polygon
+that envelopes the edge on both the inside and outside.
+The texture coordinates are tied to the canvas coordinates.
+They can be tied directly, in which case we get the "sprinkled" edge,
+i.e. pieces of the shape "break off" the edge,
+or they can be tied so that the texture coordinates are the canvas
+coordinates on a line parallel to the edge segment, in which case
+the edge shape is a "height graph" of the texture at the line.
+Both of these texture coordinate binding styles share the same, correct
+style of motion tied to the canvas.
+
+The polygon's color is 
+smoothly interpolated with a different color on the inside and
+outside edge. The pixel pipeline is used to combine the
 interpolated value and the texture value into a single alpha value.
---- XXX: is the previous sentence syntactically correct?.
 Because the alpha test is performed prior to the stencil test, we can
 create the shape by rejecting fragments with the alpha test and drawing
 the remaining shape into the stencil buffer.  Once the shape is in the
 stencil buffer, it can be used as a viewport for any graphics.
 
+Edge
+----
+
 The more difficult part to do efficiently is the rendering of the black
 non-photorealistic edge of the viewport. The problem is that we need the
 edge to be of a constant thickness so just offsetting it in one direction
 will not suffice. The old trick is of course drawing the original shape
 several times, slightly shifted, but this is relatively inefficient.
+
 We present several approximative algorithms which are able to draw the
 required shape in one pass. The algorithms require various levels of
-hardware flexibility - ranging from dot products to NV25 offset textures.
-(and if we obtain our NV30 and NV34 cards in time, we'll also discuss
-the possibilities there).
+hardware flexibility - ranging from dot products to NV25 offset textures
+(where we have an interesting mipmapping hack) to NV30 flexible
+texture accesses and filtering.
+
+Summary
+-------
 
-The core of this proposal is in the original use of texture coordinates
+The most novel ideas in this proposal are the original use of texture 
coordinates
 to obtain the connected shape, the generation of the shapes from the
-interpolated color and alpha, and the rendering of the edges of constant
+interpolated color and alpha, and the methods for rendering of the edges of 
constant
 thicnkess.  Together, the generation of the shapes and drawing of the edge
 explain several details of the capabilities of the fragment pipelines
 of different levels of hardware and how to accomplish better results in
@@ -60,7 +69,7 @@
 edge to any shape that is obtained programmatically from textures.
 
 Our current implementations are OpenGL1.3 with NV extensions but we
-can easily rewrite them using Cg.
+can easily rewrite them using Cg if desired.
 
 --- Figures
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]