I've been investigating the thoroughly awesome NASA Blue Marble images, particularly these monthly ones, which I plan to incorporate once I can figure out how to cleanly load 24 separate 4096x4096 textures without running out of graphics card memory. Even the 2km-to-pixel ones are far, far too hires to load all in one go.
So, I've kinda cheated with getting a 8192x4096 Earth texture by splitting it into two and then using the pixel shader to double the y value of the texture coordinates, and use two separate texture samplers, one for each 4196-wide image. It would probably have been much cleaner to create two hemispherical Earths with different textures! Perhaps I will do that another time, if it'll allow me to increase resolution even further. Alternatively, I'm going to have to come up with some sort of mental Level-of-Detail texturing algorithm which, since you can scroll around the earth pretty quickly, would be quite complex. Here's a screenie of where I'm at right now:
You probably couldn't have noticed, but the bump mapping I was so pleased with the other day isn't working properly - obviously, now I think about it, one needs to rotate the texture normal to bring it into the same coordinate space as the vertex normal. There are a few tutorials out there on doing just that, this one appears to be pretty informative.
Next up: variable-rate clock, which will include actually programming a fair number of Neoforce buttons, which'll be interesting. Unlike Java3d, XNA doesn't appear to have a bunch of interpolator classes all hardwired into the system clock, so hopefully this will be quite an easy job.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment