gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz/gfx demo/irregu3.py libtexture/irregu.texture


From: Janne V. Kujala
Subject: [Gzz-commits] gzz/gfx demo/irregu3.py libtexture/irregu.texture
Date: Mon, 28 Oct 2002 04:54:57 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Janne V. Kujala <address@hidden>        02/10/28 04:54:56

Modified files:
        gfx/demo       : irregu3.py 
        gfx/libtexture : irregu.texture 

Log message:
        Texture shader version of irregu works perfectly!

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/irregu3.py.diff?tr1=1.23&tr2=1.24&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libtexture/irregu.texture.diff?tr1=1.11&tr2=1.12&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/irregu3.py
diff -u gzz/gfx/demo/irregu3.py:1.23 gzz/gfx/demo/irregu3.py:1.24
--- gzz/gfx/demo/irregu3.py:1.23        Sat Oct 26 10:09:53 2002
+++ gzz/gfx/demo/irregu3.py     Mon Oct 28 04:54:56 2002
@@ -3,8 +3,10 @@
 from gfx.libpaper.texcache import getCachedTexture
 
 ripple_scale = .25
-size = 256
+texsize = 256
+edgetexsize = 1024
 lodbias = 0
+edgelodbias = 0
 texscale = 1
 use_texture = 0
 use_stencil = 1
@@ -41,8 +43,8 @@
         using_shader = 1
         global use_stencil
         use_stencil = 0
-        edgetex = getCachedTexture([1, 1024, 0, 4, "RGBA", "RGBA",
-                                    "irreguedge", ["line_width", "100"]], 
shade_all_levels = 1)
+        edgetex = getCachedTexture([1, edgetexsize, 0, 4, "RGBA", "RGBA",
+                                    "irreguedge", ["line_width", "1"]], 
shade_all_levels = 1)
         
         texenv_inner = """
         Enable TEXTURE_SHADER_NV
@@ -181,9 +183,9 @@
             "scale", str(tex_scale), "bias", str(tex_bias), "eps", ".125"]
 
 
-    tex = getCachedTexture([size, size, 0] + tex_format +
+    tex = getCachedTexture([texsize, texsize, 0] + tex_format +
                            ["irregu",  args], shade_all_levels = 1)
-    texinv = getCachedTexture([size, size, 0] + tex_format + 
+    texinv = getCachedTexture([texsize, texsize, 0] + tex_format + 
                               ["irregu", args + ["invert", "1"]],
                               shade_all_levels = 1)
 
@@ -207,6 +209,9 @@
     global lodbias
     if k == "b": lodbias += .25; print "lodbias", lodbias
     elif k == "B": lodbias -= .25; print "lodbias", lodbias
+    global edgelodbias
+    if k == "e": edgelodbias += .25; print "lodbias", edgelodbias
+    elif k == "E": edgelodbias -= .25; print "lodbias", edgelodbias
     global texscale
     if k == "s": texscale *= 1.2; print "texscale", texscale
     elif k == "S": texscale /= 1.2; print "texscale", texscale
@@ -256,8 +261,8 @@
     if using_shader:
         texcoords += [ [ (0, 0, 0),
                          (0, 0, 0),
-                         (0, 0, striplen / texscale*1024),
-                         (0, 0, striplen / texscale*1024),
+                         (0, 0, striplen / texscale * edgetexsize),
+                         (0, 0, striplen / texscale * edgetexsize),
                          ],
                        [ (dx,dy,0-.5*(dx+dy)),
                          (dx,dy,1-.5*(dx+dy)),
@@ -299,6 +304,13 @@
         TexEnv TEXTURE_FILTER_CONTROL_EXT TEXTURE_LOD_BIAS_EXT %s
         """ % lodbias
 
+    if using_shader:
+        code += """
+        ActiveTexture TEXTURE2
+        TexEnv TEXTURE_FILTER_CONTROL_EXT TEXTURE_LOD_BIAS_EXT %s
+        ActiveTexture TEXTURE0
+        """ % edgelodbias
+
     if use_stencil:
         code += """
         # Create edge stencil
@@ -364,7 +376,7 @@
 
 class IrreguScene:
     def __init__(self):
-        self.scale = size
+        self.scale = texsize
         self.angle = 0
         self.tx, self.ty = 0, 0
         
Index: gzz/gfx/libtexture/irregu.texture
diff -u gzz/gfx/libtexture/irregu.texture:1.11 
gzz/gfx/libtexture/irregu.texture:1.12
--- gzz/gfx/libtexture/irregu.texture:1.11      Sat Oct 26 10:09:53 2002
+++ gzz/gfx/libtexture/irregu.texture   Mon Oct 28 04:54:56 2002
@@ -75,10 +75,15 @@
        if (f > 1) f = 1;
        if (f < 0) f = 0;
 
+       float factor = (1 - radius / (width * ripple_scale));
+       if (factor < 0) factor = 0;
+
        if (components != 2) {
            // Scale down to make space for the border
-           f *= (1 - radius / (width * ripple_scale));
-           if (f < 0) f = 0;
+           f *= factor;
+       } else {
+           // Scale towards middle to make space for the border
+           f = (f - .5) * factor + .5;
        }
 
        data[i] = f * scale + bias;




reply via email to

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