Jump to content
  • Advertisement
Sign in to follow this  
RobMaddison

Texture Streaming

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

I have a question regarding asynchronous texture loading. In my level, it is likely that I'll have areas of the map which use completely different textures to other areas and as there may be a fair number, I'd like to introduce some form of texture streaming. So my player is in one area and gradually moves to an area where new texures need to be asynchronously loaded, how is this normally done? I was thinking about having a pool of reusable textures (each with a mipmap chain) and when the player moves around and a new texture is introduced, the least recently used texture (that are not visible from the current position and therefore no longer required) is reused with new graphics. As the player is generally likely to be a fair distance from the first sight of a new texture, we load the lowest mipmap level (i.e. the least detailed) and put that into the recycled texture. As the player gets closer, higher levels are asynchronously loaded and, when ready, are slotted into the recycled texture's mipmap levels. Does this sound about right? I'm not sure how fast it is to write to a mipmap surface on the fly but I can't think of any other way to do it without loading the entire mipmap chain in one go. If the player gets to an area where he/she can see a texture at a distance, but then turns and goes back the other way, it would be wasteful to have loaded the entire mipmap chain when only the lowest level was required . I suppose the level designer would need to ensure that the amount of textures available in the pool is sufficient that at any point in the map, there are enough textures objects to cover every texture. Any thoughts? Thanks [c++, DX9]

Share this post


Link to post
Share on other sites
Advertisement
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!