Grall said:Not counting the higher-order surfaces support that only one particular chip supports, of course. 3D textures is afaik supported by all DX8 and up chips, but to my knowledge no software has ever used them for anything.
No current chip supports a very good form of HOS, for one reason or another.Grall said:Not counting the higher-order surfaces support that only one particular chip supports, of course.
MfA said:if only the mipmap pyramid hadnt been invented the wrong way up.
I wouldn't have put it that way, but I understand what MfA means, and agree (at least to some extent).Humus said:MfA said:if only the mipmap pyramid hadnt been invented the wrong way up.
"The wrong way up"? :?
I'm intrigued as well!Humus said:"The wrong way up"? :?MfA said:if only the mipmap pyramid hadnt been invented the wrong way up.
Ilfirin said:It would be cool if you could arbitrarily add more detailed levels to a texture.
ET said:Right. In my previous job I was doing 3D over a network, where texture maps arrived slowly. It's easy to compress a texture such that it's refined as more data arrives (for example, using wavelets), but unfortunately it's not possible to just add the refined level as a new texture level.
Basic said:I wouldn't have put it that way, but I understand what MfA means, and agree (at least to some extent).Humus said:MfA said:if only the mipmap pyramid hadnt been invented the wrong way up.
"The wrong way up"? :?
Currently the "feeling" of mipmaps is that you have one full base texture (mip level 0 in OGL), and then make less detailed versions of it (mipmap 1...N). If the mipmap pyramid was "the other way up", you'd think of it as a low res texture (I'd like mip level 0 to be a 1x1 texture), and then you can add more detail by adding higher resolution mipmaps.
It might seem as two different ways to look at the exact same thing, but the difference is that with the second way you haven't locked yourself into how the highest resolution mipmap will look. And the second way is more natural if you want textures with different max resolutions in different areas of them.
(Eg, The lower right part of a texture might contain more important details, so it will get 10 mip levels. While the upper left might be rather fuzzy any way, so it will only get 6 mip levels.)
Then there's of course the problem that the poor hardware guys need to make hardware that can texture from a nonregularily stored texture, and that the poor driver guys need to write texture management code for textures that you might add some more detail to after it's initially created. But hey, I'm in neither of those two positions, so it shouldn't be a problem.
MfA said:I was just being coy, and basic got it right.
That said, I think it would be usefull if hardware directly supported adaptive resolution textures. You can do it with shaders in theory, I think there was a paper on doing this at last year's hardware workshop, but it isnt all that efficient ... especially without real flow-control.
In practice you would probably implement it with tiles at each LOD rather than individual texels, and some sort of extended quadtree to encode locations of the tiles+LODs (extended to store extra info in leafs about neighbours and such to prevent you from having to traverse the tree for each tile for "common cases").
It would get really interesting if you could use such a texture as a render target BTW (A requisite for adaptive shadowmapping.)