Jump to content
  • Advertisement
Sign in to follow this  
boltZar

OpenGL fbo for scrolling

This topic is 3026 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

basically what I want to do is grab some different sized textures from harddrive, position them to create a big (something like 6000x1200px) map (polygon maps?) and render some portion of this map to the screen. having done some SDL work before, if it was SDL I would create a bigger than screen surface, blit everything to this surface and blit some portion of it the screen. like a buffer. a quick google search returned that I can use the same technique in opengl too. my question is, is FBO what I want? can I create a big framebuffer object and render some parts of it to the screen? thank you.

Share this post


Link to post
Share on other sites
Advertisement
I must add that this is strictly 2d.

also what is the upper size limit for a fbo?
the scrolling map is for hd screens and I need a scene (map) that is at least 6000x6000px.

if it's not possible what's the right way of doing it.

thanks

Share this post


Link to post
Share on other sites
Without knowing exactly what your project is, its hard to tell if FBO is the right tool for you (is there a reason why you have to have the entire thing loaded in a texture, or can you just load different pieces as needed, etc)

However, I think this method should work for what you are describing. All you have to do is create your FBO, then draw a fullscreen quad, with the UV coords referencing the part of your FBO that you want to actually draw.

Quote:

also what is the upper size limit for a fbo?


This is determined by your GPU, and not by any openGL standard. I don't know all of the details, but I would imagine that you would have to make a fbo that is smaller than your max supported texture size. You can find this for your GPU with

unsigned int i;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &i);



I'm not really sure what the standard is, but I think some cards from a few years back have a max size of 4096, maybe newer cards have 8192. If you're intending to run this on a variety of hardware you'll have to query the max size and determine how big to make your FBO based on that.


Share this post


Link to post
Share on other sites
well the project is not a secret, it's just that there isn't one yet :)

what I have in mind is a "parallax side scrolling game" like Aztaka:


considering that max texture size changes according to the gpu, it's a good idea to go with another method then.

Share this post


Link to post
Share on other sites
Are the textures loaded and displayed on the fly or loaded once and then displayed? If loading is done ahead and not during gameplay then you need not use an FBO but could use some standard texture. FBOs are mostly used for content that is re-rendered several times (often once per frame) during program execution. You'll still be restricted by maximum texture size, though.
You could try rendering multiple textures, each covering a section of your scene depending on the texture size restriction you determined.

Unless we're talking several ten thousand files/tiles I'd go with a collection of quads, though, each covered with the respective original texture.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • 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!