Dependent Texture Reads and Mipmaps

Since I think both ATI and nVidia have various kinds of this in their newest cards (even if in some cases its just enough for EMBM)I was wondering it anybody knew how mipmapping interacts with dependent texture reads. For instance, if I have a normal map or something of the sort on an object, and use the normal vector fetched from that map to index an environment cube map per-pixel, what mipmap level of the environment cube-map would be accessed? There seem three possibilities to me:

  1. Level 0 is always accessed and so mipmaps are ignored in dependent texture reads. This is pretty likely.
  2. The same level is accessed in the second texture as was accessed in the texture the color/coordinates came from. Something like this would likely give reasonable results and still be easy to implement.
  3. A local gradient of pixel values is sampled when a texture is accessed, and this gradient is used as du and dv if the texture color is later used to make a dependent texture read. This is probably too difficult to implement on the card.

It seems, though, that an ideal dependent texture read technology would be such that if someone created an “identity” texture map, sampled it directly and then made a dependent texture read into a texture T the end results would be the same on-screen as if T had been sampled directly, including mipmapping…

GeForce3 handles mipmaps completely correctly in all dependent-texturing cases.

  • Matt