CUDA C 纹理提取Texture Fetching

一.参数曲面的纹理 

使用纹理指定参数曲面属性。

二.CUDA C 纹理获取开发

用于计算纹理函数,根据纹理引用的各种属性返回的值的公式(请参见纹理和曲面内存)。

绑定到纹理引用的纹理表示为

  • N texels for a one-dimensional texture,
  • N x M texels for a two-dimensional texture,
  • N x M x L texels for a three-dimensional texture.

使用非规格化纹理坐标x、y和z,或纹理内存中描述的规格化纹理坐标x/N、y/M和z/L获取。假设坐标在有效范围内。纹理内存解释了如何根据寻址模式将超出范围的坐标重新映射到有效范围。

1. 最近邻采样

在这种过滤模式下,纹理获取返回的值是

  • tex(x)=T[i] for a one-dimensional texture,
  • tex(x,y)=T[i,j] for a two-dimensional texture,
  • tex(x,y,z)=T[i,j,k] for a three-dimensional texture,

where i=floor(x), j=floor(y), and k=floor(z).

图1显示了N=4的一维纹理的最近邻采样。

对于整数纹理,可以选择将纹理提取返回的值重新映射到[0.0,1.0]。

图1.  最近邻采样过滤模式。四个纹理的一维纹理的最近邻采样。

2. 线性滤波

在这种过滤模式下(仅适用于浮点纹理),纹理提取返回的值是

  • tex(x)=(1−α)T[i]+αT[i+1] for a one-dimensional texture,
  • tex(x,y)=(1−α)(1−β)T[i,j]+α(1−β)T[i+1,j]+(1−α)βT[i,j+1]+αβT[i+1,j+1] for a two-dimensional texture,
  • tex(x,y,z) =

(1−α)(1−β)(1−γ)T[i,j,k]+α(1−β)(1−γ)T[i+1,j,k]+

(1−α)β(1−γ)T[i,j+1,k]+αβ(1−γ)T[i+1,j+1,k]+

(1−α)(1−β)γT[i,j,k+1]+α(1−β)γT[i+1,j,k+1]+

(1−α)βγT[i,j+1,k+1]+αβγT[i+1,j+1,k+1]

for a three-dimensional texture,

where:

  • i=floor(xB), α=frac(xB), xB=x-0.5,
  • j=floor(yB), β=frac(yB), yB=y-0.5,
  • k=floor(zB), γ=frac(zB), zB= z-0.5,

线性滤波

α、 β和γ以9位定点,8位小数(精确表示为1.0)格式存储。

图2说明了N=4的一维纹理的线性过滤。

图2. 线性滤波模式。钳位寻址模式下四个纹理一维纹理的线性滤波。

3. 查表

为了确保TL(0)=T[0]和TL(R)=T[N-1)/R)x+0.5,可以将x跨越区间[0,R]的表查找TL(x)实现为TL(x)=tex((N-1)/R)x+0.5。

图3说明了使用纹理过滤从N=4的一维纹理实现R=4或R=1的表查找。

图3. 使用线性过滤的一维表格查找

最新文章

  1. JavaScript自动生成博文目录导航
  2. 功能齐全的图表库 ACharts
  3. AbstractMap学习记录
  4. PreparedStatement和Statment
  5. Jquery zTree结合Asp.net实现异步加载数据
  6. str、__str__ 、repr、 __repr__、``
  7. 《C/C++专项练习》 — (3)
  8. ASP.NET——两个下拉框来实现动态联动
  9. matlab里textread出现错误“Trouble reading floating point number from file (row 1, field 1)”
  10. thinkphp介绍及访问方式
  11. Java多线程窥探
  12. 如何在Cocos2D游戏中实现A*寻路算法(四)
  13. 后端开发者的Vue学习之路(二)
  14. swift 学习- 17 -- 析构器
  15. Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
  16. js实现多级复选框的交互
  17. Note of The Linux Command Line
  18. 深入理解Linux内核-访问文件
  19. Linux服务器 java生成的图片验证码乱码问题
  20. Linux信号机制代码示例

热门文章

  1. Android动态调试so库JNI_Onload函数-----基于IDA实现
  2. YII框架安装步骤(yii框架版本1.1.20,时间是2018/11)
  3. 网络原理常用CMD命令字
  4. 文件描述符fd
  5. Day003 巧妙验证短路运算
  6. 三、jmeter常用的元件及组件
  7. solidworks中 toolbox调用出现未配置的解决方法
  8. JVM核心技术(第一篇)
  9. UA: Literally Vulnerable靶机
  10. ZOHO的下一个25年:用心为企业服务