now with sock’s tutorial on terrain blending techniques time has come for my first (and
futile) attempt to put hands on dotproduct2 terrain. i’ve seen some pics around here in
the the forums and some tutorials stated the same: triangle steepness should take
effect on texture blending. now with sock’s freshly released sample maps there was no
more hassle to pay attention to some shaders… i could experiment by moving things
around and then looking at what has changed. great thing indeed. dotproduct blending
works fine when using alpha brushes, but though all the reading i have come to the
assumption triangle steepness will “automagically” fade between primary and secondary
texture.
now the prob is: there is no fading without alpha brushes
and i simply won’t believe
the “first pass” generated by using the dotproduct2 system as sock is describing it in his
tutorial will turn out completely invisible. i used the textures and shaders he included with
his sample maps and it really makes no difference whether i apply the plain tga texture
or the corresponding shader… they’ll both look the same ingame (plain green grass)
q3map2 version should be fine, as the dotproduct blending works well when manually
applied via alpha brushes…
here’s a shot of how it looks in radiant:

hopefully not much to say about 
this is (nearly) the same perspective ingame:

you can see the plain tga texture and the shader look exactly the same, while the alpha
brush works as expected on the side of the shader. additionally i would have expected
some blending triggered by terrain steepness - but that’s missing.
this is sock’s shader that i expected to fade between primary and secondary tex according to terrain steepness:
textures/terrain_example/ter_mossmud
{
qer_editorimage textures/terrain_example/ter_mossmud.tga
q3map_nonplanar
q3map_shadeangle 120
q3map_tcGen ivector ( 256 0 0 ) ( 0 256 0 )
q3map_alphaMod dotproduct2 ( 0.0 0.0 0.75 )
{
map textures/terrain_example/ter_moss1.tga // Primary
rgbGen identity
}
{
map textures/terrain_example/ter_mud1.tga // Secondary
blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
alphaFunc GE128
rgbGen identity
alphaGen vertex
}
{
map $lightmap
blendFunc GL_DST_COLOR GL_ZERO
rgbGen identity
}
}
now i don’t think there’s anything wrong with the shader, but i might be wrong on my
understanding of what the dotproduct2 system really does (without the use of alpha
brushes)?









