1 |
from gfx.libutil.nvcode import combinercode, parseCombiner |
from gfx.libutil.nvcode import parseCombiner |
2 |
from gfx.libpaper.texcache import getCachedTexture |
from gfx.libpaper.texcache import getCachedTexture |
3 |
from math import sin,cos,pi |
from math import sin,cos,pi |
4 |
from gfx.libutil import saveanim |
from gfx.libutil import saveanim |
81 |
shade_all_levels = 1) |
shade_all_levels = 1) |
82 |
|
|
83 |
global dot4_code |
global dot4_code |
84 |
dot4_code = combinercode(""" |
dot4_code = parseCombiner(""" |
85 |
PushAttrib ENABLE_BIT TEXTURE_BIT |
PushAttrib ENABLE_BIT TEXTURE_BIT |
86 |
CombinerParameterNV CONSTANT_COLOR0_NV %(color)s |
CombinerParameterNV CONSTANT_COLOR0_NV %(color)s |
87 |
|
|
88 |
Enable REGISTER_COMBINERS_NV |
Enable REGISTER_COMBINERS_NV |
89 |
|
|
90 |
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2 |
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2 |
91 |
|
|
92 |
# SPARE0 <- TEXTURE0 . COLOR |
SPARE0 = TEX0 . COL0 |
93 |
CI0 RGB A TEXTURE0 UNSIGNED_IDENTITY_NV RGB |
SPARE0.alpha = TEX0.alpha * COL0.alpha + COL1.blue |
94 |
CI0 RGB B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
|
95 |
CO0 RGB SPARE0_NV DISCARD_NV DISCARD_NV NONE NONE TRUE FALSE FALSE |
SPARE0.alpha = SPARE0.blue + SPARE0.alpha |
96 |
|
|
97 |
# SPARE0.alpha <- TEXTURE0.alpha * COLOR.alpha + SEC_COLOR.b |
alpha = SPARE0.alpha |
98 |
CI0 ALPHA A TEXTURE0 UNSIGNED_IDENTITY_NV ALPHA |
color = CONST0 |
|
CI0 ALPHA B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV ALPHA |
|
|
CI0 ALPHA C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV BLUE |
|
|
CI0 ALPHA D ZERO UNSIGNED_INVERT_NV ALPHA |
|
|
CO0 ALPHA DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
# SPARE0.alpha <- SPARE0 + SPARE0.alpha |
|
|
CI1 ALPHA A SPARE0_NV UNSIGNED_IDENTITY_NV BLUE |
|
|
CI1 ALPHA B ZERO UNSIGNED_INVERT_NV ALPHA |
|
|
CI1 ALPHA C SPARE0_NV UNSIGNED_IDENTITY_NV ALPHA |
|
|
CI1 ALPHA D ZERO UNSIGNED_INVERT_NV ALPHA |
|
|
CO1 ALPHA DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE |
|
|
# alpha <- SPARE0.alpha |
|
|
FCI G SPARE0_NV UNSIGNED_IDENTITY_NV ALPHA |
|
|
|
|
|
# color <- CONTANT_COLOR0 |
|
|
FCI A ZERO UNSIGNED_IDENTITY_NV RGB |
|
|
FCI B ZERO UNSIGNED_IDENTITY_NV RGB |
|
|
FCI C ZERO UNSIGNED_IDENTITY_NV RGB |
|
|
FCI D CONSTANT_COLOR0_NV UNSIGNED_IDENTITY_NV RGB |
|
99 |
|
|
100 |
BindTexture TEXTURE_2D %(tex)s |
BindTexture TEXTURE_2D %(tex)s |
101 |
TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR |
TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR |
336 |
if slice & SLICE_2D: |
if slice & SLICE_2D: |
337 |
c1 = "1 1 1 0 0 0 0 0" |
c1 = "1 1 1 0 0 0 0 0" |
338 |
slice += Y_SECCOLOR |
slice += Y_SECCOLOR |
339 |
code += combinercode(""" |
code += parseCombiner(""" |
340 |
SecondaryColorEXT .5 .5 .5 |
SecondaryColorEXT .5 .5 .5 |
341 |
|
|
342 |
ActiveTexture TEXTURE1 |
ActiveTexture TEXTURE1 |
347 |
ActiveTexture TEXTURE0 |
ActiveTexture TEXTURE0 |
348 |
|
|
349 |
Enable REGISTER_COMBINERS_NV |
Enable REGISTER_COMBINERS_NV |
|
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2 |
|
350 |
|
|
351 |
CI0 RGB A TEXTURE0 UNSIGNED_IDENTITY_NV RGB |
SPARE0 = TEX0 * (1-COL1) + TEX1 * COL1 |
352 |
CI0 RGB B SECONDARY_COLOR_NV UNSIGNED_INVERT_NV RGB |
SPARE0.alpha = TEX0.alpha * (1-COL1.blue) + TEX1.alpha * COL1.blue |
353 |
CI0 RGB C TEXTURE1 UNSIGNED_IDENTITY_NV RGB |
|
354 |
CI0 RGB D SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
SPARE0 = SPARE0 + COL0 |
355 |
CO0 RGB DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE |
SPARE0.alpha = SPARE0.alpha + COL0.alpha |
356 |
|
|
357 |
CI0 ALPHA A TEXTURE0 UNSIGNED_IDENTITY_NV ALPHA |
color = SPARE0 |
358 |
CI0 ALPHA B SECONDARY_COLOR_NV UNSIGNED_INVERT_NV BLUE |
alpha = SPARE0.alpha |
359 |
CI0 ALPHA C TEXTURE1 UNSIGNED_IDENTITY_NV ALPHA |
|
|
CI0 ALPHA D SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV BLUE |
|
|
CO0 ALPHA DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
CI1 RGB A SPARE0_NV UNSIGNED_IDENTITY_NV RGB |
|
|
CI1 RGB B ZERO UNSIGNED_INVERT_NV RGB |
|
|
CI1 RGB C PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
|
|
CI1 RGB D ZERO UNSIGNED_INVERT_NV RGB |
|
|
CO1 RGB DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
CI1 ALPHA A SPARE0_NV UNSIGNED_IDENTITY_NV ALPHA |
|
|
CI1 ALPHA B ZERO UNSIGNED_INVERT_NV ALPHA |
|
|
CI1 ALPHA C PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV ALPHA |
|
|
CI1 ALPHA D ZERO UNSIGNED_INVERT_NV ALPHA |
|
|
CO1 ALPHA DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE |
|
|
# output rgba <- SPARE0 |
|
|
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 SPARE0_NV UNSIGNED_IDENTITY_NV ALPHA |
|
360 |
""") % texINTENSITY.getTexId() |
""") % texINTENSITY.getTexId() |
361 |
|
|
362 |
outerflags = (self.flags >> 4 & 1) * INSIDE |
outerflags = (self.flags >> 4 & 1) * INSIDE |
404 |
"0 0 0 1 0 0 0 0", c1, |
"0 0 0 1 0 0 0 0", c1, |
405 |
0, 0, |
0, 0, |
406 |
slice + Y_COLOR + (self.flags >> 4 & 1) * INSIDE, code + |
slice + Y_COLOR + (self.flags >> 4 & 1) * INSIDE, code + |
407 |
combinercode(""" |
parseCombiner(""" |
408 |
Enable REGISTER_COMBINERS_NV |
Enable REGISTER_COMBINERS_NV |
|
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1 |
|
409 |
|
|
410 |
CI0 ALPHA A TEXTURE0 UNSIGNED_IDENTITY_NV ALPHA |
SPARE0.alpha = TEX0.alpha + (2 * COL0.alpha - 1) |
411 |
CI0 ALPHA B ZERO UNSIGNED_INVERT_NV ALPHA |
color = COL0 |
412 |
CI0 ALPHA C PRIMARY_COLOR_NV EXPAND_NORMAL_NV ALPHA |
alpha = SPARE0.alpha |
|
CI0 ALPHA D ZERO UNSIGNED_INVERT_NV ALPHA |
|
|
CO0 ALPHA DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE |
|
|
# output rgba <- SPARE0 |
|
|
FCI A ZERO UNSIGNED_IDENTITY_NV RGB |
|
|
FCI B ZERO UNSIGNED_IDENTITY_NV RGB |
|
|
FCI C ZERO UNSIGNED_IDENTITY_NV RGB |
|
|
FCI D PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
|
|
FCI G SPARE0_NV UNSIGNED_IDENTITY_NV ALPHA |
|
413 |
|
|
414 |
BlendFunc SRC_ALPHA ONE_MINUS_SRC_ALPHA |
BlendFunc SRC_ALPHA ONE_MINUS_SRC_ALPHA |
415 |
Enable BLEND |
Enable BLEND |