什么是依赖纹理读取?(What is a dependent texture read?)

2019-06-24 08:10发布

我一直在读计算机图形学论文,并每隔一段时间我遇到的术语“依赖纹理读取”或“依赖纹理拾取”在着色器代码查询纹理的环境中使用。 什么是依赖纹理读取,而这也正是这一点,“正常”的纹理读取之间的区别?

Answer 1:

当从一个纹理查找(或其它在着色器计算)的返回值被用于确定在何处从一个第二纹理查找A“依赖纹理读”是。 一个重要含义是,纹理坐标(你来自哪里查找)没有确定,直到着色器的执行过程中...有没有一种静态的分析,你可以在着色器做的(甚至不知道所有参数的值)这可以告诉你的坐标将时间提前了什么。 它还严格定购两个纹理读取和限制多少的执行顺序,可以通过优化的驱动程序等改变

在旧的显卡,曾经有对这种事情相当多的限制。 例如,在一个点(IIRC),你可以从多重纹理,但只有一个小数目的不同纹理坐标的查找。 硬件的方式实际上是实现某些类型的依赖纹理的读操作是不可能的或者非常低效的。

在存储卡的最新两代人,你不应该担心这一点。 但是你可能是从几年前阅读书籍或文章时,你真的必须密切关注这样的事情。



Answer 2:

接受的答案(和一个在其下方)不正确地限制依赖纹理读取到使用另一种纹理读出的输出。 这是不正确。

甲依赖纹理读取是与不是传递到节目的片段着色器的精确坐标的坐标读任何纹理。 即使是一个调酒会造成依赖纹理读取。

这是直接取自苹果的OpenGL ES的编程指南 。



Answer 3:

一个正常的质地刚读使用传递到着色器中的纹理坐标。 甲依赖纹理读取是在使用来自先前在着色器访问的另一个纹理提取值部分中计算的纹理坐标。 因此,该第二纹理访问是从第一获取的值“相关”。



文章来源: What is a dependent texture read?