Which is faster? Drawing 256 16x16 bitmaps or drawing one 480 x 480 bitmap?

Started by
5 comments, last by MisterFuzzy 11 years, 3 months ago

Right now I am drawing each bitmap representing a tile seperately. I am barely getting 60 fps in my game and I want my game to have better performance than this. If I would get better performance making maps using a tile editor and exporting the bitmap and making a entity system to manage can_pass or cannot_pass or warp I would do that instead.

Advertisement
well, one draw call is ALOT faster on a gpu than say 200 draw calls
additionally, you should have a tile map that contains each tile on the same texture
and draw from that single texture for each quad, and avoid binding new textures as much as possible

the fastest solution is this:
one texture, one VBO, one draw call

an alternative method is using 2D texture arrays for tiles, which simplifies things greatly
since you wont need to separate textures to avoid mipmapping "incidents" due to filtering
using texture 2D array feature, it will still be only 1 texture bind

what i would try, is have 1 mesh, that consists of 3x3 planes that are tilesheets
that way i only need 1 bind, and i can render subsets of the 3x3 planes depending on camera position
it will make smooth scrolling easier (but dont take my word for it, since i do mostly 3D)

good luck
I am barely getting 60 fps in my game [...]

Do you have vsync on? Do you know what the bottleneck is?

@Kaptein: Are you randomly inserting line breaks? wink.png

[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]
@Kaptein: Are you randomly inserting line breaks?

good call on the vsync! it's true, most computer screens are 60hz, and 60 fps is more than enough for animation
in movies (although interlaced), its ~25 fps!

anyways, yes, i'm having some serious issues with the forums today! each time i post, a ton of
is
showing up instead of line breaks
it's making things a bit hard, but i'm not one to complain smile.png

here is my first attempt at a reply:

<blockquote class="ipsBlockquote" data-author="Cornstalks" data-cid="5014561"><p>@Kaptein: Are you randomly inserting line breaks?&nbsp;<img data-cke-saved-src="http://public.gamede...efault/wink.png" src="http://public.gamede...efault/wink.png" class="bbc_emoticon" title=":wink:" /><br />&nbsp;</p></blockquote><br />good call on the vsync! it's true, most computer screens are 60hz, and 60 fps is more than enough for animation<br />in movies (although interlaced), its ~25 fps!<br /><br />anyways, yes, i'm having some serious issues with the forums today! each time i post, a ton of &lt;br /..&gt; is<br />showing up instead of line breaks<br />it's making things a bit hard, but i'm not one to complain <img data-cke-saved-src="http://public.gamede...fault/smile.png" src="http://public.gamede...fault/smile.png" class="bbc_emoticon" title=":)" /><br /> 
You can keep the same kind of map file you are using if you generate a background image out of your tiles the first time the cycle runs, then just draw that image each time instead of all the tiles. Make sure your not reading from the hard disk each cycle, that really slows it down.
Stay gold, Pony Boy.
good call on the vsync! it's true, most computer screens are 60hz, and 60 fps is more than enough for animation
in movies (although interlaced), its ~25 fps!

This isn't quite correct - movies can get away with less because each frame is somewhat blurred in with the previous and next frames, which makes frame transition much smoother. Try it out - next time you watch a movie, pause it at a random point with enough movement and watch how blurry it is. 25 fps (and even 30, for that matter) is most definitely not enough for video games to appear smooth without unrealistic amounts of motion blur. 60 fps is still far from perfect, as well, but it's satisfactory for most users. Motion blur and good camera handling can help a lot, though. This is really off-topic, though, so I'll stop here.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

Have you considered NOT drawing the tiles that are not visible on-screen? I'm constantly forgetting to do this myself...

"Only idiots quote themselves" - MisterFuzzy

This topic is closed to new replies.

Advertisement