Texture Splatting
BlitzMax Forums/OpenGL Module/Texture Splatting
| ||
I am attempting to switch from using vertex alpha to texture splatting, to draw my terrain layers. The base layer is just a solid pass, using modulate texture blending, with a 2x scale: glTexEnvi GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_COMBINE glTexEnvi GL_TEXTURE_ENV,GL_COMBINE_RGB,GL_MODULATE glTexEnvf GL_TEXTURE_ENV,GL_RGB_SCALE,2.0 Layers on top of the base layer are rendered with blend enabled: glEnable GL_BLEND glBlendFunc GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA glDepthMask GL_FALSE Texture unit 0 is the alpha mask texture: glActiveTextureARB GL_TEXTURE0 glEnable GL_TEXTURE_2D glBindTexture GL_TEXTURE_2D,alphatexture glTexEnvf GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE glTexEnvi GL_TEXTURE_ENV,GL_SOURCE0_ALPHA,GL_TEXTURE0 glTexEnvi GL_TEXTURE_ENV,GL_OPERAND0_ALPHA,GL_SRC_ALPHA Texture unit 1 is the texture I want drawn: glActiveTextureARB GL_TEXTURE1 glEnable GL_TEXTURE_2D glBindTexture GL_TEXTURE_2D,texture glTexEnvi GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_COMBINE glTexEnvi GL_TEXTURE_ENV,GL_COMBINE_RGB,GL_MODULATE glTexEnvf GL_TEXTURE_ENV,GL_RGB_SCALE,2.0 glTexEnvf GL_TEXTURE_ENV,GL_SOURCE0_RGB,GL_PRIMARY_COLOR glTexEnvf GL_TEXTURE_ENV,GL_OPERAND0_RGB,GL_SRC_COLOR glTexEnvf GL_TEXTURE_ENV,GL_SOURCE1_RGB,GL_TEXTURE1 glTexEnvf GL_TEXTURE_ENV,GL_OPERAND1_RGB,GL_SRC_COLOR glTexEnvi GL_TEXTURE_ENV,GL_SOURCE0_ALPHA,GL_TEXTURE0 glTexEnvi GL_TEXTURE_ENV,GL_OPERAND0_ALPHA,GL_SRC_ALPHA glTexEnvi GL_TEXTURE_ENV,GL_SOURCE1_ALPHA,GL_TEXTURE0 glTexEnvi GL_TEXTURE_ENV,GL_OPERAND1_ALPHA,GL_SRC_ALPHA However, when I try this, the top-most terrain layer is drawn solid, regardless of the alpha mask texture. Are my texture blend modes correct? Oh, and I make my mask texture like this: glTexImage2D GL_TEXTURE_2D,0,GL_ALPHA,resolution,resolution,0,GL_ALPHA,GL_UNSIGNED_BYTE,alphamap |
| ||
Nevermind, I was doing something dumb. |