衡阳派盒市场营销有限公司

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

    文章

    5076

    瀏覽量

    103733
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4777

    瀏覽量

    129362
收藏 人收藏

    評論

    相關推薦

    C語言如何處理函數返回值

    當你在函數的最后寫上 return 0 的時候,它是如何返回給調用函數的? 比如 test 函數,為了待會更好的看懂匯編代碼,我寫成了 return 1234。 處理
    的頭像 發表于 01-16 09:21 ?84次閱讀

    如何把兩個數據返回給調用函數

    函數的處理結果包含兩個數據,如何把兩個數據返回給調用函數? 第一種,把兩個數據封裝成一個結構體,函數返回結構體。 調用
    的頭像 發表于 01-08 10:15 ?99次閱讀

    ADS1115返回值不連續是怎么回事?

    ADS1115返回值不連續,每次都是0.16.32.48......變化,不是0.1.2.3.4.....變化的,用邏輯分析儀看了讀的是對的,求教!!!
    發表于 12-02 07:31

    同樣是函數,在C和C++中有什么區別

    同樣是函數,在 C 和 C++ 中有什么區別? 第一個返回值。 C語言的函數可以不寫返回值類型,編譯器會默認為返回 int。 但是 C++
    的頭像 發表于 11-29 10:25 ?434次閱讀

    常用SQL函數及其用法

    的 SQL 函數及其用法: 一、聚合函數(Aggregate Functions) 聚合函數對一組執行
    的頭像 發表于 11-19 10:18 ?433次閱讀

    C語言經典筆試題集錦

    有以下程序,如果 x 等于 254,則函數返回值是多少?
    的頭像 發表于 11-09 11:39 ?281次閱讀

    HTTP相關返回值異常如何解決(上篇)

    ? 今天我們講講HTTP相關返回值異常如何解決(實例持續更新中) HTTP介紹 HTTP(超文本傳輸協議,Hypertext Transfer Protocol)是用于在網絡上進行數據交換的應用層
    的頭像 發表于 10-20 16:40 ?438次閱讀
    HTTP相關<b class='flag-5'>返回值</b>異常如何解決(上篇)

    面試常考+1:函數指針與指針函數、數組指針與指針數組

    函數是指返回值為指針的函數。語法:返回值類型*函數名(參數列表)。示例代碼:#include#includeint*getNumber(in
    的頭像 發表于 08-10 08:11 ?990次閱讀
    面試常考+1:<b class='flag-5'>函數</b>指針與指針<b class='flag-5'>函數</b>、數組指針與指針數組

    PGA280發送指令后無返回值是怎么回事?

    在調試PGA280的時候,給PGA280的寄存器3”set BUF time-out”(如圖)發送十六進制指令8300,本應該獲得一個19的返回值,但我們卻什么都沒有收到,PGA280沒有反應。 我們懷疑芯片因為供電的原因沒有工作。 這是我們測試板的原理圖 這是官
    發表于 08-07 06:12

    espconn_send返回值錯誤的原因?

    ); GPIO_OUTPUT_SET(0, 1);//用于通知主機,數據已經讀取完成 在這段函數里面我的espconn_send發送函數返回值串口打印出來為244,而且我接受buff的服務端也沒有接收到數據。所以請問一下這個2
    發表于 07-09 07:28

    一站式統一返回值封裝、異常處理、異常錯誤碼解決方案—最強的Sping Boot接口優雅響應處理器

    1. 前言 統一返回值封裝、統一異常處理和異常錯誤碼體系的意義在于提高代碼的可維護性和可讀性,使得代碼更加健壯和穩定。統一返回值封裝可以避免每一個接口都需要手工拼裝響應報文;統一異常處理可以將異常
    的頭像 發表于 06-20 15:42 ?650次閱讀

    請問CY68013上位機發送的返回值到底代表什么意思?

    ,剛開始一直沒問題,FPGA端接收也正常,上位機返回值也是1, 最后返回值一直是0,所以我一直認為發送失敗了,但是今天在FPGA一端抓波形發現,數據是發送過去了的,請問這個返回值到底是什么意思? 在FPGA端能接收到數據的情況下
    發表于 05-24 07:15

    請問MDK Middleware Network 中的回調函數netTCP_cb_t的返回值我在程序中怎樣才能得到并使用?

    請問MDK Middleware Network 中的回調函數netTCP_cb_t的返回值我在程序中怎樣才能得到并使用?
    發表于 04-22 07:19

    使用stm32h745zi-q nucleo開發板調試時,發現使用-specs=nano.specs時sscanf返回值錯誤,為什么?

    使用stm32h745zi-q nucleo開發板調試時,發現使用-specs=nano.specs時sscanf返回值錯誤,使用標準c庫時返回值正確,但內存溢出了,請教如何查找問題。
    發表于 04-01 08:00

    verilog中函數和任務對比

    對比,方便學習理解。 比較 函數 任務 輸入 函數至少需要包含一個輸入,端口類型不能包含inout類型 任務可以沒有或者有多個輸入,且端口聲明可以為inout類型 輸出 函數無輸出 任務可以沒有或者有多個輸出
    的頭像 發表于 02-12 18:43 ?925次閱讀
    百家乐官网增值公式| 百家乐连线游戏下载| 百家乐娱乐送白菜| 敖汉旗| 百家乐是否违法| bet365官方| 百家乐官网如何盈利| 大发888娱乐城新澳博| 作弊百家乐官网赌具价格| 全讯网新2代理| 百家乐官网游戏下裁| 百家乐园选| 百家乐官网真钱在线| 云鼎百家乐作弊| 澳门百家乐官网官网www.bjbj100.com| 卢克索百家乐的玩法技巧和规则 | 威尼斯人娱乐场骗人| 杰克百家乐官网玩法| 大发888真人娱乐场网址官网| 百家乐官网真人游戏赌场娱乐网规则 | 澳门百家乐官网必胜看路| 水果机小游戏| 百家乐官网任你博娱乐场开户注册| 现金网系统出租| 百家乐美女视频| 泽州县| 自贡百家乐娱乐场开户注册| 如何看百家乐官网路| 大发888真钱游戏下载| 百家乐赌场老千| 网上百家乐官网公式| 蓝盾百家乐洗码| 权威百家乐官网信誉网站| 顶级赌场官网下载| 百家乐博彩开户博彩通| 百家乐官网路单纸下载| 十三张百家乐的玩法技巧和规则 | 百家乐攻略投注法| 博狗投注| 百家乐游戏机破解方法| 菲律宾百家乐官网试玩|