Section 4.3.4.2 of the programming guide stats:
“Linear texture filtering may be done only for textures that are configured to return
floating-point data. It performs low-precision interpolation between neighboring
texels.”
I’m not sure how low the precision is, but I’m assuming it uses half-floats (for what stage of the lerp process, I’m not sure - possible all of it, maybe just the actual sampling part - anyone able to shed some light on this?)
See Appendix D of the programming guide. Section D.2 says that the interpolation coefficients are computed with only 8 bits of fractional value. I think this means you will only see 256 discrete values between samples in your texture (in 1D, that is).
That is correct. AFAIR the interpolation is actually precise in terms of number of correct significant digits at those 256 points between samples, ie. if you’d interpolate between 0 and 1, you’d get precisely computed 1/256, 2/256 etc. but a value between those points will be snapped to nearest. This means the maximum interpolation error introduced by tex1d filtering will be (1/512)*range (where range is the distance between the two points in the lookup table).
I attach a piece of code that shows this. sample.txt (3.95 KB)