Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

owl

Is Vertex Buffer extension "much more" faster than Display Lists?

This topic is 5422 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Well, I started learning OpenGL again after a few months of being stand by, and until now I''m using only display lists. I''m following the nehe tutorials, and they seem to use this method only. I was wondering if it is worth to expend the next weeks learning extensions and (if it is supported by my video card) vertex buffers in particular. I''m currently working on a TNT2 (!!), and the performance I get is quite poor. (my fault, many OGL games run quite well) For example, if I create a Display List for drawing a cube and I call this Display List 100 times from a FOR loop (without textures, without lights), my FPS drops down like 70%. I guess this is not the best performnce test one can do. But, for the moment, I couldn''t come up with something better. I''m using SDL to initialize the video mode etc. Wich method you use to draw your stuff in OpenGL? I''m pretty clueless about OpenGL and I think it would be cool if some of you could discuss something about the subject. Thanks in advance.

Share this post


Link to post
Share on other sites
Advertisement
I doubt you have the VBO extension on a TNT2, since it doesn''t perform geometry calculations on the card. If you do have it, it''s emulated anyway, so you won''t see any benefit over standard vertex arrays.

You might want to try vertex arrays though. I almost always find indexed VAs are faster than display lists. You could even combine the two, although you won''t get much benefit.

The method I use is a general purpose Vertex Array class which uses VBO if available or falls back to vertex arrays otherwise. Since VBO uses the existing vertex arrays commands, this is relatively easy to do.

Share this post


Link to post
Share on other sites
Here's an interesting thread from OpenGL.org:

http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/010685.html

It's not totally about VBO, so I'll quote/lightly-paraphrase the relevant text:

quote:
Originally posted by cass:
[VBO is] a better interface for software T&L than compiled vertex arrays, and pretty much all the other attempts to solve the "vertex buffer" problem before.

So while VBO isn't necessarily "hardware accelerated" on all platforms, it should still provide opportunity for "better acceleration" over other APIs for vertex array management.

Thanks -
Cass


The guy works at NVidia, so I think it's safe to assume he knows what he's talking about. Anyways, my point is that there does appear to be some benefits in using VBO, even when it is just emulated in software.

[edited by - Ostsol on November 11, 2003 6:56:57 PM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
from my expierence i can tell you, VAs are faster! and another advantage is that if you have created a vertex manager, and if you use indexed VAs, you can save a large amount of memory! (two points who are the same are only included once)

Share this post


Link to post
Share on other sites
AP : "if you use indexed VAs, you can save a large amount of memory! (two points who are the same are only included once)" .... and what would in VBO case be different?

You should never let your fears become the boundaries of your dreams.

Share this post


Link to post
Share on other sites
Ok, I tried va''s and, at least, they look easier to code.

Can I store the verices of all my objects into one va and lock only that one array once per frame?

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
from my expierence i can tell you, VAs are faster! and another advantage is that if you have created a vertex manager, and if you use indexed VAs, you can save a large amount of memory! (two points who are the same are only included once)


VAs are never going to be faster than VBO on a T&L card unless you're doing something very wrong, or possibly you're updating the geometry every frame (ie for skinning).

Here's my experience, from a report on skinning and mesh rendering performance that I wrote recently. The bottom 3 rows are without animation or skinning, so they're the most applicable to general mesh rendering. BTW, the skinning method I'm using here isn't exactly optimal yet, so the figures for that are somewhat distorted. All these tests were done with a Radeon 9700 pro.


Anim- Smooth Skinning Render FPS Tris/sec Time /
ation motion Method Frame (MS)
Yes Yes Yes IM 27.77 1,329,405 36.01
Yes Yes Yes VA 46.8 2,240,410 21.37
Yes Yes Yes VBO 47.11 2,255,250 21.23
Yes No Yes IM 28.91 1,383,980 34.59
Yes No Yes VA 48.4 2,317,005 20.66
Yes No Yes VBO 49.49 2,369,185 20.21
Yes Yes No IM 53.39 2,555,886 18.73
Yes Yes No VA 119.23 5,707,779 8.39
Yes Yes No VBO 170.99 8,185,633 5.85
No No No IM 63.08 3,019,766 15.85
No No No VA 171.12 8,191,857 5.84
No No No VBO 300.01 14,362,079 3.33

Abbreviations: IM: Immediate mode; VA: Vertex Arrays; VBO: ARB_vertex_buffer_object

[edit: fixed column headers]


[edited by - benjamin bunny on November 13, 2003 7:31:08 PM]

[edited by - benjamin bunny on November 13, 2003 7:32:13 PM]

Share this post


Link to post
Share on other sites
be intresting to see the kinda fps you get when using VBOs and the matrix palette stuff (the proper name escapes me atm) as you could render each bone segment with a different call and matrix to allow for animation, kinda the best of both worlds in a way, animation with the vertex data locked on teh card
(this is assuming i''ve understood the extension right, hehe)

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!