which is fastest

Started by
2 comments, last by idinev 15 years, 3 months ago
hi i am start to develop my game engine and i need to know fastest way for implmentng graphic in my game engine. which is fastest : 1. vbo,dispaly lists, indexed vertex arrays 2. FBO or gbuffer ( for deferred shading) 3. CSAA, MSAA, FSAA ( i think CSAA is faster than others) 4. GLSL, ARB shaders or CG
Advertisement
Use VBO and GLSL/CG to ensure future compability.
after all, it depends on your target platform and what not.
"Game Maker For Life, probably never professional thou." =)
IME:

1. Indexed VBO. Though currently on nVidia cards, display-lists are reported to be much faster
2. There's no g-buffer in openGL. It's a concept, that uses a FBO with multiple attached textures.
3. CSAA is nicest and almost as fast as MSAA.
4. They differ only in speed of binding + set constants. GLSL: fast to bind and set unis on ATi, slower on nVidia. ARB: fastest, but extremely limited (think Doom3 graphics only, no branching). NV-asm: available only on nV, as fast as ARB but with all latest features. CG: internally compiles only either to NV-asm, ARB-asm, or fails.

Also, non-trivial GLSL is hell on different ATi drivers, judging from reports in the opengl forum. Your shader works fine on one driver, crashes/misbehaves on 2 others. There's no ATi alternative to nV-asm.

There is a new object, VAO - which promises speedups on binding VBOs.
Streaming vertex-data must use streaming VBOs (in round-robin fashion, and glMapBuffer).
Indexed triangles can make use of the vertex-cache.
I think that also the DX caps-viewer shows which vertex-data declarations are actually directly accelerated by the gpu (i.e 4 unsigned bytes for a color, instead of 3UBs). Anything not listed there is probably retranslated by the driver. I haven't benchmarked, yet.


If I would like to support the 30% ATi users, most of which anyway have SM2.0 cards, I'd make a second path in the engine (material-manager), where either dumbed-down ARB or slowed-down GLSL is used. While primarily using nV-asm, compiled from the Cg compiler.
ASM shaders will stay for as long as DX9, DX10 and DX11 exist (as they also use asm-code exclusively to instruct the driver), so I'm betting on asm.

This topic is closed to new replies.

Advertisement