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. hdu 1814 字典序最小的2sat(暴力深搜)

    题意:      题意就是最基础的2sat,关系只有矛盾关系,然后二选一,关键是这个题目是输出字典序最小的那组解. 思路:      输出字典序最小,用强连通那个实现不了(起码没看到有人实现),其实我 ...

  2. 从苏宁电器到卡巴斯基第16篇:我在苏宁电器当营业员 VIII

    其实不想走,其实很想留 我在之前的故事中说过,在大四的时候,我其实是想考研的,但是看了一段时间的书以后,发现自己实在不是那块料,主要是数学实在是学不明白,那么也就只能作罢了.而后来面试中石化的时候,尽 ...

  3. adbi学习:java hook实现机制

    adbi的java hook实现代码ddi不在之前下载的文件中,下载地址:https://github.com/crmulliner/ddi,具体的编译看readme里面很详细的介绍了.注意ddi代码 ...

  4. POJ1789简单小生成树

    题意:       给你一些车牌号,然后另一两个车牌号之间的权值就是这两个字符串之间相同位置不同字母的个数,然后求最小生成树. 思路:       裸题,不解释了. #include<stdio ...

  5. (CV学习笔记)看图说话(Image Captioning)-1

    Background 分别使用CNN和LSTM对图像和文字进行处理: 将两个神经网络结合: 应用领域 图像搜索 安全 鉴黄 涉猎知识 数字图像处理 图像读取 图像缩放 图像数据纬度变换 自然语言处理 ...

  6. php 获取某文件夹(比如共享文件夹)下图片并下载并压缩成zip

    1.前端部分:直接请求 2.后端php //zip下载public function downZip(){ $pro_code = "test"; //zip名称 //获取列表 $ ...

  7. 那些好用的 VS Code 插件,究竟是如何提高编码效率的?

    在上一篇文章中我们已经对 vscode 插件有了一个初步的认识与了解了,接下去我们就要"揭秘"一下市面上那些好用的 vscode 插件究竟是如何帮我们提高工作效率的. 本文首发于「 ...

  8. Educational Codeforces Round 96 (Rated for Div. 2)

    A. Number of Apartments 题意:求方程的解 思路:直接模拟就行 代码: #include<iostream> #include<cstdio> #incl ...

  9. 异步阻塞,Manager模块,线程

    一.异步阻塞 1.并没有按照执行顺序等待结果 2.而是所有的任务都在异步执行着 3.但是我要的结果又不知道谁的结果先来,谁先结束我就先取谁的结果 很明显的异步,大家都相互执行着(异步过程),谁先结束我 ...

  10. 一文学完makefile语法

    一.开始 1.Hello World 新建一个makefile文件,写入如下内容, hello: echo "Hello World" clean: echo "clea ...