1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| void drawGrass()
{
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
glEnable(GL_ALPHA_TEST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) ;
//glAlphaFunc(GL_EQUAL, 1);
//glDepthFunc(GL_LESS);
if(programobject!=0){
glUseProgramObjectARB(programobject);
}
glActiveTexture(GL_TEXTURE0);
TextureManager::Inst()->BindTexture(grassTex1);
glActiveTexture(GL_TEXTURE1);
TextureManager::Inst()->BindTexture(grassTex1_alpha);
glUniform1i(glGetUniformLocationARB(programobject, "grass"), 0);
glUniform1i(glGetUniformLocationARB(programobject, "grass_alpha"), 1);
float w=4.f;
float h=2.f;
glPushMatrix();
for(int i=0; i<3; ++i)
{
glRotatef(360./3., 0., 1., 0.);
glTranslatef(0., 0., w/3.);
drawGrassBillboard(w,h);
}
glPopMatrix();
glUseProgramObjectARB(0);
} |
Partager