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. 使用线性过滤的一维表格查找

CUDA C 纹理提取Texture Fetching的更多相关文章

  1. CUDA一维纹理内存

    纹理一词来源于GPU图形世界,GPU通用并行计算"盗用"了纹理一词,定义了一个纹理内存的概念.纹理内存缓存在 设备上,在某些情况下能减少对内存的请求并降低内存带宽的使用,是专门为那 ...

  2. Unity3d用户手册用户指南 电影纹理(Movie Texture)

    http://www.58player.com/blog-2327-952.html 电影纹理(Movie Texture) 注意:这只是专业/高级功能.   桌面 电影纹理是从视频文件创建的动画纹理 ...

  3. 实时渲染基础(4)纹理(Texture)

    目录 纹理映射(Texture Mapping) 球形贴图(Spherical Map) 立方体贴图(Cube Map) 纹理走样问题 Mipmap 各向异性过滤(Ripmap) 纹理应用技术(Tex ...

  4. CUDA:纹理内存

    纹理内存: 与常量内存类似,纹理内存是另一种形式的只读内存,并且同样缓存在芯片上.因此某些情况下能够减少对内存的请求并提供高效的内存带宽.纹理内存是专门为那些在内存访问模式中存在大量空间局部性的图形应 ...

  5. OpenGL: 纹理采样 texture sample

    Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...

  6. 制作UI纹理(UI Texture)

    什么情况下使用UI Texture UI Texture的功能是在屏幕上显示一张图片,在这一点上它和Sprite有着相似的功能,但是UI Texture会消耗单独的DrawCall去渲染,并会单独加载 ...

  7. three.js 加入纹理(texture)的方法及注意事项

    var texture = new THREE.TextureLoader().load( './img/1.png' ); var box_show = new THREE.CubeGeometry ...

  8. OpenGL ES: 纹理采样 texture sample

    Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...

  9. 卷积神经网络图像纹理合成 Texture Synthesis Using Convolutional Neural Networks

    代码实现 概述 这是关于Texture Synthesis Using Convolutional Neural Networks论文的tensorflow2.0代码实现,使用keras预训练的VGG ...

随机推荐

  1. 不可不知的CSS小技巧

    一.表单部分 1.禁止textarea文本域的缩放 resize:none; 2.去除初始化textarea下拉条 overflow:auto; 3.如何让表单中的选项按钮,点击文字也能选中? < ...

  2. hdu5014 构造b数列使得t最大(小想法)

    题意:      给你一个序列a,他有n+1个数,每个数的范围是ai >= 0 && a[i] <= n,同时任意两个数字都是不相同的,就是ai != aj (i!=j), ...

  3. Linux下磁盘分区、卸载和磁盘配额

    目录 一:查看磁盘信息 二:Linux磁盘分区 三:Linux分区的卸载 四:Linux磁盘配额 一:查看磁盘信息 fdisk : 这个命令是磁盘分区表操作工具,fdisk能将磁盘分区,同时也能为每个 ...

  4. Python脚本自动化破解大白鲨摄像头(Shodan)

    关于本文的技术知识点,Shodan模块的用法,传送门-->  Python中shadon模块的使用    Shodan的使用 今天我们要利用python进行自动化破解的摄像头叫大白鲨摄像头,他的 ...

  5. IIS6目录解析漏洞的实验

    ​​​​​​​​​​Windows 打开IIS管理器的方式 这个是网站IIS网站目录 右击默认网站中的属性,可以查看网站的属性,比如网站根目录,或者是端口 这个是网站的目录C:\www,有三个文件分别 ...

  6. Portswigger web security academy:Server-side request forgery (SSRF)

    Portswigger web security academy:Server-side request forgery (SSRF) 目录 Portswigger web security acad ...

  7. unity怎么把工程打包成unitypackage文件

    unity怎么把工程打包成unitypackage文件 想探讨问题的原因 上课的时候,看到老师的磁盘都要爆满了,主要的原因是同学们提交的2DGameKit,工程文件太大了. 文件没有压缩,占用空间是2 ...

  8. upload

    File saveDir=new File("D:/Test/UPLOAD"); if(!saveDir.isDirectory()){ saveDir.mkdirs(); } F ...

  9. SpringBoot项目启动后自动打开浏览器

    编写一个类,注册为Spring的Bean,然后实现CommandLineRunner接口,重写run()方法即可 @Component public class OpenBrowser impleme ...

  10. 解决上传文件大小限制 PHP+Apache

    1.设置Apache文件大小上传限制 http.conf文件(apache/config目录下)添加如下设置(1G=1024*1024*1024): FcgidMaxRequestLen  53687 ...