Jump to content

  • Log In with Google      Sign In   
  • Create Account


Get texture coordinates from VBO


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 Vorel512   Members   -  Reputation: 130

Like
0Likes
Like

Posted 10 April 2012 - 02:51 AM

Hi experts!

I would like to know how can I extract texture coordinates from VBO.
I know that I can rewrite using setbuffersubdata, but I do not know how to get the existing values from the VBO.

Any help appreciated!!!

Sponsor:

#2 JoJoSim1   Members   -  Reputation: 173

Like
0Likes
Like

Posted 12 April 2012 - 03:47 AM

Hi

maybe there is a way to get VBOs content but thats not the way you should do it. For example the iPhone buffers opengl es commands und renders later. If you call get commands rendering must be forced. This means a performance drop.
For dynamic data i leave a copy in main memory.

#3 Vorel512   Members   -  Reputation: 130

Like
0Likes
Like

Posted 12 April 2012 - 04:04 AM

I do the same, but if there is a way to hold only one "copy" of the objects, I would like to know.
BTW, thanx for the reply!

#4 DemonRad   Members   -  Reputation: 290

Like
0Likes
Like

Posted 03 May 2012 - 11:58 PM

If you stream your VBO i think it is held only in main memory (don't think OpenGL spec say that, so probably it is to drivers implementors). For devices wich have only 1 memory that should not be a problem causing heavy performance drop. anyway 2 copies are very usefull if you want to change data in the second copy with a thread, while with only 1 that's not possible. You can still hold 2 copies and stream a different copy every frame (depending on your needs)

Edited by DemonRad, 04 May 2012 - 12:08 AM.

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!


#5 JoJoSim1   Members   -  Reputation: 173

Like
0Likes
Like

Posted 04 May 2012 - 03:05 AM

I don't know how Android handles it but on iOS openGLES runs in second thread! As DemonRad said this is the problem. iOS gathers opengl commands and renders if the commandbuffer is full or if flush is called. For best performance you keep the rendering decisions up to the openGLES thread and never call flush. But there are several other commands like get... that internally need to flush. Also streaming which actually uses one "memory" needs to flush. And this leads to not optimal rendering in the openGLES thread thus to a performance drop.
To understand that better google tile based deferred rendering (TBDR)
http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESPlatforms/OpenGLESPlatforms.html
Does anyone how Android is doing that ?




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS