0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何计算Texture Functions的纹理函数返回值

星星科技指导员 来源:NVIDIA 作者:Ken He 2022-05-07 15:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本附录给出了用于计算 Texture Functions 的纹理函数返回值的公式,具体取决于纹理引用的各种属性(请参阅纹理和表面内存)。

绑定到纹理引用的纹理表示为一个数组 T

一维纹理的 N 个texels,

二维纹理的 N x M texels,

三维纹理的 N x M x L texels。

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

J.1. Nearest-Point Sampling

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

tex(x)=T[i] 对于一维纹理,

tex(x,y)=T[i,j] 对于二维纹理,

tex(x,y,z)=T[i,j,k] 对于三维纹理,

其中 i=floor(x),j=floor(y),k=floor(z)。

下图 说明了 N=4 的一维纹理的最近点采样。

对于整数纹理,纹理获取返回的值可以选择重新映射到 [0.0, 1.0](请参阅纹理内存)。

1.png

J.2. Linear Filtering

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

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,

其中:

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)。

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

2.png

J.3. Table Lookup

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

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

3.png

关于作者

Ken He 是 NVIDIA 企业级开发者社区经理 & 高级讲师,拥有多年的 GPU人工智能开发经验。自 2017 年加入 NVIDIA 开发者社区以来,完成过上百场培训,帮助上万个开发者了解人工智能和 GPU 编程开发。在计算机视觉,高性能计算领域完成过多个独立项目。并且,在机器人无人机领域,有过丰富的研发经验。对于图像识别,目标的检测与跟踪完成过多种解决方案。曾经参与 GPU 版气象模式GRAPES,是其主要研发者。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5694

    浏览量

    110118
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5272

    浏览量

    136070
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    函数指针介绍

    这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,是一个数值 int *fun(int x,int y); 这和上面那个函数唯一的区别就是在
    发表于 01-21 08:11

    C语言回调函数原来这么简单

    函数指针:函数指针是指向函数的指针变量。简单理解是指向函数名的指针变量。 函数指针既然是指向函数
    发表于 12-30 06:45

    如何用好 C 语言函数返回值

    可能会比较复杂,不同的输入,常常产生不同的输出结果。 C语言函数返回值 C语言函数可以通过返回值表示输出结果,例如 log() 函数
    发表于 12-25 07:17

    函数指针及指针函数的区别

    指针的函数,即本质是一个函数函数返回类型是某一类型的指针   类型标识符 *函数名(参数表)   int *f(x,y);   首先它是一
    发表于 12-12 06:34

    函数指针的概念

    函数返回值类型 (* 指针变量名) (函数参数列表); “函数返回值类型”表示该指针变量可以指向具有什么
    发表于 12-11 08:10

    使用setjmp及longjmp函数处理异常

    ) { // 调用foo函数,传入一个非零 foo(10); // 调用foo函数,传入一个零 foo(0); } else { // 如果
    发表于 12-11 08:00

    检查函数返回值的错误和异常处理方法

    检查函数返回值:这是最常见也最基本的错误处理和异常处理方法,就是在调用一个函数后,检查其返回值是否符合预期或是否表示出错或失败。如果出错或失败,则根据
    发表于 12-11 06:48

    飞凌嵌入式ElfBoard-文件I/O的了解探究之错误的退出操作

    函数原型 void exit(int status); 3.参数 status:表示程序退出的返回值。 4.返回值 无。 5.示例 #include #include #include int
    发表于 11-22 08:33

    飞凌嵌入式ElfBoard-文件I/O的了解探究之返回错误处理与相关函数

    函数返回值描述段,如下所示,当函数返回错误时会设置errno:RETURN VALUE open(), openat(), and creat() return the new fil
    发表于 11-21 08:50

    如何获取易贝EBAY商品详情 API 返回值说明?

    的API获取商品详情时,通常会返回一个JSON或XML格式的响应,这个响应包含了商品的详细信息。以下是一个简化的JSON格式的eBay商品详情API返回值示例及说明:   json代码解读复制代码
    的头像 发表于 11-19 11:57 560次阅读

    飞凌嵌入式ElfBoard-标准IO接口之检查和复位

    所指文件的错误标志是否存在。1)头文件#include 2)函数原型int ferror(FILE *stream); 3)参数stream:要读取的文件。4)返回值如果返回一个非零
    发表于 11-13 08:56

    如何获得速卖通aliexpress分类详情 API 返回值说明

    的API返回值会取决于你使用的API版本和请求类型。 以下是一个假设性的速卖通分类详情API返回值的说明,但请注意,这并非实际的API返回结构,因为速卖通的具体API文档可能不为公众公开。在实际开发中,你应当查阅速卖通官方的AP
    的头像 发表于 11-09 17:46 1201次阅读

    蜂鸟E203的GPIO读取的返回值注意事项

    蜂鸟E203使用Nuclei Studio开发,使用库函数中的gpio_read()读取IO口的输入时,当IO口是高电平时,使用函数所得到的返回值与IO口的编号存在一定的关系。 例如
    发表于 10-22 08:05

    使用jQuery的常用方法与返回值分析

    使用jQuery的常用方法与返回值分析 jQuery是一个轻量级的JavaScript库,旨在简化HTML文档遍历和操作、事件处理以及动画效果的创建。本文将介绍一些常用的jQuery方法及其返回值
    发表于 10-01 20:18

    请问CY68013上位机发送的返回值到底代表什么意思?

    ,为0时代表发送失败,刚开始一直没问题,FPGA端接收也正常,上位机返回值也是1, 最后返回值一直是0,所以我一直认为发送失败了,但是今天在FPGA一端抓波形发现,数据是发送过去了的,请问这个返回值到底是什么意思? 在FPGA端
    发表于 05-22 07:16