Skip to main content
gamedev.net
🔒 Locked

vbos performance issues.

Started by mdog1234 Feb 3, 2004 at 8:09 AM 15 replies 1k views
Original Post
mdog1234
mdog1234
When I render any object I get a frame rate of about 823 fps. When I put lighting on the frame rate drops by half to around 420 when i put textures and lights on the frame rate drops another 25% to 318. I have binded 3 vertex buffer objects like this glBindBufferARB( GL_ARRAY_BUFFER_ARB, VBOVertices ); glVertexPointer( 3, GL_FLOAT, 0, (char *) NULL ); glBindBufferARB( GL_ARRAY_BUFFER_ARB, VBOTexels ); glTexCoordPointer( 2, GL_FLOAT, 0, (char *) NULL ); glBindBufferARB( GL_ARRAY_BUFFER_ARB, VBONormals ); glNormalPointer( GL_FLOAT, 0, (char *) NULL ); My question is that is there a way to not see such a performance drop when lights and textures are on? Is this normal or is the fame rate low because I am using 3 vbos.
extralongpants
extralongpants
Try using one interleaved array and a vbo, instead of 3 seperate vbo''s. When I did this in my project, I got a HUGE increase in performance. If you don''t know how to use interleaved arrays, just do a search on it - they''re really easy, as long as you can organize your data in the correct format.

-----------------------------
I never chew my cabbage twice
_DarkWIng_
_DarkWIng_
a) Use a bigger test mesh. Something like +50k tris.
b) Don''t worry about it while you''re getting +300 FPS.
c) You''re probably getting fillrate bound, not transfer bound.
d) And most important: Don''t crosspost!!!

thisThread.close();

You should never let your fears become the boundaries of your dreams.
You should never let your fears become the boundaries of your dreams.
Ostsol
Ostsol
e) A texel is not a texture coordinate.
-Ostsol
mdog1234
mdog1234
The object i am using has plenty of vertices. What do you mean by cross post.
mdog1234
mdog1234
quote:
Original post by Ostsol
e) A texel is not a texture coordinate.


I know its not but that isnt really my problem. I could call it poop if i wanted to now couldnt I.

_DarkWIng_
_DarkWIng_
quote:
Original post by mdog1234
The object i am using has plenty of vertices. What do you mean by cross post.


20k is not "plenty of vertices". Even GF1 can handle that at +100 FPS.

Crosspost? And what is this? : http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/011469.html



You should never let your fears become the boundaries of your dreams.
You should never let your fears become the boundaries of your dreams.
mdog1234
mdog1234
I agree thats not alot but if you have lots of objects with 20k vertices then you will have a frame rate problem. I am thinking of performance issues in the future when I am not just rendering one object as a test



[edited by - mdog1234 on February 3, 2004 3:12:07 PM]
mdog1234
mdog1234
if I want to post on opengl.org I can. Who are you to tell me where I can post. Some people who post there may not read here and vice versa. So yes I will continue to cross post. Plus you dont have a real solution to my problem anyway so it seems I need to post in different locations.

[edited by - mdog1234 on February 3, 2004 3:13:54 PM]
yakuza
yakuza
quote:
Original post by _DarkWIng_
Crosspost? And what is this? : http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/011469.html



Now that''s just retarded, it''s not crossposting to ask a question on 2 completely different messageboards, it''s only crossposting if somebody posts the same question to multiple forums on the same messageboard. Lighten up, DarkWing
----------------Amusing quote deleted at request of owner
Sneftel
Sneftel
Note that it''s not especially useful to track framerates when they''re above ~120. If I render nothing, I probably get a framerate around 3000 FPS. if I start rendering a cube, maybe it drops to 800. That doesn''t mean I say OMFG I won''t be able to render 2 cubes. It means I''m not testing with enough objects. Normally games are either fillrate limited, transformation limited, or datarate limited; but when you''re rendering so few objects, all sorts of other limits that you don''t care about can come into play. Render however many objects you need to bring the framerate down to 60 FPS, and then work from there.


"Sneftel is correct, if rather vulgar." --Flarelocke
Sneftel
Sneftel
quote:
Original post by mdog1234
if I want to post on opengl.org I can. Who are you to tell me where I can post. Some people who post there may not read here and vice versa.

The reason not to crosspost to two forums at the same time is that then people at both forums spend time answering your question, even though it may have been answered already. People responding with solutions do so completely for your benefit; the least you can do is hold off posting on a different forum until it''s clear you won''t get any responses in this one. To do otherwise is inconsiderate.
quote:
So yes I will continue to cross post

I''ll keep that in mind the next time I see a post from you. I''ll probably just assume that someone in another forum already answered your question.


"Sneftel is correct, if rather vulgar." --Flarelocke
mdog1234
mdog1234
Sneftel, It takes about 5 seconds to register a new name. So if i really desired your comments (which i dont) I would just register a new name.
Sneftel
Sneftel
quote:
Original post by mdog1234
Sneftel, It takes about 5 seconds to register a new name. So if i really desired your comments (which i dont) I would just register a new name.

So your point is.... you don''t care about wasting our time? Yikes.


"Sneftel is correct, if rather vulgar." --Flarelocke
mdog1234
mdog1234
I want to get my question answered. You are posting on these forums so just answer the question or dont. You are wasting time now by just telling me not to post on multiple forums. I will do so if i want.
Enigma
Enigma
Please understand that these forums are what they are because of the vast amounts of time and effort voluntarily put into them by the regulars (& irregulars) here. You have absolutely no right to get answers to your questions and when you do get a reply nine times out of ten you ought to be grateful, even if it is telling you something you didn''t want to hear. After all, somebody has gone to the effort of trying to help you, even if only to help you change your posting style to improve your chances of getting an answer in future.

When you post a message to two messageboards you are asking two sets of people to voluntarily give up their time to help you. If your problem is quickly answered in one forum then those in the other forum will be wasting their time trying to answer it because it has already been answered. This means they are unable to answer somebody else''s question because they are wasting their time on your post.

This is why it is only polite to either a) not cross-post or b) mention in each forum that the message has also been posted in another message board.

Finally, it is usually a very bad idea to be rude to a well respected member of the community (like Sneftel). You risk becoming ignored by the more knowledgeable members of the community with the result that future questions are answered slowly, incorrectly or not at all.

Enigma.
Ostsol
Ostsol
quote:
Original post by mdog1234
quote:
Original post by Ostsol
e) A texel is not a texture coordinate.


I know its not but that isnt really my problem. I could call it poop if i wanted to now couldnt I.


Bah. . . lighten up. . . The "" isn''t in there just because I like to post emoticons. . .
-Ostsol

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.