• Content count

  • Joined

  • Last visited

Community Reputation

101 Neutral

About lanhaiou

  • Rank
  1. Hi, I am pretty new to OPENGL, and could any one help me ? thanks !! I have a texture which contains number of tiles (each tile is part of this texture). now I want to draw all the tiles in one draw call : glDrawElements(), (every tile's vertex coordination is different). something like: glVertexPointer(); //set the vertex array, glTexCoordPointer(); //set the coordinations of the tile in texture. glDrawElements(); do I have to call glTexCoordPointer() to set the coordinations for every tile ? that will be 3 times call of above code if I want to draw 3 tiles. is there any efficient way to handle that ? thank you very much !!
  2. Thank you very much ![img][/img] [quote name='samoth' timestamp='1332156865' post='4923258'] glBindTexture will likely cause a pipeline stall at the next draw call. Insofar, glBindTexture is not inefficient itself, but using it too often is. I say "likely" because it is possible that it does not cause a stall, depending on the hardware (but you have to assume the worst case, not the best case). On the other hand, glBegin/glEnd is not efficient for drawing thousands of tiles (i.e. single quads) either. What you want to do ideally is bind a texture once, bind a vertex buffer, and draw your 2000 quads with one call to [url=""]glDrawElements[/url]. Even using a plain old vertex array (i.e. not a buffer object) would be much preferrable, because it's much more efficient for the GL to upload that block of data. [/quote]
  3. Hello, I am trying to write a tile based 2D game using openGL, and I'm new to openGL.. I heard that glBindTexture() is not efficency and we'd better to bind texture only one time and drawing all the staff using this texture(this texture constains all the tiles we need). so I have 2 questions, could anybody help? thanks very much! 1\ Is this description above right ? 2\ Is the following Game logic the right way to rendering a game with good efficency? if not, could I have some indication? thanks? /* this render() is called every 30 millisecond to render the game. there may be about 2000 tiles need to be rendered one time. */ render() { glEnable2D; /*this texture contains all the tiles needed in the game*/ glBindTexture(GL_TEXTURE_2D, mTexture); glClear(); for(...)// the drawing loop to draw all the staff { /* draw the needed tiles from the same texture */ glBegin(); //drawing... glEnd(); } SwapBuffers(); glDisable2D; } Thanks!