1 |
from gfx.libutil import effects, nvcode |
from gfx.libutil import effects, nvcode |
2 |
|
|
3 |
|
w.setLocation(0,0,1024,1024) |
4 |
|
|
5 |
c = java.util.Random() |
c = java.util.Random() |
6 |
|
|
7 |
ts = 512 |
ts = 1024 |
8 |
|
|
9 |
class BlurScene: |
class BlurScene: |
10 |
def __init__(self): |
def __init__(self): |
11 |
self.bv = GL.createByteVector(1024 * 768 * 4) |
self.bv = GL.createByteVector(1024 * 768 * 4) |
12 |
self.f = effects.IrreguFrame(0, 0, 1000, 1000, 20, 200) |
self.f = effects.IrreguFrame(0, 0, 1000, 1000, 20, 200) |
13 |
self.tex = GL.createTexture() |
self.tex = GL.createTexture() |
14 |
self.tex.loadNull2D(0, "RGBA", ts, ts, 0, "RGBA", "UNSIGNED_BYTE") |
self.tex.loadNull2D(0, "DEPTH_COMPONENT24_SGIX", ts, ts, 0, "DEPTH_COMPONENT", "UNSIGNED_SHORT") |
15 |
|
# self.tex.loadNull2D(0, "RGBA", ts, ts, 0, "RGBA", "UNSIGNED_BYTE") |
16 |
def key(self, key): |
def key(self, key): |
17 |
pass |
pass |
18 |
def scene(self, vs): |
def scene(self, vs): |
19 |
vs.map.put(background((0, .1, 0))) |
vs.map.put(background((.2, .4, .2))) |
20 |
|
|
21 |
sx = ts |
sx = ts |
22 |
sy = ts |
sy = ts |
23 |
|
|
24 |
|
|
25 |
f1cs = vs.orthoCS(0, "X", 50, 100*c.nextDouble(), 100*c.nextDouble(), 200, 100) |
for i in range(0,10): |
26 |
vs.map.put(self.f.getContent(), 0, f1cs) |
f1cs = vs.orthoCS(0, str(i), 100*i, 300*c.nextDouble(), 300*c.nextDouble(), 200, 100) |
27 |
|
vs.map.put(self.f.getContent(), 0, f1cs) |
28 |
|
|
|
f1cs = vs.orthoCS(0, "Y", 70, 100*c.nextDouble(), 100*c.nextDouble(), 200, 100) |
|
|
vs.map.put(self.f.getContent(), 0, f1cs) |
|
29 |
|
|
30 |
# vs.put(coloredQuad((1,1,1)), "A", 10, 100*c.nextDouble(), 100*c.nextDouble(), 200, 100) |
# vs.put(coloredQuad((1,1,1)), "A", 10, 100*c.nextDouble(), 100*c.nextDouble(), 200, 100) |
31 |
# vs.put(coloredQuad((1,1,1)), "B", 100, 150*c.nextDouble(), 150*c.nextDouble(), 200, 100) |
# vs.put(coloredQuad((1,1,1)), "B", 100, 150*c.nextDouble(), 150*c.nextDouble(), 200, 100) |
71 |
"tex": self.tex.getTexId(), |
"tex": self.tex.getTexId(), |
72 |
})) |
})) |
73 |
|
|
74 |
cs = vs.orthoCS(0, "dp", 0, 20, sy+10, 1, 1) |
cs = vs.orthoCS(0, "dp", 0, 0, sy, 1, 1) |
75 |
cs2 = vs.orthoCS(0, "dp2", 300, 300, sy+10, sx, sy) |
# cs2 = vs.orthoCS(0, "dp2", 300, 300, sy+10, sx, sy) |
76 |
|
cs2 = vs.orthoCS(0, "dp2", 0, 0, 0, sx, sy) |
77 |
if 1: |
if 1: |
78 |
getp = GLRen.createReadPixels(sx, sy, |
if 1: |
79 |
"DEPTH_COMPONENT", "UNSIGNED_SHORT", self.bv) |
texim = GLRen.createCopyTexSubImage2D( |
80 |
texim = GLRen.createTexSubImage2D("TEXTURE_2D", 0, 0, 0, ts, ts, |
"TEXTURE_2D", 0, 0, 0, ts, ts) |
81 |
"RGBA", "UNSIGNED_SHORT_4_4_4_4", self.bv) |
elif 1: |
82 |
|
if 1: |
83 |
vs.map.put(getp, cs) |
getp = GLRen.createReadPixels(sx, sy, |
84 |
vs.map.put(texim) |
"DEPTH_COMPONENT", "UNSIGNED_SHORT", self.bv) |
85 |
|
texim = GLRen.createTexSubImage2D("TEXTURE_2D", 0, 0, 0, ts, ts, |
86 |
|
"RGBA", "UNSIGNED_SHORT_4_4_4_4", self.bv) |
87 |
|
else: |
88 |
|
getp = GLRen.createReadPixels(sx, sy, |
89 |
|
"DEPTH_COMPONENT", "UNSIGNED_BYTE", self.bv) |
90 |
|
texim = GLRen.createTexSubImage2D("TEXTURE_2D", 0, 0, 0, ts, ts, |
91 |
|
"LUMINANCE", "UNSIGNED_BYTE", self.bv) |
92 |
|
vs.map.put(getp, cs) |
93 |
|
|
94 |
|
vs.map.put(texim, cs) |
95 |
|
|
96 |
# vs.map.put(coloredQuad((1,0,0)), cs2) |
# vs.map.put(coloredQuad((1,0,0)), cs2) |
97 |
|
|
99 |
BindTexture TEXTURE_2D %(tex)s |
BindTexture TEXTURE_2D %(tex)s |
100 |
PushAttrib TEXTURE_BIT |
PushAttrib TEXTURE_BIT |
101 |
TexGen S TEXTURE_GEN_MODE OBJECT_LINEAR |
TexGen S TEXTURE_GEN_MODE OBJECT_LINEAR |
102 |
TexGen S OBJECT_PLANE 1 0 0 -300 |
TexGen S OBJECT_PLANE 1 0 0 -0 |
103 |
TexGen T TEXTURE_GEN_MODE OBJECT_LINEAR |
TexGen T TEXTURE_GEN_MODE OBJECT_LINEAR |
104 |
TexGen T OBJECT_PLANE 0 1 0 -300 |
TexGen T OBJECT_PLANE 0 -1 0 -0 |
105 |
Enable TEXTURE_GEN_S |
Enable TEXTURE_GEN_S |
106 |
Enable TEXTURE_GEN_T |
Enable TEXTURE_GEN_T |
107 |
|
|
109 |
BindTexture TEXTURE_2D %(tex)s |
BindTexture TEXTURE_2D %(tex)s |
110 |
Enable TEXTURE_2D |
Enable TEXTURE_2D |
111 |
TexGen S TEXTURE_GEN_MODE OBJECT_LINEAR |
TexGen S TEXTURE_GEN_MODE OBJECT_LINEAR |
112 |
TexGen S OBJECT_PLANE 1 0 0 -300.005 |
TexGen S OBJECT_PLANE 1 0 0 -0.005 |
113 |
TexGen T TEXTURE_GEN_MODE OBJECT_LINEAR |
TexGen T TEXTURE_GEN_MODE OBJECT_LINEAR |
114 |
TexGen T OBJECT_PLANE 0 1 0 -300.005 |
TexGen T OBJECT_PLANE 0 -1 0 -0.005 |
115 |
Enable TEXTURE_GEN_S |
Enable TEXTURE_GEN_S |
116 |
Enable TEXTURE_GEN_T |
Enable TEXTURE_GEN_T |
117 |
|
|
118 |
TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE |
TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE |
119 |
|
|
120 |
|
Enable ALPHA_TEST |
121 |
|
Disable BLEND |
122 |
|
Disable DEPTH_TEST |
123 |
|
AlphaFunc GREATER 0 |
124 |
|
|
125 |
ActiveTexture TEXTURE0 |
ActiveTexture TEXTURE0 |
126 |
|
|
128 |
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2 |
CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2 |
129 |
|
|
130 |
# Calculate Tex0 - Tex1 |
# Calculate Tex0 - Tex1 |
131 |
CI0 RGB A TEXTURE0 UNSIGNED_IDENTITY_NV RGB |
CI0 RGB A TEXTURE0 UNSIGNED_IDENTITY_NV ALPHA |
132 |
CI0 RGB B ZERO UNSIGNED_INVERT_NV RGB |
CI0 RGB B ZERO UNSIGNED_INVERT_NV RGB |
133 |
CI0 RGB C TEXTURE1 UNSIGNED_IDENTITY_NV RGB |
CI0 RGB C TEXTURE1 UNSIGNED_IDENTITY_NV ALPHA |
134 |
CI0 RGB D ZERO EXPAND_NORMAL_NV RGB |
CI0 RGB D ZERO EXPAND_NORMAL_NV RGB |
135 |
CO0 RGB DISCARD_NV DISCARD_NV SPARE0_NV SCALE_BY_FOUR_NV NONE FALSE FALSE FALSE |
CO0 RGB DISCARD_NV DISCARD_NV SPARE0_NV SCALE_BY_FOUR_NV NONE FALSE FALSE FALSE |
136 |
|
|
138 |
CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB |
CI1 RGB B SPARE0_NV SIGNED_IDENTITY_NV RGB |
139 |
CO1 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE TRUE FALSE FALSE |
CO1 RGB SPARE0_NV DISCARD_NV DISCARD_NV SCALE_BY_FOUR_NV NONE TRUE FALSE FALSE |
140 |
|
|
141 |
FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB |
# FCI A SPARE0_NV UNSIGNED_IDENTITY_NV RGB |
142 |
|
FCI A ZERO UNSIGNED_IDENTITY_NV RGB |
143 |
FCI B ZERO UNSIGNED_INVERT_NV RGB |
FCI B ZERO UNSIGNED_INVERT_NV RGB |
144 |
FCI C ZERO UNSIGNED_IDENTITY_NV RGB |
FCI C ZERO UNSIGNED_IDENTITY_NV RGB |
145 |
FCI D ZERO UNSIGNED_IDENTITY_NV RGB |
FCI D ZERO UNSIGNED_IDENTITY_NV RGB |
146 |
|
|
147 |
|
FCI G SPARE0_NV UNSIGNED_IDENTITY_NV BLUE |
148 |
|
|
149 |
""" % { |
""" % { |
150 |
"tex" : self.tex.getTexId() |
"tex" : self.tex.getTexId() |
151 |
}))) |
}))) |