<p>I am not aware of hardware support for 3D anisotropic filtering.  I could be wrong about its existence though.  I believe it has been tried.</p>

<p>The motivation for 2D anisotropic filtering is to prefilter the texture function over the screen area it falls under in a more accurate way than doing a box filter in texture space (usually, anisotropic filtering does <em>several</em> box filters in texture space).</p>

<p>This definition is key.  2D anisotropic filtering tries to:</p>

<blockquote>
  <p>Integrate over the part of a flat surface that you can see<br/>(within a single pixel on the screen).</p>
</blockquote>

<p>What does 3D anisotropic filtering mean?</p>

<blockquote>
  <p>Integrate over the part of  a . . . <em>volume?</em> . . .  that you can . . . <em>see?</em><br/>(within a single . . . <em>voxel?</em> . . . on the screen)</p>
</blockquote>

<p>The best analogue I can think of would be doing some sort of 3D texture lookup anisotropically along the viewing ray.  This isn't quite a direct analogy.  Anyway, the problem with this is that when you're doing volume rendering, you actually care about how this integration is done a lot more than in the 2D case.</p>

<p>Do you want absorption?  Emission?  (You need to do some kind of exponential to integrate.)  Do you want scattering?  (You need to do some kind of recursion or approximating blur to integrate).  And this doesn't even get into what kind of data the 3D texture stores.  Does this texture mean <em>opacity</em>, or does it mean <em>density</em>?  Is it <em>diffuse</em> or is it <em>emission</em>?  All of these need to be integrated differently.</p>

<hr>

<p>New developments in volume rendering are happening all the time, and in any case there are so many variously suboptimal ways you could try to generalize 2D anisotropic filtering, the doubt expressed by the specification makes sense to me:</p>

<blockquote>
  <p>Does the implementation . . . for 2D anisotropic texture filtering readily extend to 3D anisotropic texture filtering?</p>
</blockquote>

<p>No.</p>

CC BY-SA 3.0
2015-09-07T15:09:05.573Z
It does extend to 3D. For example,  you could consider that, when texturing (a portion of) a triangle, you are, in effect, evaluating a surface cut through the 3D texture.  That shape doesn't have to be isotropic.

Alternatively, just like a 2D anisotropic filtering may approximate with an elliptical footprint, the 3D version could use an ellipsoid.
Simon F
CC BY-SA 3.0
2015-09-07T16:51:22.520Z
@SimonF Hmmm, you're right! That is actually I think perhaps a better generalization than the one I gave, and it seems better behaved (as in, it's more obvious what to do).
geometrian
CC BY-SA 3.0
2015-09-07T01:22:17.117Z
2015-09-07T01:22:17.117Z
geometrian
<p>Do modern GPUs support anisotropic filtering for 3D textures? If yes, how can one use it? The OpenGL spec doesn't seem to be very precise on this. From <a href="https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt">this link</a>:</p>

<pre><code>Should anything particular be said about anisotropic 3D texture filtering?

  Not sure.  Does the implementation example shown in the spec for
  2D anisotropic texture filtering readily extend to 3D anisotropic
  texture filtering?
</code></pre>

<texture><3dtexture>
Can we use anisotropic filtering on 3D textures?
ap_
# Can we use anisotropic filtering on 3D textures?

(Asked by: username_0 on 2015-09-05)

Do modern GPUs support anisotropic filtering for 3D textures? If yes, how can one use it? The OpenGL spec doesn't seem to be very precise on this. From [this link](https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt):

```
Should anything particular be said about anisotropic 3D texture filtering?

  Not sure.  Does the implementation example shown in the spec for
  2D anisotropic texture filtering readily extend to 3D anisotropic
  texture filtering?

```

**Tags:** texture, 3dtexture


---

## 1 answers

### Answer by username_1 on 2015-09-07. Score: 4

I am not aware of hardware support for 3D anisotropic filtering. I could be wrong about its existence though. I believe it has been tried.

The motivation for 2D anisotropic filtering is to prefilter the texture function over the screen area it falls under in a more accurate way than doing a box filter in texture space (usually, anisotropic filtering does *several* box filters in texture space).

This definition is key. 2D anisotropic filtering tries to:

> Integrate over the part of a flat surface that you can see  
> (within a single pixel on the screen).

What does 3D anisotropic filtering mean?

> Integrate over the part of a . . . *volume?* . . . that you can . . . *see?*  
> (within a single . . . *voxel?* . . . on the screen)

The best analogue I can think of would be doing some sort of 3D texture lookup anisotropically along the viewing ray. This isn't quite a direct analogy. Anyway, the problem with this is that when you're doing volume rendering, you actually care about how this integration is done a lot more than in the 2D case.

Do you want absorption? Emission? (You need to do some kind of exponential to integrate.) Do you want scattering? (You need to do some kind of recursion or approximating blur to integrate). And this doesn't even get into what kind of data the 3D texture stores. Does this texture mean *opacity*, or does it mean *density*? Is it *diffuse* or is it *emission*? All of these need to be integrated differently.

---

New developments in volume rendering are happening all the time, and in any case there are so many variously suboptimal ways you could try to generalize 2D anisotropic filtering, the doubt expressed by the specification makes sense to me:

> Does the implementation . . . for 2D anisotropic texture filtering readily extend to 3D anisotropic texture filtering?

No.

> **Comments:**
> **username_2**: It does extend to 3D. For example,  you could consider that, when texturing (a portion of) a triangle, you are, in effect, evaluating a surface cut through the 3D texture.  That shape doesn't have to be isotropic.  Alternatively, just like a 2D anisotropic filtering may approximate with an elliptical footprint, the 3D version could use an ellipsoid.  
> **username_1**: @username_2 Hmmm, you're right! That is actually I think perhaps a better generalization than the one I gave, and it seems better behaved (as in, it's more obvious what to do).  

---

