/[gzz]/gzz/gfx/libpaper/texcomb_NV1X.py
ViewVC logotype

Diff of /gzz/gfx/libpaper/texcomb_NV1X.py

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

revision 1.11 by jvk, Sat Sep 14 10:22:28 2002 UTC revision 1.12 by jvk, Tue Sep 24 15:58:20 2002 UTC
# Line 26  class TransparentCombinerPass: Line 26  class TransparentCombinerPass:
26              texinputs = texinputs + texinputs              texinputs = texinputs + texinputs
27          t0, t1, t2, t3 = texinputs[0:4]          t0, t1, t2, t3 = texinputs[0:4]
28    
29            #c0, c1, c2 = [ "1 1 1", "1 0 0", "0 0 0"]
30            
31          constantcode = """          constantcode = """
32              Enable BLEND              Enable BLEND
33              BlendFunc SRC_ALPHA ONE_MINUS_SRC_ALPHA              BlendFunc SRC_ALPHA ONE_MINUS_SRC_ALPHA
# Line 119  class TransparentCombinerPass: Line 121  class TransparentCombinerPass:
121                  FCI F SPARE0_NV UNSIGNED_IDENTITY_NV RGB                  FCI F SPARE0_NV UNSIGNED_IDENTITY_NV RGB
122    
123                  # lerp(EF, PRI_COL, SEC_COL)                  # lerp(EF, PRI_COL, SEC_COL)
124                  FCI A E_TIMES_F_NV UNSIGNED_IDENTITY_NV RGB                  FCI A E_TIMES_F_NV UNSIGNED_INVERT_NV RGB
125                  FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB                  FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
126                  FCI C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB                  FCI C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
127                  FCI D ZERO UNSIGNED_IDENTITY_NV RGB                  FCI D ZERO UNSIGNED_IDENTITY_NV RGB
128    
129                  FCI G %(finalG)s UNSIGNED_INVERT_NV BLUE                  FCI G %(finalG)s UNSIGNED_INVERT_NV BLUE
130              """)              """)
131          else:          elif 1:
132              # Interpolate between three colors:              # Interpolate between three colors:
133              # d0 = t0 . r0              # d0 = t0 . r0
134              # d1 = t1 . r1              # d1 = t1 . r1
# Line 151  class TransparentCombinerPass: Line 153  class TransparentCombinerPass:
153    
154                  # PRI_COL <- lerp(SPARE0, PRI_COL, SEC_COL)                  # PRI_COL <- lerp(SPARE0, PRI_COL, SEC_COL)
155                  CI1 RGB A PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB                  CI1 RGB A PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
156                  CI1 RGB B SPARE0_NV UNSIGNED_IDENTITY_NV RGB                  CI1 RGB B SPARE0_NV UNSIGNED_INVERT_NV RGB
157                  CI1 RGB C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB                  CI1 RGB C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
158                  CI1 RGB D SPARE0_NV UNSIGNED_INVERT_NV RGB                  CI1 RGB D SPARE0_NV UNSIGNED_IDENTITY_NV RGB
159                  CO1 RGB DISCARD_NV DISCARD_NV PRIMARY_COLOR_NV NONE NONE FALSE FALSE FALSE                  CO1 RGB DISCARD_NV DISCARD_NV PRIMARY_COLOR_NV NONE NONE FALSE FALSE FALSE
160    
161                  # SPARE1.alpha <- SPARE0^2 - SPARE1^2                  # SPARE1.alpha <- SPARE0^2 - SPARE1^2
# Line 164  class TransparentCombinerPass: Line 166  class TransparentCombinerPass:
166                  CO1 ALPHA DISCARD_NV DISCARD_NV SPARE1_NV NONE NONE FALSE FALSE FALSE                  CO1 ALPHA DISCARD_NV DISCARD_NV SPARE1_NV NONE NONE FALSE FALSE FALSE
167    
168                  # lerp(SPARE1, PRI_COL, FOG)                  # lerp(SPARE1, PRI_COL, FOG)
169                  FCI A SPARE1_NV UNSIGNED_IDENTITY_NV RGB                  FCI A SPARE1_NV UNSIGNED_INVERT_NV RGB
170                  FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB                  FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
171                  FCI C FOG UNSIGNED_IDENTITY_NV RGB                  FCI C FOG UNSIGNED_IDENTITY_NV RGB
172                  FCI D ZERO UNSIGNED_IDENTITY_NV RGB                  FCI D ZERO UNSIGNED_IDENTITY_NV RGB
173    
174                  FCI G %(finalG)s ALPHA                  FCI G %(finalG)s ALPHA
175              """)              """)
176            else:
177                # Interpolate on the fraction line c0,c1,c2:
178                # d0 = t0 . t1
179                # c(d0) =
180                #    -1 -> c0
181                #     0 -> c1
182                #    +1 -> c2
183    
184                # lerp(d1, lerp(d0, c0, c1), c2)
185                # The alpha value is computed as d0^2 - d1^2
186    
187                if trans > 0:
188                    finalG = "SPARE1_NV UNSIGNED_IDENTITY_NV"
189                else:
190                    finalG = "ZERO UNSIGNED_INVERT_NV"
191                
192                c = ("""
193                    # Fraction-line color interpolate
194                    
195                    # SPARE0 <- (TEX0 . TEX1)  
196                    # SPARE1 <- -(TEX0 . TEX1)
197                    CI0 RGB A TEXTURE%(t0)s EXPAND_NORMAL_NV RGB
198                    CI0 RGB B TEXTURE%(t1)s EXPAND_NORMAL_NV RGB
199                    CI0 RGB A TEXTURE%(t0)s EXPAND_NEGATE_NV RGB
200                    CI0 RGB B TEXTURE%(t1)s EXPAND_NORMAL_NV RGB
201                    CO0 RGB SPARE0_NV SPARE1_NV DISCARD_NV NONE NONE TRUE TRUE FALSE
202    
203                    # PRI_COL <- lerp(SPARE1, SEC_COL, PRI_COL)
204                    CI1 RGB A PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
205                    CI1 RGB B SPARE1_NV UNSIGNED_INVERT_NV RGB
206                    CI1 RGB C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
207                    CI1 RGB D SPARE1_NV UNSIGNED_IDENTITY_NV RGB
208                    CO1 RGB DISCARD_NV DISCARD_NV PRIMARY_COLOR_NV NONE NONE FALSE FALSE FALSE
209    
210                    # lerp(SPARE0, PRI_COL, FOG)
211                    FCI A SPARE0_NV UNSIGNED_INVERT_NV RGB
212                    FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB
213                    FCI C FOG UNSIGNED_IDENTITY_NV RGB
214                    FCI D ZERO UNSIGNED_IDENTITY_NV RGB
215    
216                    # SPARE1.alpha <- t0.b * c0b + t1.b * c1.b
217                    CI1 ALPHA A TEXTURE%(t0)s EXPAND_NORMAL_NV BLUE
218                    CI1 ALPHA B CONSTANT_COLOR0_NV EXPAND_NORMAL_NV BLUE
219                    CI1 ALPHA C TEXTURE%(t1)s EXPAND_NORMAL_NV BLUE
220                    CI1 ALPHA B CONSTANT_COLOR1_NV EXPAND_NORMAL_NV BLUE
221                    CO1 ALPHA DISCARD_NV DISCARD_NV SPARE1_NV NONE NONE FALSE FALSE FALSE
222                    
223                    FCI G %(finalG)s ALPHA
224                """)
225                            
226                            
227          c = (constantcode + c) % locals()          c = (constantcode + c) % locals()

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

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