22 |
|
|
23 |
if (GL.hasExtension("GL_NV_register_combiners") and |
if (GL.hasExtension("GL_NV_register_combiners") and |
24 |
GL.hasExtension("GL_EXT_secondary_color")): |
GL.hasExtension("GL_EXT_secondary_color")): |
25 |
if (GL.getGLFloat("MAX_GENERAL_COMBINERS_NV") >= 4 and |
if (GL.getGLFloat("MAX_GENERAL_COMBINERS_NV")[0] >= 4 and |
26 |
GL.getGLFloat("MAX_TEXTURE_UNITS") >= 3): |
GL.getGLFloat("MAX_TEXTURE_UNITS")[0] >= 3): |
27 |
profiles.append("NV_COMB_MULTITEX") |
profiles.append("NV_COMB_MULTITEX") |
28 |
|
|
29 |
profiles.append("NV_COMB_DOT3") |
profiles.append("NV_COMB_DOT3") |
114 |
tex = ( getIrreguTex(2, "HILO_NV", "HILO_NV"), |
tex = ( getIrreguTex(2, "HILO_NV", "HILO_NV"), |
115 |
) |
) |
116 |
|
|
|
elif profile == "NV_COMB_MULTITEX": |
|
|
|
|
|
alphalevel = 1 |
|
|
w0,w1 = 1,1 |
|
|
def colmap0(dotvec): return (1,1,1) |
|
|
def colmap1(dotvec): return (1,1,1) |
|
|
|
|
|
tex = ( getIrreguTex(1, "INTENSITY", "LUMINANCE"), |
|
|
) |
|
|
|
|
117 |
elif profile == "NV_COMB_DOT3" or profile == "NV_COMB_DOT4" or profile == "NV_COMB_MULTITEX": |
elif profile == "NV_COMB_DOT3" or profile == "NV_COMB_DOT4" or profile == "NV_COMB_MULTITEX": |
118 |
print "Using full displacement resolution textures with GL_NV_register_combiners" |
print "Using full displacement resolution textures with GL_NV_register_combiners" |
119 |
|
|
174 |
using_multitex = 1 |
using_multitex = 1 |
175 |
texenv_inner = texenv % "0 0 0 1" |
texenv_inner = texenv % "0 0 0 1" |
176 |
texenv_outer = combinercode(""" |
texenv_outer = combinercode(""" |
177 |
# compute alpha = max( SEC_COL.b + TEX0 + COL.alpha + COL.b, |
Color 0 0 0 0 |
|
# SEC_COL.b + TEX1 + COL.alpha, |
|
|
# SEC_COL.b + TEX2 + COL.alpha ) |
|
178 |
|
|
179 |
Enable REGISTER_COMBINERS_NV |
# compute alpha = max( SEC_COL.b + TEX0 + COL.alpha + COL.b, |
180 |
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 4 |
# SEC_COL.b + TEX1 + COL.alpha, |
181 |
|
# SEC_COL.b + TEX2 + COL.alpha ) |
182 |
|
|
183 |
|
Enable REGISTER_COMBINERS_NV |
184 |
|
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 4 |
185 |
|
|
186 |
# TEX2 -= TEX1 |
# TEX2 -= TEX1 |
187 |
CI0 RGB A TEXTURE2 UNSIGNED_IDENTIY_NV RGB |
CI0 RGB A TEXTURE2 UNSIGNED_IDENTITY_NV RGB |
188 |
CI0 RGB B ZERO_NV UNSIGNED_INVERT_NV RGB |
CI0 RGB B ZERO UNSIGNED_INVERT_NV RGB |
189 |
CI0 RGB C TEXTURE1 SIGNED_NEGATE_NV RGB |
CI0 RGB C TEXTURE1 SIGNED_NEGATE_NV RGB |
190 |
CI0 RGB D ZERO_NV UNSIGNED_INVERT_NV RGB |
CI0 RGB D ZERO UNSIGNED_INVERT_NV RGB |
191 |
CO0 RGB DISCARD_NV DISCARD_NV TEXTURE2_NV NONE NONE FALSE FALSE FALSE |
CO0 RGB DISCARD_NV DISCARD_NV TEXTURE2 NONE NONE FALSE FALSE FALSE |
192 |
|
|
193 |
# TEX0 += COL.b |
# TEX0 += COL.b |
194 |
CI0 ALPHA A TEXTURE0 UNSIGNED_IDENTIY_NV ALPHA |
CI0 ALPHA A TEXTURE0 UNSIGNED_IDENTITY_NV ALPHA |
195 |
CI0 ALPHA B ZERO_NV UNSIGNED_INVERT_NV ALPHA |
CI0 ALPHA B ZERO UNSIGNED_INVERT_NV ALPHA |
196 |
CI0 ALPHA C PRIMARY_COLOR_NV UNSIGEND_IDENTITY_NV BLUE |
CI0 ALPHA C PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV BLUE |
197 |
CI0 ALPHA D ZERO_NV UNSIGNED_INVERT_NV ALPHA |
CI0 ALPHA D ZERO UNSIGNED_INVERT_NV ALPHA |
198 |
CO0 ALPHA DISCARD_NV DISCARD_NV TEXTURE0_NV NONE NONE FALSE FALSE FALSE |
CO0 ALPHA DISCARD_NV DISCARD_NV TEXTURE0 NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
|
|
# TEX1 -= TEX0 |
|
|
CI1 RGB A TEXTURE1 UNSIGNED_IDENTIY_NV RGB |
|
|
CI1 RGB B ZERO_NV UNSIGNED_INVERT_NV RGB |
|
|
CI1 RGB C TEXTURE0 SIGNED_NEGATE_NV ALPHA |
|
|
CI1 RGB D ZERO_NV UNSIGNED_INVERT_NV RGB |
|
|
CO1 RGB DISCARD_NV DISCARD_NV TEXTURE1_NV NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
# TEX0 += COL.alpha |
|
|
CI1 ALPHA A TEXTURE0 UNSIGNED_IDENTIY_NV ALPHA |
|
|
CI1 ALPHA B ZERO_NV UNSIGNED_INVERT_NV ALPHA |
|
|
CI1 ALPHA C PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV ALPHA |
|
|
CI1 ALPHA D ZERO_NV UNSIGNED_INVERT_NV ALPHA |
|
|
CO1 ALPHA DISCARD_NV DISCARD_NV TEXTURE0_NV NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
|
|
|
# TEX1 += unsigned(TEX2) |
|
|
CI2 RGB A TEXTURE1 SIGNED_IDENTIY_NV RGB |
|
|
CI2 RGB B ZERO_NV UNSIGNED_INVERT_NV RGB |
|
|
CI2 RGB C TEXTURE2 UNSIGNED_IDENTITY_NV RGB |
|
|
CI2 RGB D ZERO_NV UNSIGNED_INVERT_NV RGB |
|
|
CO2 RGB DISCARD_NV DISCARD_NV TEXTURE1_NV NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
# TEX0 += SEC_COL.b |
|
|
CI2 ALPHA A TEXTURE0 UNSIGNED_IDENTIY_NV ALPHA |
|
|
CI2 ALPHA B ZERO_NV UNSIGNED_INVERT_NV ALPHA |
|
|
CI2 ALPHA C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV BLUE |
|
|
CI2 ALPHA D ZERO_NV UNSIGNED_INVERT_NV ALPHA |
|
|
CO2 ALPHA DISCARD_NV DISCARD_NV TEXTURE0_NV NONE NONE FALSE FALSE FALSE |
|
|
|
|
|
|
|
|
# TEX0 += unsigned(TEX1) |
|
|
CI3 RGB A TEXTURE0 SIGNED_IDENTIY_NV ALPHA |
|
|
CI3 RGB B ZERO_NV UNSIGNED_INVERT_NV RGB |
|
|
CI3 RGB C TEXTURE1 UNSIGNED_IDENTITY_NV RGB |
|
|
CI3 RGB D ZERO_NV UNSIGNED_INVERT_NV RGB |
|
|
CO3 RGB DISCARD_NV DISCARD_NV TEXTURE0_NV NONE NONE FALSE FALSE FALSE |
|
199 |
|
|
200 |
|
|
201 |
# alpha <- TEXTURE0 |
# TEX1 -= TEX0 |
202 |
FCI G TEXTURE0_NV UNSIGNED_IDENTITY_NV BLUE |
CI1 RGB A TEXTURE1 UNSIGNED_IDENTITY_NV RGB |
203 |
""") |
CI1 RGB B ZERO UNSIGNED_INVERT_NV RGB |
204 |
|
CI1 RGB C TEXTURE0 SIGNED_NEGATE_NV ALPHA |
205 |
|
CI1 RGB D ZERO UNSIGNED_INVERT_NV RGB |
206 |
|
CO1 RGB DISCARD_NV DISCARD_NV TEXTURE1 NONE NONE FALSE FALSE FALSE |
207 |
|
|
208 |
|
# TEX0 += COL.alpha |
209 |
|
CI1 ALPHA A TEXTURE0 UNSIGNED_IDENTITY_NV ALPHA |
210 |
|
CI1 ALPHA B ZERO UNSIGNED_INVERT_NV ALPHA |
211 |
|
CI1 ALPHA C PRIMARY_COLOR_NV UNSIGNED_IDENTITY_NV ALPHA |
212 |
|
CI1 ALPHA D ZERO UNSIGNED_INVERT_NV ALPHA |
213 |
|
CO1 ALPHA DISCARD_NV DISCARD_NV TEXTURE0 NONE NONE FALSE FALSE FALSE |
214 |
|
|
215 |
|
|
216 |
|
# TEX1 += unsigned(TEX2) |
217 |
|
CI2 RGB A TEXTURE1 SIGNED_IDENTITY_NV RGB |
218 |
|
CI2 RGB B ZERO UNSIGNED_INVERT_NV RGB |
219 |
|
CI2 RGB C TEXTURE2 UNSIGNED_IDENTITY_NV RGB |
220 |
|
CI2 RGB D ZERO UNSIGNED_INVERT_NV RGB |
221 |
|
CO2 RGB DISCARD_NV DISCARD_NV TEXTURE1 NONE NONE FALSE FALSE FALSE |
222 |
|
|
223 |
|
# TEX0 += SEC_COL.b |
224 |
|
CI2 ALPHA A TEXTURE0 UNSIGNED_IDENTITY_NV ALPHA |
225 |
|
CI2 ALPHA B ZERO UNSIGNED_INVERT_NV ALPHA |
226 |
|
CI2 ALPHA C SECONDARY_COLOR_NV UNSIGNED_IDENTITY_NV BLUE |
227 |
|
CI2 ALPHA D ZERO UNSIGNED_INVERT_NV ALPHA |
228 |
|
CO2 ALPHA DISCARD_NV DISCARD_NV TEXTURE0 NONE NONE FALSE FALSE FALSE |
229 |
|
|
230 |
|
|
231 |
|
# TEX0 += unsigned(TEX1) |
232 |
|
CI3 RGB A TEXTURE0 SIGNED_IDENTITY_NV ALPHA |
233 |
|
CI3 RGB B ZERO UNSIGNED_INVERT_NV RGB |
234 |
|
CI3 RGB C TEXTURE1 UNSIGNED_IDENTITY_NV RGB |
235 |
|
CI3 RGB D ZERO UNSIGNED_INVERT_NV RGB |
236 |
|
CO3 RGB DISCARD_NV DISCARD_NV TEXTURE0 NONE NONE FALSE FALSE FALSE |
237 |
|
|
238 |
|
|
239 |
|
# alpha <- TEXTURE0 |
240 |
|
FCI G TEXTURE0 UNSIGNED_IDENTITY_NV BLUE |
241 |
|
""") |
242 |
angles = 0 |
angles = 0 |
243 |
tex = ( getIrreguTex(1, "INTENSITY", "LUMINANCE"), |
tex = ( getIrreguTex(1, "INTENSITY", "LUMINANCE"), |
244 |
getIrreguTex(1, "INTENSITY", "LUMINANCE", invert = 1), |
getIrreguTex(1, "INTENSITY", "LUMINANCE", invert = 1), |
245 |
) |
) |
|
|
|
|
|
|
246 |
|
|
247 |
|
|
248 |
|
|
456 |
Enable TEXTURE_2D |
Enable TEXTURE_2D |
457 |
""" % locals() |
""" % locals() |
458 |
|
|
459 |
if using_multitex: |
if using_multitex and outer: |
460 |
code += """ |
code += """ |
461 |
ActiveTexture TEXTURE1 |
ActiveTexture TEXTURE1 |
462 |
BindTexture TEXTURE_2D %(texid)s |
BindTexture TEXTURE_2D %(texid)s |
469 |
TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR |
TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR |
470 |
Enable TEXTURE_2D |
Enable TEXTURE_2D |
471 |
ActiveTexture TEXTURE0 |
ActiveTexture TEXTURE0 |
472 |
""" |
""" % locals() |
473 |
|
|
474 |
if GL.hasExtension("GL_EXT_texture_lod_bias"): |
if GL.hasExtension("GL_EXT_texture_lod_bias"): |
475 |
code += """ |
code += """ |