[Top][All Lists]
[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()
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz ./TODO gfx/demo/softshadow.py,
Tuomas J. Lukka <=