96 |
else: |
else: |
97 |
finalG = "ZERO" |
finalG = "ZERO" |
98 |
|
|
|
# Stage 0: multiply the two textures |
|
99 |
c = (""" |
c = (""" |
100 |
|
# Band-like texture |
101 |
|
|
102 |
|
# SPARE0 <- (TEX0 . TEX1) |
103 |
CI0 RGB A TEXTURE%(t0)s EXPAND_NORMAL_NV RGB |
CI0 RGB A TEXTURE%(t0)s EXPAND_NORMAL_NV RGB |
104 |
CI0 RGB B TEXTURE%(t1)s EXPAND_NORMAL_NV RGB |
CI0 RGB B TEXTURE%(t1)s EXPAND_NORMAL_NV RGB |
105 |
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 |
106 |
|
|
107 |
|
# SPARE1 <- SPARE0 * SPARE0 * 2 |
108 |
|
# SPARE0 <- (TEX0 . CONST0) * 2 |
109 |
CI1 RGB A SPARE0_NV SIGNED_IDENTITY_NV RGB |
CI1 RGB A SPARE0_NV SIGNED_IDENTITY_NV RGB |
110 |
CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB |
CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB |
111 |
CI1 RGB C TEXTURE%(t0)s EXPAND_NORMAL_NV RGB |
CI1 RGB C TEXTURE%(t0)s EXPAND_NORMAL_NV RGB |
112 |
CI1 RGB D CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB |
CI1 RGB D CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB |
113 |
CO1 RGB SPARE1_NV SPARE0_NV DISCARD_NV SCALE_BY_TWO_NV NONE FALSE TRUE FALSE |
CO1 RGB SPARE1_NV SPARE0_NV DISCARD_NV SCALE_BY_TWO_NV NONE FALSE TRUE FALSE |
114 |
|
|
115 |
|
# EF <- SPARE0 * SPARE1 |
116 |
FCI E SPARE1_NV UNSIGNED_INVERT_NV RGB |
FCI E SPARE1_NV UNSIGNED_INVERT_NV RGB |
117 |
FCI F SPARE0_NV UNSIGNED_IDENTITY_NV RGB |
FCI F SPARE0_NV UNSIGNED_IDENTITY_NV RGB |
118 |
|
|
119 |
|
# lerp(EF, PRI_COL, SEC_COL) |
120 |
FCI A E_TIMES_F_NV UNSIGNED_IDENTITY_NV RGB |
FCI A E_TIMES_F_NV UNSIGNED_IDENTITY_NV RGB |
121 |
FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
122 |
FCI C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
FCI C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
137 |
finalG = "ZERO UNSIGNED_INVERT_NV" |
finalG = "ZERO UNSIGNED_INVERT_NV" |
138 |
|
|
139 |
c = (""" |
c = (""" |
140 |
|
# Interpolate between three colors using two dot products |
141 |
|
|
142 |
|
# SPARE0 <- (TEX0 . CONST0) |
143 |
|
# SPARE1 <- (TEX1 . CONST1) |
144 |
CI0 RGB A TEXTURE%(t0)s EXPAND_NORMAL_NV RGB |
CI0 RGB A TEXTURE%(t0)s EXPAND_NORMAL_NV RGB |
145 |
CI0 RGB B CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB |
CI0 RGB B CONSTANT_COLOR0_NV EXPAND_NORMAL_NV RGB |
146 |
CI0 RGB C TEXTURE%(t1)s EXPAND_NORMAL_NV RGB |
CI0 RGB C TEXTURE%(t1)s EXPAND_NORMAL_NV RGB |
147 |
CI0 RGB D CONSTANT_COLOR1_NV EXPAND_NORMAL_NV RGB |
CI0 RGB D CONSTANT_COLOR1_NV EXPAND_NORMAL_NV RGB |
148 |
CO0 RGB SPARE0_NV SPARE1_NV DISCARD_NV NONE NONE TRUE TRUE FALSE |
CO0 RGB SPARE0_NV SPARE1_NV DISCARD_NV NONE NONE TRUE TRUE FALSE |
149 |
|
|
150 |
|
# PRI_COL <- lerp(SPARE0, PRI_COL, SEC_COL) |
151 |
CI1 RGB A PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
CI1 RGB A PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
152 |
CI1 RGB B SPARE0_NV UNSIGNED_IDENTITY_NV RGB |
CI1 RGB B SPARE0_NV UNSIGNED_IDENTITY_NV RGB |
153 |
CI1 RGB C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
CI1 RGB C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
154 |
CI1 RGB D SPARE0_NV UNSIGNED_INVERT_NV RGB |
CI1 RGB D SPARE0_NV UNSIGNED_INVERT_NV RGB |
155 |
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 |
156 |
|
|
157 |
|
# SPARE1.alpha <- SPARE0^2 - SPARE1^2 |
158 |
CI1 ALPHA A SPARE0_NV SIGNED_IDENTITY_NV BLUE |
CI1 ALPHA A SPARE0_NV SIGNED_IDENTITY_NV BLUE |
159 |
CI1 ALPHA B SPARE0_NV SIGNED_IDENTITY_NV BLUE |
CI1 ALPHA B SPARE0_NV SIGNED_IDENTITY_NV BLUE |
160 |
CI1 ALPHA C SPARE1_NV SIGNED_NEGATE_NV BLUE |
CI1 ALPHA C SPARE1_NV SIGNED_NEGATE_NV BLUE |
161 |
CI1 ALPHA D SPARE1_NV SIGNED_IDENTITY_NV BLUE |
CI1 ALPHA D SPARE1_NV SIGNED_IDENTITY_NV BLUE |
162 |
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 |
163 |
|
|
164 |
|
# lerp(SPARE1, PRI_COL, FOG) |
165 |
FCI A SPARE1_NV UNSIGNED_IDENTITY_NV RGB |
FCI A SPARE1_NV UNSIGNED_IDENTITY_NV RGB |
166 |
FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
FCI B PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV RGB |
167 |
FCI C FOG UNSIGNED_IDENTITY_NV RGB |
FCI C FOG UNSIGNED_IDENTITY_NV RGB |