gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz ./TODO gfx/demo/softshadow.py


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz ./TODO gfx/demo/softshadow.py
Date: Sun, 24 Nov 2002 09:43:24 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/11/24 09:43:23

Modified files:
        .              : TODO 
        gfx/demo       : softshadow.py 

Log message:
        Geforce4 ti real shadow buffer use. Not terribly good soft shadow 
quality...

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/TODO.diff?tr1=1.413&tr2=1.414&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/softshadow.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: gzz/TODO
diff -u gzz/TODO:1.413 gzz/TODO:1.414
--- gzz/TODO:1.413      Sun Nov 24 09:31:34 2002
+++ gzz/TODO    Sun Nov 24 09:43:23 2002
@@ -87,17 +87,6 @@
                - image-space algorithms
                - example applications
                + polygon puzzle view
-       + xupdf: distorted multi-page PDF view with xu links
-           + adjustable zoom / distortion area by mouse
-           + discard high-rez images (500kB/image) ?
-               (imagecache)
-           + faster loading of pagespan images
-               - use lower resolution first, lazily load better
-                   - deetsay's imagecache code?
-           + multiple instances of same cell visible as a buoy --> keys?
-               - special matcher? or pp/VobKeyer?
-               - really USE hierarchical keys
-           + joystick?
        - better graphics for xupdf and pp
            - fillets without the original object
                - normal direction as data
@@ -140,6 +129,7 @@
           (PEG 1004)
        + get rid of non-random urn-5s in Ids!!!
     mudyc:
+       - redesign liblines API to be more generic
        + PP 
            + PEG splitting PPView2 into manageable fragments
            + see how PageImageSpan and mstmpimg etc. work.
@@ -225,6 +215,17 @@
           bounding boxes. Fast, but not very efficient.
        + implement Paper TexGenEmboss::setUp_explicit
     tjl:
+       + xupdf: distorted multi-page PDF view with xu links
+           + adjustable zoom / distortion area by mouse
+           + discard high-rez images (500kB/image) ?
+               (imagecache)
+           + faster loading of pagespan images
+               - use lower resolution first, lazily load better
+                   - deetsay's imagecache code?
+           + multiple instances of same cell visible as a buoy --> keys?
+               - special matcher? or pp/VobKeyer?
+               - really USE hierarchical keys
+           + joystick?
        - use back buffer for libpaper
        + CoordSys::DistordCoords::canPerformGL() returns false.
           Define action (=complain in stderr?) when trying to use
Index: gzz/gfx/demo/softshadow.py
diff -u gzz/gfx/demo/softshadow.py:1.2 gzz/gfx/demo/softshadow.py:1.3
--- gzz/gfx/demo/softshadow.py:1.2      Sun Nov 17 15:56:37 2002
+++ gzz/gfx/demo/softshadow.py  Sun Nov 24 09:43:23 2002
@@ -1,15 +1,35 @@
 from __future__ import nested_scopes 
 
+w.setLocation(0,0,1024,1024)
+
 from java.awt import Color
 
-class SSScene :
+class Rects :
+    def drawScene(self, vs, seed):
+       vs.map.put(background((.3, .6, .7)))
+       depths = (-500, 500, 1000, 2000)
+
+       gen = java.util.Random(seed)
+       def r(s=1):
+           return s * gen.nextDouble()
+
+       vs.put(coloredQuad((.3,.7,.8)), "BG", depths[3], 0, 0, 1200, 1200)
+       # self.draw(vs, (.3,.7,.8), depths, depths[3], 0, 0, 1200, 1200)
+       self.draw(vs, (0,1,0), depths, depths[2], r(440), r(450), r(300)+100, 
r(400)+100)
+       self.draw(vs, (1,0,0), depths, depths[1], r(450), r(450), r(300)+100, 
r(400)+100)
+       self.draw(vs, (0,0,1), depths, depths[0], r(400), r(400), r(400)+100, 
r(300)+100)
+    def key(self, key):
+       pass
+
+
+class SSScene(Rects) :
     def __init__(self):
        self.bgdepth = 40
        gen = java.util.Random()
        def jit(s):
            return s + .1*(2*gen.nextDouble()-1)
