From: Thatcher U. <tu...@tu...> - 2001-01-16 15:43:25
|
On Jan 16, 2001 at 12:12 +0100, Timo Heister wrote: > Hi Thatcher, > > Dienstag, 16. Januar 2001, you wrote: > > > Soul Ride uses a system that sounds similar to what you're talking > > about: unique texturing, rendered by software and then downloaded into > > a texture cache. The rendering/downloading hurts, especially on > > TNT-level hardware, but it is feasible. > > Does soul ride has a fully unique texturing approach? or are some > textures used a few times? (should be possible when displaying snow) > Anyway,I think i will give it a try. It's fully unique from the texture cache down. In other words, there is a unique texel in texture RAM for every spot on the visible terrain. The texture tiles are built on demand, and the rendering process uses predefined tile types blended using a noise function and lightmaps, so there is quite a bit of apparent "sameness". [...] > > John R's description and > > screenshots are very generous and should give you good ideas to keep > > you busy for a while. > > Yep, it was really kind to tell us his secret algos. But i think my > engine won't be the future reference. It kindof helped me, but i'm not > sure if it works that good for current hardware. Don't be so sure... I think the extra detail passes might be tough on older hardware, but most of the other ideas seem usable. > > * you can't reasonably fit the full-resolution textures you need in > > texture RAM all at once (e.g. in John's case 8192m x 8192m --> > > 64Mtexels), however, for any given viewpoint, most of the terrain is > > far away and so can use a lower res version. So you need some sort of > > texture cache, and you need to be able to load/generate mip-mapped > > versions of your texture tiles. > > The question is, if leaving a really low-resolution texture of the > whole terrain in texture-ram is a good idea. When you get near a quad > you can upload a larger version. what do you think? It perhaps depends > on how large your terrain is and where the far clipping-plane is. Sure. In fact, you pretty much *have* to do something like this. Just to do some back-of-the-envelope calculations, let's say your terrain is like John's, 8192m x 8192m with 1m texels in the base map. So that's 64M texels at full res. But you only need full res locally. At a FOV of 90 degrees, and a 640-pixel-wide window, the terrain texels will be smaller than one pixel when the viewpoint is more than 320 meters away. At 640 meters, you can switch to 2m texels with no visible impact. At 1280 meters you can use 4m texels, and at 2560 meters you can use 8m texels. 8192 / 8 == 1024, so a single 1024x1024 texture representing your whole terrain looks perfect for all terrain that's further than 2560 meters away, and only consumes 1M texels. You also need tiles for the closer terrain, and they take up ~1M texels per level (actually a little less in practice due to overlap). So that's three more levels to get to your highest resolution (4m, 2m, and 1m). Total texture RAM usage: ~4M texels. Furthermore, that includes textures that are outside the frustum, so you actually only see ~1M texels at any given time. In Soul Ride I use a 3Mtexel cache for terrain textures, because my terrain is bigger and the finest resolution is 0.25 meters/texel, but once you have the system in place it's pretty scalable. > > * detail rules, but RAM is limited... if you're serious, you need to > > get into paging and/or compression. Detail overlays, tiling, > > splatting, procedural texturing etc can all be thought of as > > compression techniques in some sense. > > right, has anyone any experience with texture-compression (s3tc,dds > ...) ? How is the quality of the textures? How fast is the generation? > (when generating compressed textures in realtime) My system is totally ad hoc, based on synthesis (and also RLE of some of the control data), but I suspect that something like JPG would work great for generic image data. It's probably faster than grabbing uncompressed data off the disk, anyway. > > Those are the principles, the rest is just a bunch of minor > > details... :) > > The problem sometimes is in the detail ! ^^^^^^^^^ always! -- Thatcher Ulrich <tu...@tu...> == Soul Ride -- pure snowboarding for the PC -- http://soulride.com == real-world terrain -- physics-based gameplay -- no view limits |