/[gzz]/gzz/gfx/demo/paperbasis.py
ViewVC logotype

Diff of /gzz/gfx/demo/paperbasis.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by tjl, Mon Sep 23 08:37:04 2002 UTC revision 1.11 by tjl, Sun Oct 6 13:44:14 2002 UTC
# Line 8  import java Line 8  import java
8  from java.lang import Math  from java.lang import Math
9    
10  execfile("gfx/libcolor/spaces.py")  execfile("gfx/libcolor/spaces.py")
11  execfile("gfx/libpaper/textures.py")  
12  execfile("gfx/libpaper/texcoords.py")  import gfx.libpaper.textures
13  execfile("gfx/libpaper/colors.py")  # execfile("gfx/libpaper/textures.py")
14    # execfile("gfx/libpaper/texcoords.py")
15    # execfile("gfx/libpaper/colors.py")
16    
17  passmask = [ 1, 0, 0, 0 ]  passmask = [ 1, 0, 0, 0 ]
18    
# Line 78  tex1codes = { Line 80  tex1codes = {
80      FCI G ZERO UNSIGNED_INVERT_NV ALPHA      FCI G ZERO UNSIGNED_INVERT_NV ALPHA
81      """),      """),
82      }      }
83    
84  isectcodes = {  isectcodes = {
85        "BAND0" : nvcode.combinercode("""
86                    # Band-like texture preliminary
87                    # Calculate # TEX0 * TEX1 + 0.5, to see
88                    # how the dot product comes in
89    
90                    CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
91                    
92                    # SPARE0 <- (TEX0 . TEX1)
93                    CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
94                    CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
95                    CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_TWO_NV NONE FALSE TRUE FALSE
96    
97                    # SPARE0 <- SPARE0 + 0.5
98                    CI1 RGB A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
99                    CI1 RGB B ZERO UNSIGNED_INVERT_NV RGB
100                    CI1 RGB C ZERO UNSIGNED_INVERT_NV RGB
101                    CI1 RGB D ZERO HALF_BIAS_NEGATE_NV RGB
102                    CO1 RGB DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE
103    
104                    # lerp(EF, PRI_COL, SEC_COL)
105                    FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
106                    FCI B ZERO UNSIGNED_INVERT_NV RGB
107                    FCI C ZERO UNSIGNED_IDENTITY_NV RGB
108                    FCI D ZERO UNSIGNED_IDENTITY_NV RGB
109    
110                    FCI G ZERO UNSIGNED_INVERT_NV BLUE
111        """),
112        "BAND1" : nvcode.combinercode("""
113                    # Band-like texture preliminary
114                    # Calculate # (TEX0 . TEX1) + 0.5, to see
115                    # where the middle is taken from.
116                    # Moving the basis quads and
117                    # Flipping between this and BAND1 will explain a lot
118    
119                    CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
120                    
121                    # SPARE0 <- (TEX0 . TEX1)
122                    CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
123                    CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
124                    CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_TWO_NV NONE TRUE TRUE FALSE
125    
126                    # SPARE0 <- SPARE0 + 0.5
127                    CI1 RGB A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
128                    CI1 RGB B ZERO UNSIGNED_INVERT_NV RGB
129                    CI1 RGB C ZERO UNSIGNED_INVERT_NV RGB
130                    CI1 RGB D ZERO HALF_BIAS_NEGATE_NV RGB
131                    CO1 RGB DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE
132    
133                    # lerp(EF, PRI_COL, SEC_COL)
134                    FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
135                    FCI B ZERO UNSIGNED_INVERT_NV RGB
136                    FCI C ZERO UNSIGNED_IDENTITY_NV RGB
137                    FCI D ZERO UNSIGNED_IDENTITY_NV RGB
138    
139                    FCI G ZERO UNSIGNED_INVERT_NV BLUE
140        """),
141        "BAND2" : nvcode.combinercode("""
142                    # Band-like texture
143                    # No scaling of the output, just calculate
144                    # (TEX0 . TEX1)**2 and use that for interpolation
145                    CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
146                    
147                    # SPARE0 <- (TEX0 . TEX1)
148                    CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
149                    CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
150                    # CI0 RGB C CONSTANT_COLOR0_NV HALF_BIAS_NORMAL_NV RGB
151                    CI0 RGB C ZERO UNSIGNED_IDENTITY_NV RGB
152                    CI0 RGB D ZERO UNSIGNED_INVERT_NV RGB
153                    CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE TRUE TRUE FALSE
154    
155                    # SPARE0 <- 2 * SPARE0 * SPARE0 * 2
156                    CI1 RGB A SPARE0_NV SIGNED_IDENTITY_NV RGB
157                    CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB
158                    CO1 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE FALSE FALSE FALSE
159    
160                    # lerp(EF, PRI_COL, SEC_COL)
161                    FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
162                    FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
163                    FCI C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
164                    FCI D ZERO UNSIGNED_IDENTITY_NV RGB
165    
166                    FCI G ZERO UNSIGNED_INVERT_NV BLUE
167        """),
168      "BAND" : nvcode.combinercode("""      "BAND" : nvcode.combinercode("""
169                  # Band-like texture                  # Band-like texture
170                  CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2                  CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
# Line 86  isectcodes = { Line 172  isectcodes = {
172                  # SPARE0 <- (TEX0 . TEX1)                  # SPARE0 <- (TEX0 . TEX1)
173                  CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB                  CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
174                  CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB                  CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
175                  CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV NONE NONE TRUE FALSE FALSE                  CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE TRUE FALSE FALSE
176    
177                  # SPARE1 <- SPARE0 * SPARE0 * 2                  # SPARE1 <- SPARE0 * SPARE0 * 2
178                  # SPARE0 <- (TEX0 . CONST0) * 2                  # SPARE0 <- (TEX0 . CONST0) * 2
# Line 143  isectcodes = { Line 229  isectcodes = {
229                  FCI G ZERO UNSIGNED_INVERT_NV ALPHA                  FCI G ZERO UNSIGNED_INVERT_NV ALPHA
230      """),      """),
231      "DOT" : nvcode.combinercode("""      "DOT" : nvcode.combinercode("""
232      CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1          CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1
233                
234      # SPARE0 <- (TEX0 . TEX1)          # SPARE0 <- (TEX0 . TEX1)
235      CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB          CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
236      CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB          CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
237      CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV NONE NONE TRUE FALSE FALSE          CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV NONE NONE TRUE FALSE FALSE
238    
239      FCI A ZERO UNSIGNED_IDENTITY_NV RGB          FCI A ZERO UNSIGNED_IDENTITY_NV RGB
240      FCI B ZERO UNSIGNED_IDENTITY_NV RGB          FCI B ZERO UNSIGNED_IDENTITY_NV RGB
241      FCI C ZERO UNSIGNED_IDENTITY_NV RGB          FCI C ZERO UNSIGNED_IDENTITY_NV RGB
242      FCI D SPARE0_NV UNSIGNED_IDENTITY_NV RGB          FCI D SPARE0_NV UNSIGNED_IDENTITY_NV RGB
243      FCI G ZERO UNSIGNED_INVERT_NV ALPHA          FCI G ZERO UNSIGNED_INVERT_NV ALPHA
244      """)      """)
245      }      }
246    
# Line 174  def getpaper(vecs, cols): Line 260  def getpaper(vecs, cols):
260              ActiveTexture TEXTURE0              ActiveTexture TEXTURE0
261      """)      """)
262    
263      texid = ptextures["RGB2"][0].getTexId();      texid = ptextures["RGB2"][2].getTexId();
264            
265      constcode = """      constcode = """
266          ActiveTexture TEXTURE0          ActiveTexture TEXTURE0
# Line 218  def getpaper(vecs, cols): Line 304  def getpaper(vecs, cols):
304    
305  rng = java.util.Random()  rng = java.util.Random()
306    
307    class PaperRegcombScene:
308        pass
309    
310  class PaperScene:  class PaperScene:
311      def __init__(self):      def __init__(self):
# Line 305  class PaperScene: Line 393  class PaperScene:
393              tex1comb = list[(list.index(tex1comb) + 1) % len(list)]              tex1comb = list[(list.index(tex1comb) + 1) % len(list)]
394              print "Using", tex0comb, isectcomb, tex1comb, "combiners"              print "Using", tex0comb, isectcomb, tex1comb, "combiners"
395              self.initpaper()              self.initpaper()
396          elif k == "F2":          elif k == "c":
397              list = isectcodes.keys()              list = isectcodes.keys()
398                list.sort()
399              isectcomb = list[(list.index(isectcomb) + 1) % len(list)]              isectcomb = list[(list.index(isectcomb) + 1) % len(list)]
400              print "Using", tex0comb, isectcomb, tex1comb, "combiners"              print "Using", tex0comb, isectcomb, tex1comb, "combiners"
401              self.initpaper()              self.initpaper()
402            elif k == "C":
403                list = isectcodes.keys()
404                list.sort()
405                isectcomb = list[(list.index(isectcomb) - 1) % len(list)]
406                print "Using", tex0comb, isectcomb, tex1comb, "combiners"
407                self.initpaper()
408                
409        def scene(self, vs):
410            if not self.pq: self.initpaper()
411            putnoc(vs, background(self.bgcolor))
412                            
413      def scene(self, vs):      def scene(self, vs):
414          if not self.pq: self.initpaper()          if not self.pq: self.initpaper()
# Line 320  class PaperScene: Line 419  class PaperScene:
419          # and cs2 for the second          # and cs2 for the second
420    
421          scale = 400          scale = 400
422          cs1 = vs.coords.affineCoordsys(0, "1", 10, self.x0, self.y0,          cs1 = vs.coords.affineCoordsys(0, 10, self.x0, self.y0,
423                                         scale * self.texgen0.vecs[0][0],                                         scale * self.texgen0.vecs[0][0],
424                                         scale * self.texgen0.vecs[1][0],                                         scale * self.texgen0.vecs[1][0],
425                                         scale * self.texgen0.vecs[0][1],                                         scale * self.texgen0.vecs[0][1],
426                                         scale * self.texgen0.vecs[1][1])                                         scale * self.texgen0.vecs[1][1])
427          cs2 = vs.coords.affineCoordsys(0, "2", 10, self.x1, self.y1,          vs.matcher.add(cs1, "1")
428            cs2 = vs.coords.affineCoordsys(0, 10, self.x1, self.y1,
429                                         scale * self.texgen1.vecs[0][0],                                         scale * self.texgen1.vecs[0][0],
430                                         scale * self.texgen1.vecs[1][0],                                         scale * self.texgen1.vecs[1][0],
431                                         scale * self.texgen1.vecs[0][1],                                         scale * self.texgen1.vecs[0][1],
432                                         scale * self.texgen1.vecs[1][1])                                         scale * self.texgen1.vecs[1][1])
433            vs.matcher.add(cs2, "2")
434    
435          vs.map.put(self.pq, cs1, cs2)          vs.map.put(self.pq, cs1, cs2)
436          vs.map.put(self.frame, cs1)          vs.map.put(self.frame, cs1)
437          vs.map.put(self.frame, cs2)          vs.map.put(self.frame, cs2)
438    
439          for i in range(0,3):          for i in range(0,3):
440              cs = vs.coords.affineCoordsys(0, "col" + str(i), 10, 600 + (i-1)*150, 80, 50, 0, 0, 50)              cs = vs.coords.affineCoordsys(0, 10, 600 + (i-1)*150, 80, 50, 0, 0, 50)
441                vs.matcher.add(cs, "col" + str(i))
442              col = self.cols[i].split()              col = self.cols[i].split()
443              cq = coloredQuad((col[0], col[1], col[2]))              cq = coloredQuad((col[0], col[1], col[2]))
444              vs.map.put(cq, cs)              vs.map.put(cq, cs)

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26