3D Floating point texture/Sampling?

Hi all -

I’m confused by some of the new NV extensions. I read that floating point textures needed to be RECT textures, and that only NEAREST sampling applies.

This seems awfully strange to me since in DirectX you can have a floating point Volume Texture and can apply cubic filtering on texture reads…

Can anybody tell me more?


Just because an API has feature X, it doesn’t mean that all HW can support it. In the case of the feature you mention, I don’t hink any present HW can do it. (Tri-cubic interpolation on a floating point volume that is.)

The best I know of that can be done today in HW with floating point textures, is nearest sampling on textures on any format (1D, 2D, 3D, cubemap).


EDIT: I have NO IDEA how this reply ended up in this thread. Probably due to confusion on my part, because I’ve found this OpenGL board to be very reliable. My apologies.

Ignore this post:

First, a simple math experiment:

If something is 1 pixel tall at distance 1E8 meters, how tall is it then at distance 10 meters?

Second, the only 64-bit anythings I know about are accumulation buffers and floating point pbuffers. They break the data into 4 channels, so you’d have to assemble the data separately, except the internal precision is only 32 bits (~24 mantissa) so that wouldn’t work anyway.

Try writing a software renderer, or adapting Mesa to use doubles.

[This message has been edited by jwatte (edited 04-27-2003).]

I don’t get it… seems like the math should be all the same… and it seems like the math would be done in floating point, even for RGB8 format textures…

Of course I have a working implementation in software, but (also of course) it’s horribly slow, and that’s the point of having hardware there. If we could write everything efficiently enough for the CPU, there’d never have been a need for a GPU.

graphicsMan -

I don’t think jwatte was actually responding to your question. If he was, he sure confused the hell out of me

I think Evan answered your question. Although the capability you want (floating point tri-linear interpolation) may be present in the D3D API, that does not necessarily mean that any present hardware can do it. What it probably does mean is that, if the vendor wants to say that they’re compliant with that version of D3D, they have to make a software fallback.

– Zeno