现代GPU是否支持3D纹理的各向异性过滤?如果是,怎么使用? OpenGL规范对此似乎并不十分精确。通过此链接:

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?


#1 楼

我不知道3D各向异性过滤的硬件支持。不过我可能错了。我相信已经尝试过了。

2D各向异性过滤的动机是,比在纹理空间中进行盒式过滤(通常,各向异性过滤会在纹理空间中执行多个框过滤。)

此定义很关键。二维各向异性过滤尝试:


集成到您可以看到的平面部分上(在屏幕上单个像素内)。


3D各向异性过滤是什么意思?


在的一部分上积分。 。 。卷? 。 。 。你能行 。 。 。看到吗?(在屏幕上的单个。。。。体素中。.。)


我能想到的最好的类似物是沿着视图各向异性地进行某种3D纹理查找射线。这不是一个直接的类比。无论如何,问题在于当您进行体积渲染时,实际上您比在2D情况下更关心这种集成的完成方式。

是否要吸收?排放? (您需要做某种指数积分。)是否要散射? (您需要进行某种递归或近似模糊以进行集成)。而且这甚至没有涉及到3D纹理存储什么样的数据。这种纹理是指不透明度,还是意味着密度?它是扩散的还是发射的?所有这些都需要以不同的方式集成。


体积渲染的新发展一直在发生,并且在任何情况下,都有许多次优的方法可以尝试推广2D各向异性过滤,规范表达的疑问对我来说很有意义:


执行。 。 。


编号
,用于2D各向异性纹理过滤的扩展容易扩展到3D各向异性纹理过滤吗?

评论


$ \ begingroup $
确实可以扩展到3D。例如,您可以考虑对三角形(的一部分)进行纹理化时,实际上是在评估通过3D纹理切割的表面。该形状不必是各向同性的。替代地,就像2D各向异性过滤可能近似于椭圆形覆盖区一样,3D版本也可以使用椭圆体。
$ \ endgroup $
–西蒙F
2015年9月7日15:09



$ \ begingroup $
@SimonF嗯,你是对的!实际上,我认为这可能是比我给出的概括更好的概括,而且似乎表现得更好(例如,更明显的是做什么)。
$ \ endgroup $
–imallett
2015年9月7日下午16:51