Sign in to follow this  
Dannyli

something about the Billboards

Recommended Posts

I am a novice in the tree design. I have a question about the code :

void baiscobj::ShowTree(float x,float z,float h,float s,int cactus)
{ glEnable(GL_BLEND);
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  glEnable(GL_ALPHA_TEST);
  glAlphaFunc(GL_GREATER, 0);
  float mat[16];
  glGetFloatv(GL_MODELVIEW_MATRIX, mat);
  vector3_t X(mat[0], mat[4], mat[8]);
  vector3_t Z(mat[1], mat[5], mat[9]); 
  glBindTexture(GL_TEXTURE_2D, g_cactus[cactus]);
  vector3_t pos(x,0.0,-z);
  pos.y = GetHeight(x, -z) + h + s;
  glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0);glVertex3fv((pos+(X+Z)*-h).v);//left down
glTexCoord2f(1.0,0.0);glVertex3fv((pos+(X-Z)* h).v);//up down
glTexCoord2f(1.0,1.0);glVertex3fv((pos+(X+Z)* h).v);//up right
glTexCoord2f(0.0,1.0);glVertex3fv((pos+(Z-X)* h).v);//left up
  glEnd();
  glDisable(GL_ALPHA);
  glDisable(GL_BLEND);
}

why the line glVertex3fv((pos+(X+Z)*-h).v); can rotate the point? pos+(X+Z)*-h is a translation , isn't it?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this