[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/gfx demo/paperbasis.py libutil/nvcode.py
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz/gfx demo/paperbasis.py libutil/nvcode.py |
Date: |
Mon, 25 Nov 2002 06:05:12 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 02/11/25 06:05:12
Modified files:
gfx/demo : paperbasis.py
gfx/libutil : nvcode.py
Log message:
Work on paper film. Adapt to parseCombiner
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/paperbasis.py.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libutil/nvcode.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
Patches:
Index: gzz/gfx/demo/paperbasis.py
diff -u gzz/gfx/demo/paperbasis.py:1.14 gzz/gfx/demo/paperbasis.py:1.15
--- gzz/gfx/demo/paperbasis.py:1.14 Sat Nov 23 14:03:35 2002
+++ gzz/gfx/demo/paperbasis.py Mon Nov 25 06:05:12 2002
@@ -32,169 +32,69 @@
"""
tex0codes = {
- "RGB" : nvcode.combinercode("""
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1 # Cannot be 0
- FCI A ZERO UNSIGNED_IDENTITY_NV RGB
- FCI B ZERO UNSIGNED_IDENTITY_NV RGB
- FCI C ZERO UNSIGNED_IDENTITY_NV RGB
- FCI D TEXTURE0 UNSIGNED_IDENTITY_NV RGB
- FCI G ZERO UNSIGNED_INVERT_NV ALPHA
+ "RGB" : nvcode.parseCombiner("""
+ color = TEX0
+ alpha = 1
"""),
- "DOT" : nvcode.combinercode("""
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1
+ "DOT" : nvcode.parseCombiner("""
+
+ SPARE0 = (2*TEX0-1).(2*COL0-1)
+ color = SPARE0
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB
- CI0 RGB C TEXTURE1 EXPAND_NORMAL_NV RGB
- CI0 RGB D CONSTANT_COLOR1_NV EXPAND_NORMAL_NV RGB
- CO0 RGB SPARE0_NV SPARE1_NV DISCARD_NV NONE NONE TRUE TRUE FALSE
-
- FCI A ZERO UNSIGNED_IDENTITY_NV RGB
- FCI B ZERO UNSIGNED_IDENTITY_NV RGB
- FCI C ZERO UNSIGNED_IDENTITY_NV RGB
- FCI D SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- FCI G ZERO UNSIGNED_INVERT_NV ALPHA
"""),
}
tex1codes = {
"RGB" : nvcode.combinercode("""
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1 # Cannot be 0
- FCI A ZERO UNSIGNED_IDENTITY_NV RGB
- FCI B ZERO UNSIGNED_IDENTITY_NV RGB
- FCI C ZERO UNSIGNED_IDENTITY_NV RGB
- FCI D TEXTURE1 UNSIGNED_IDENTITY_NV RGB
- FCI G ZERO UNSIGNED_INVERT_NV ALPHA
+ color = TEX0
+ alpha = 1
"""),
"DOT" : nvcode.combinercode("""
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1
-
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB
- CI0 RGB C TEXTURE1 EXPAND_NORMAL_NV RGB
- CI0 RGB D CONSTANT_COLOR1_NV EXPAND_NORMAL_NV RGB
- CO0 RGB SPARE0_NV SPARE1_NV DISCARD_NV NONE NONE TRUE TRUE FALSE
-
- FCI A ZERO UNSIGNED_IDENTITY_NV RGB
- FCI B ZERO UNSIGNED_IDENTITY_NV RGB
- FCI C ZERO UNSIGNED_IDENTITY_NV RGB
- FCI D SPARE1_NV UNSIGNED_IDENTITY_NV RGB
- FCI G ZERO UNSIGNED_INVERT_NV ALPHA
+
+ SPARE0 = (2*TEX1-1).(2*COL0-1)
+ color = SPARE0
"""),
}
isectcodes = {
- "BAND0" : nvcode.combinercode("""
- # Band-like texture preliminary
- # Calculate # TEX0 * TEX1 + 0.5, to see
- # how the dot product comes in
+ "BAND0" : nvcode.parseCombiner("""
+ SPARE0 = ((2*TEX0-1) . (2*TEX1-1)) * 2
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
-
- # SPARE0 <- (TEX0 . TEX1)
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
- CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_TWO_NV NONE
FALSE TRUE FALSE
+ SPARE0 = (+SPARE0) + (.5)
- # SPARE0 <- SPARE0 + 0.5
- CI1 RGB A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- CI1 RGB B ZERO UNSIGNED_INVERT_NV RGB
- CI1 RGB C ZERO UNSIGNED_INVERT_NV RGB
- CI1 RGB D ZERO HALF_BIAS_NEGATE_NV RGB
- CO1 RGB DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE
FALSE
-
- # lerp(EF, PRI_COL, SEC_COL)
- FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- FCI B ZERO UNSIGNED_INVERT_NV RGB
- FCI C ZERO UNSIGNED_IDENTITY_NV RGB
- FCI D ZERO UNSIGNED_IDENTITY_NV RGB
-
- FCI G ZERO UNSIGNED_INVERT_NV BLUE
+ color = SPARE0
+ alpha = 1
"""),
- "BAND1" : nvcode.combinercode("""
- # Band-like texture preliminary
- # Calculate # (TEX0 . TEX1) + 0.5, to see
- # where the middle is taken from.
- # Moving the basis quads and
- # Flipping between this and BAND1 will explain a lot
-
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
-
- # SPARE0 <- (TEX0 . TEX1)
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
- CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_TWO_NV NONE
TRUE TRUE FALSE
+ "BAND1" : nvcode.parseCombiner("""
+ SPARE0 = ((2*TEX0-1) . (2*TEX1-1)) * 4
- # SPARE0 <- SPARE0 + 0.5
- CI1 RGB A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- CI1 RGB B ZERO UNSIGNED_INVERT_NV RGB
- CI1 RGB C ZERO UNSIGNED_INVERT_NV RGB
- CI1 RGB D ZERO HALF_BIAS_NEGATE_NV RGB
- CO1 RGB DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE
FALSE
-
- # lerp(EF, PRI_COL, SEC_COL)
- FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- FCI B ZERO UNSIGNED_INVERT_NV RGB
- FCI C ZERO UNSIGNED_IDENTITY_NV RGB
- FCI D ZERO UNSIGNED_IDENTITY_NV RGB
+ SPARE0 = ((+SPARE0)*(+SPARE0)) * 2
- FCI G ZERO UNSIGNED_INVERT_NV BLUE
+ color = SPARE0
+ alpha = 1
"""),
- "BAND2" : nvcode.combinercode("""
- # Band-like texture
- # No scaling of the output, just calculate
- # (TEX0 . TEX1)**2 and use that for interpolation
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
-
- # SPARE0 <- (TEX0 . TEX1)
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
- # CI0 RGB C CONSTANT_COLOR0_NV HALF_BIAS_NORMAL_NV RGB
- CI0 RGB C ZERO UNSIGNED_IDENTITY_NV RGB
- CI0 RGB D ZERO UNSIGNED_INVERT_NV RGB
- CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE
TRUE TRUE FALSE
-
- # SPARE0 <- 2 * SPARE0 * SPARE0 * 2
- CI1 RGB A SPARE0_NV SIGNED_IDENTITY_NV RGB
- CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB
- CO1 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE
FALSE FALSE FALSE
-
- # lerp(EF, PRI_COL, SEC_COL)
- FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB
- FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
- FCI C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
- FCI D ZERO UNSIGNED_IDENTITY_NV RGB
+ "BAND2" : nvcode.parseCombiner("""
+ SPARE0 = ((2*TEX0-1) . (2*TEX1-1)) * 4
+
+ SPARE0 = ((+SPARE0)*(+SPARE0)) * 2
+ SPARE1 = ((2*TEX0-1).(2*CONST0-1)) * 2
- FCI G ZERO UNSIGNED_INVERT_NV BLUE
+ color = SPARE0 * SPARE1
+ alpha = 1
"""),
- "BAND" : nvcode.combinercode("""
- # Band-like texture
- CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
-
- # SPARE0 <- (TEX0 . TEX1)
- CI0 RGB A TEXTURE0 EXPAND_NORMAL_NV RGB
- CI0 RGB B TEXTURE1 EXPAND_NORMAL_NV RGB
- CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE
TRUE FALSE FALSE
+ "BAND2" : nvcode.parseCombiner("""
+ SPARE0 = ((2*TEX0-1) . (2*TEX1-1)) * 4
- # SPARE1 <- SPARE0 * SPARE0 * 2
- # SPARE0 <- (TEX0 . CONST0) * 2
- CI1 RGB A SPARE0_NV SIGNED_IDENTITY_NV RGB
- CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB
- CI1 RGB C TEXTURE0 EXPAND_NORMAL_NV RGB
- CI1 RGB D CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB
- CO1 RGB SPARE1_NV SPARE0_NV DISCARD_NV SCALE_BY_TWO_NV NONE
FALSE TRUE FALSE
-
- # EF <- SPARE0 * SPARE1
- FCI E SPARE1_NV UNSIGNED_INVERT_NV RGB
- FCI F SPARE0_NV UNSIGNED_IDENTITY_NV RGB
-
- # lerp(EF, PRI_COL, SEC_COL)
- FCI A E_TIMES_F_NV UNSIGNED_IDENTITY_NV RGB
- FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
- FCI C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
- FCI D ZERO UNSIGNED_IDENTITY_NV RGB
+ SPARE0 = ((+SPARE0)*(+SPARE0)) * 2
+ SPARE1 = ((2*TEX0-1).(2*CONST0-1)) * 2
- FCI G ZERO UNSIGNED_INVERT_NV BLUE
+ EF = SPARE0 * SPARE1
+ color = EF*COL0 + (1-EF)*COL1
+ alpha = 1
"""),
+}
+
+
+isectcodes0 = {
"I3COL" : nvcode.combinercode("""
# Interpolate between three colors using two dot products
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
@@ -247,7 +147,7 @@
tex0comb = "RGB"
tex1comb = "RGB"
-isectcomb = "I3COL"
+isectcomb = "BAND0"
def getpaper(vecs, cols):
pap = Paper()
@@ -388,17 +288,20 @@
list = tex0codes.keys()
tex0comb = list[(list.index(tex0comb) + 1) % len(list)]
print "Using", tex0comb, isectcomb, tex1comb, "combiners"
+ print tex0codes[tex0comb]
self.initpaper()
elif k == "F3":
list = tex1codes.keys()
tex1comb = list[(list.index(tex1comb) + 1) % len(list)]
print "Using", tex0comb, isectcomb, tex1comb, "combiners"
+ print tex1codes[tex1comb]
self.initpaper()
elif k == "c":
list = isectcodes.keys()
list.sort()
isectcomb = list[(list.index(isectcomb) + 1) % len(list)]
print "Using", tex0comb, isectcomb, tex1comb, "combiners"
+ print isectcodes[isectcomb]
self.initpaper()
elif k == "C":
list = isectcodes.keys()
Index: gzz/gfx/libutil/nvcode.py
diff -u gzz/gfx/libutil/nvcode.py:1.7 gzz/gfx/libutil/nvcode.py:1.8
--- gzz/gfx/libutil/nvcode.py:1.7 Sun Nov 24 05:01:40 2002
+++ gzz/gfx/libutil/nvcode.py Mon Nov 25 06:05:12 2002
@@ -480,6 +480,7 @@
# Semantics:
# - A new combiner stage is started (unless empty) for all lines except for
# those adjacent "REG = OUT" assignments that can fit in the current stage.
+# To force a new stage, just insert a blank line.
# - Per stage constants are enabled unless all constant assignments are
# either before or after all general combiner register assignments
# - Only syntax is verified; Semantic errors may not be detected until
- [Gzz-commits] gzz/gfx demo/paperbasis.py libutil/nvcode.py,
Tuomas J. Lukka <=