-       # l = (.5, .66, .83, 1.16, 1.33, 1.5)
-       # self.lights = [(jit(x),jit(y)) for x in l for y in l]
+       l = (.5, .66, .83, 1.16, 1.33, 1.5)
+       self.lights = [(jit(x),jit(y)) for x in l for y in l]
        if 0:
            self.shadow = getDList("""
                PushAttrib ENABLE_BIT CURRENT_BIT COLOR_BUFFER_BIT 
DEPTH_BUFFER_BIT
@@ -43,8 +63,6 @@
            self.shadowend = getDListNocoords("""
                PopAttrib
            """)
-    def key(self, key):
-       pass
     def draw(self, vs, color, depths, depth, x, y, w, h):
        vob = coloredQuad(color)
        vs.put(vob, str(depth), depth, x, y, w, h)
@@ -58,18 +76,120 @@
                    o = (d-depth)
                    vs.put(vob, str((d, depth,l)), d, x+l[0]*o, y+l[1]*o, w, h)
        vs.map.put(self.shadowend)
-       
+    def scene(self,*args):
+       self.drawScene(*args)
+
+ts = 1024
+
+class SBScene(Rects):
+    def __init__(self):
+       self.tex = GL.createTexture()
+       for l in range(0,5):
+           self.tex.loadNull2D(l, "DEPTH_COMPONENT24_SGIX", ts/2**l, ts/2**l, 
0, "DEPTH_COMPONENT", "UNSIGNED_SHORT")
+       self.drawshad = 1
+       self.seed = 0
+       self.shift = (-.02, .01)
+       self.vob = getDList("""
+           Begin TRIANGLES
+               Vertex 0 0 0
+               Vertex 1 0 0
+               Vertex 0 1 00
+           End
+       """)
+       # self.tex.loadNull2D(0, "RGB", ts, ts, 0, "RGB", "UNSIGNED_SHORT")
+    def key(self, key):
+       if key == "s": 
+           self.drawshad = not self.drawshad
+       if key == "+": 
+           self.seed += 1
+           AbstractUpdateManager.chg()
+       if key == "-": 
+           self.seed -= 1
+           AbstractUpdateManager.chg()
+    def draw(self, vs, color, depths, depth, x, y, w, h):
+       vs.map.put(getDListNocoords("""
+           Color %s %s %s
+       """ % color))
+       vs.put(self.vob, str(depth), depth, x, y, w, h)
+    def drawShadowLevel(self, vs, level):
+       # Shadow matrix
+       fact = .5**level
+       shif = self.shift[0] * fact
+       vs.map.put(getDListNocoords("""
+           PushMatrix
+           MultMatrix %(fact)s 0  0 0 \
+                       0 %(fact)s 0 0 \
+                       %(shif)s %(shif)s 1 0 \
+                       0 0 0 1
+       """ % locals()))
+       self.drawScene(vs, self.seed)
+       vs.map.put(getDListNocoords("""
+           PopMatrix
+       """))
+       print "WH: ", int(ts*fact)
+       texim = GLRen.createCopyTexSubImage2D(
+                           "TEXTURE_2D", level, 0, 0, int(ts * fact), int(ts * 
fact))
+
+       vs.map.put(texim, vs.orthoCS(0, str(("dept_",level)), 0, 0, ts * fact, 
1, 1))
     def scene(self, vs):
-       vs.map.put(background((.3, .6, .7)))
-       depths = (10, 20, 30, 40)
+       texid = self.tex.getTexId()
+       vs.map.put(getDListNocoords("""
+           PushAttrib TEXTURE_BIT ENABLE_BIT 
+           ActiveTexture TEXTURE0
+           BindTexture TEXTURE_2D %(texid)s
+           TexParameter TEXTURE_2D TEXTURE_MAX_LEVEL 4
+           TexParameter TEXTURE_2D TEXTURE_MAX_LOD 3.5
+           TexParameter TEXTURE_2D TEXTURE_MIN_LOD 3.5
+
+           TexParameter TEXTURE_2D TEXTURE_COMPARE_SGIX TRUE 
+           TexParameter TEXTURE_2D TEXTURE_COMPARE_OPERATOR_SGIX 
TEXTURE_LEQUAL_R_SGIX 
+           TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 1 
+           TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR 
+       """ % locals()))
+       self.drawShadowLevel(vs, 0)
+       self.drawShadowLevel(vs, 1)
+       self.drawShadowLevel(vs, 2)
+       self.drawShadowLevel(vs, 3)
+       self.drawShadowLevel(vs, 4)
+       shif = -self.shift[0] 
+
+       vs.map.put(getDListNocoords("""
+           PushMatrix
+           MultMatrix 1 0  0 0 \
+                       0 1 0 0 \
+                       %(shif)s %(shif)s 1 0 \
+                       0 0 0 1
+       """ % locals()))
+       vs.put(getDList("""
+           Enable TEXTURE_2D
+           TexGen S TEXTURE_GEN_MODE EYE_LINEAR
+           TexGen T TEXTURE_GEN_MODE EYE_LINEAR
+           TexGen R TEXTURE_GEN_MODE EYE_LINEAR
+           Enable TEXTURE_GEN_S
+           Enable TEXTURE_GEN_T
+           Enable TEXTURE_GEN_R
+
+           TexGen S EYE_PLANE 1 0 0 0.00
+           TexGen T EYE_PLANE 0 1 0 0.00
+           TexGen R EYE_PLANE 0.0 -.00 +.00005 .5
+
+           TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE
+           ActiveTexture TEXTURE0
+           Enable BLEND
+           Color 1 1 1 .25
+       """% locals()), "TEXGEN", 0, 0, ts, ts, -ts)
+       vs.map.put(getDListNocoords("""
+           PopMatrix
+       """))
+       vs.put(quad(), "FOO", 0, 0, ts, ts, -ts)
+
+       if self.drawshad:
+           self.drawScene(vs, self.seed)
+       vs.map.put(getDListNocoords("""
+           PopAttrib
+       """))
 
-       gen = java.util.Random()
-       def r(s=1):
-           return s * gen.nextDouble()
 
-       self.draw(vs, (.3,.7,.8), depths, depths[3], 0, 0, 600, 600)
-       self.draw(vs, (0,1,0), depths, depths[2], r(640), r(450), r(300), 
r(400))
-       self.draw(vs, (1,0,0), depths, depths[1], r(650), r(450), r(300), 
r(400))
-       self.draw(vs, (0,0,1), depths, depths[0], r(600), r(400), r(400), 
r(300))
        
-currentScene = SSScene()
+currentScene = SBScene()
+




reply via email to

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