Oh... wait... I wrote that at 2A.M. so wasn't thinking clearly. The Q3 mask takes all or nothing values rather than the full alpha values. That won't work in this case. I'm sorry for sending you on a goose chase.
The second method will certainly work. It's usually used on Q3Map2 blended terrain, but you can set up a similar shader and add alphaMod volume brushes on the top vertexes of the smoke trail and it will assign vertex alpha values to the brush. It'll also simplify things down to a single stage shader, so better for performance. It works by vertex alpha, so you'll need a couple more tessellation points halfway between the top and bottom of the smoke trail (see screenshot). Note that I'm using autosprite2 so the brush segments must be taller than they are wide.
[lvlshot]http://members.lycos.co.uk/quakeroats/q3wtemp/alphaMod_smoke.jpg[/lvlshot]
The only thing absolutely required is alphaGen vertex. This tells Q3Map2 that this surface will be assigned vertex alpha values.
Code: Select all
textures/test/smoke
{
cull none
deformVertexes autosprite2
surfaceparm nodlight
surfaceparm nonsolid
surfaceparm trans
qer_alphaFunc gequal 0.5
{
map textures/test/smoke.tga
tcMod scroll 0 0.25
blendFunc blend
alphaGen vertex
}
}
Note the use of common/alpha_0 at the top and bottom of the smoke. It must overlap the vertex points. It's a shader found in the extras for Q3Map2, add this to your common.shader if you don't have it already.
Code: Select all
textures/common/alpha_0
{
qer_trans 0.5
q3map_alphaMod volume
q3map_alphaMod scale 0
surfaceparm nodraw
surfaceparm nonsolid
surfaceparm trans
}
BTW, you have a lot of whitespace on that texture. Any reason why you're not reducing it down to something like 64x256?
That map looks awesome. You're making some good progress on this thing.