色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenGL中的深度、深度緩存、深度測試

Dbwd_Imgtec ? 來源:未知 ? 作者:李倩 ? 2018-07-05 16:49 ? 次閱讀

1、深度

所謂深度,就是在openGL坐標系中,像素點Z坐標距離攝像機的距離。攝像機可能放在坐標系的任何位置,那么,就不能簡單的說Z數值越大或越小,就是越靠近攝像機。

2、深度緩沖區

深度緩沖區原理就是把一個距離觀察平面(近裁剪面)的深度值(或距離)與窗口中的每個像素相關聯。

首先,使用glClear(GL_DEPTH_BUFFER_BIT),把所有像素的深度值設置為最大值(一般是遠裁剪面)。

然后,在場景中以任意次序繪制所有物體。硬件或者軟件所執行的圖形計算把每一個繪制表面轉換為窗口上一些像素的集合,此時并不考慮是否被其他物體遮擋。

其次,OpenGL會計算這些表面和觀察平面的距離。如果啟用了深度緩沖區,在繪制每個像素之前,OpenGL會把它的深度值和已經存儲在這個像素的深度值進行比較。新像素深度值<原先像素深度值,則新像素值會取代原先的;反之,新像素值被遮擋,他顏色值和深度將被丟棄。

為了啟動深度緩沖區,必須先啟動它,即glEnable(GL_DEPTH_TEST)。每次繪制場景之前,需要先清除深度緩沖區,即glClear(GL_DEPTH_BUFFER_BIT),然后以任意次序繪制場景中的物體。

數學基礎:

待渲染的照相機空間中的深度經常定義為近距 near 到遠距 far 之間的 z 值,Z坐標和X、Y坐標一樣。在變換、裁減和透視除法后,Z的范圍為-1.0~1.0。DepthRange映射指定Z坐標的變換,這與用于將X和Y映射到窗口坐標的視口變換類似,在透視變換之后,得到新的 z' 值:

其中 z 是照相機空間的值,它有時候也表示為 w 或者 w'。

結果 z' 是在 -1 到 1 之間歸一化之后的值,其中近距 near 平面位于 -1 處,遠距 far 平面位于 1 處。在這個范圍之外的相應點在視圖體之外,不需要進行渲染。

為了實現深度緩沖,在整個屏幕空間上的對當前多邊形頂點之間進行插值來計算 z' 的值,通常這些中間數值在深度緩沖區中用定點數格式保存。距離近距 near 平面越近,z' 值越密;距離越遠,z' 值越稀。這樣距離照相機越近精度越高。near 平面距離照相機越近,則遠距離位置的精度越低。near 平面距離照相機太近是在遠距離物體產生人為誤差的一個常見因素。

3、深度測試

OpenGL中的深度測試是采用深度緩存器算法,消除場景中的不可見面。在默認情況下,深度緩存中深度值的范圍在0.0到1.0之間,這個范圍值可以通過函數:glDepthRange (nearNormDepth, farNormalDepth);將深度值的范圍變為nearNormDepth到farNormalDepth之間。這里nearNormDepth和farNormalDepth可以取0.0到1.0范圍內的任意值,甚至可以讓nearNormDepth > farNormalDepth。這樣,通過glDepthRange函數可以在透視投影有限觀察空間中的任意區域進行深度測試。

另一個非常有用的函數是:glClearDepth (maxDepth);參數maxDepth可以是0.0到1.0范圍內的任意值。glClearDepth用maxDepth對深度緩存進行初始化,而默認情況下,深度緩存用1.0進行初始化。由于在進行深度測試中,大于深度緩存初始值的多邊形都不會被繪制,因此glClearDepth函數可以用來加速深度測試處理。這里需要注意的是指定了深度緩存的初始化值之后,應調用: glClear(GL_DEPTH_BUFFER_BIT); 完成深度緩存的初始化。

在深度測試中,默認情況是將需要繪制的新像素的z值與深度緩沖區中對應位置的z值進行比較,如果比深度緩存中的值小,那么用新像素的顏色值更新幀緩存中對應像素的顏色值。這種比較測試的方式可以通過函數:glDepthFunc(func);進行修改。其中參數func的值可以為GL_NEVER(沒有處理)、GL_ALWAYS(處理所有)、GL_LESS(小于)、GL_LEQUAL(小于等于)、GL_EQUAL(等于)、GL_GEQUAL(大于等于)、GL_GREATER(大于)或GL_NOTEQUAL(不等于),其中默認值是GL_LESS。這些測試可以在各種應用中減少深度緩存處理的的計算。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OpenGL
    +關注

    關注

    1

    文章

    85

    瀏覽量

    29243
  • 緩存器
    +關注

    關注

    0

    文章

    63

    瀏覽量

    11658

原文標題:OpenGL中的深度、深度緩存、深度測試

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    談談深度無盤緩存工具設置技巧

    。經過本人這段時間一直在實際環境測試深度無盤服務端自帶的IO讀緩存深度無盤緩存工具,發現這兩
    發表于 07-15 13:24

    分享用深度無盤做的單包啟動的6種不同配置客戶機

    ,這個速度還是不錯的。經過本人反復測試,發現集成到IO里面的讀緩存沒有深度緩存工具里面讀緩存效果好,深度
    發表于 07-15 14:39

    淺談示波器的存儲深度

    1MHz),這對于我們選擇示波器帶寬來說300MHz的示波器帶寬相對于幾百KHz的電源開關頻率來說已經足夠,但很多時候我們卻忽略了對采樣率和存儲深度的選擇.比如說在常見的開關電源的測試,電壓開關的頻率一般
    發表于 05-07 10:46

    淺談示波器的存儲深度

    二進制波形信息存儲到示波器的高速CMOS內存,就是示波器的存儲,這個過程是“寫過程”。內存的容量(存儲深度)是很重要的。對于DSO,其最大存儲深度是一定的,但是在實際測試中所使用的存
    發表于 08-10 16:02

    FPGA的最大深度

    被用作系統的緩沖元件或隊列。因此FIFO的大小基本上暗示了所需緩存數據的容量,該容量取決于讀寫數據的速率。FIFO深度計算=B-B*F2/(F1*I), B為突發數據塊大小
    發表于 05-28 14:17

    Nanopi深度學習之路(1)深度學習框架分析

    學習,也就是現在最流行的深度學習領域,關注論壇的朋友應該看到了,開發板試用活動中有【NanoPi K1 Plus試用】的申請,介紹NanopiK1plus的高大上優點之一就是“可運行深度學習算法的智能
    發表于 06-04 22:32

    深度學習的圖片如何增強

    深度學習的圖片增強
    發表于 05-28 07:03

    深度學習的IoU概念

    深度學習的IoU概念理解
    發表于 05-29 09:24

    深度學習DeepLearning實戰

    測試)三、主講內容1:課程一、強化學習簡介課程二、強化學習基礎課程三、深度強化學習基礎課程四、多智能體深度強化學習課程五、多任務深度強化學習課程六、強化學習應用課程七、仿真實驗課程八、
    發表于 01-09 17:01

    深度學習在預測和健康管理的應用

    深度學習在預測和健康管理的應用綜述摘要深度學習對預測和健康管理(PHM)引起了濃厚的興趣,因為它具有強大的表示能力,自動化的功能學習能力以及解決復雜問題的一流性能。本文調查了使用深度
    發表于 07-12 06:46

    EDX與XPS測試時采樣深度的差別?

    XPS采樣深度為2-5nm,EDS采樣深度大約為1um,對于不同采樣深度有區別,金屬樣品采樣深度較淺。蘇試宜特實驗室提供解答
    發表于 09-30 18:36

    深度學習存在哪些問題?

    深度學習常用模型有哪些?深度學習常用軟件工具及平臺有哪些?深度學習存在哪些問題?
    發表于 10-14 08:20

    什么是深度學習?使用FPGA進行深度學習的好處?

    什么是深度學習為了解釋深度學習,有必要了解神經網絡。神經網絡是一種模擬人腦的神經元和神經網絡的計算模型。作為具體示例,讓我們考慮一個輸入圖像并識別圖像對象類別的示例。這個例子對應機器學習
    發表于 02-17 16:56

    渲染的幀緩存深度緩存

    渲染涉及大量的緩存,這里緩存只是一個簡單的存有像素數據的矩形內存塊,最重要緩存是幀緩存深度緩存
    的頭像 發表于 05-14 11:44 ?6337次閱讀
    渲染<b class='flag-5'>中</b>的幀<b class='flag-5'>緩存</b>和<b class='flag-5'>深度</b><b class='flag-5'>緩存</b>

    如何通過MEC構造基于深度學習的自動駕駛汽車緩存

    本文通過使用部署在多接入邊緣計算(MEC)結構上的深度學習方法,為自動駕駛汽車提出了基于深度學習的緩存。通過仿真測試,結果發現該方法可以最大限度地減少延遲。
    的頭像 發表于 10-10 09:26 ?4532次閱讀
    主站蜘蛛池模板: 国产精品久久久久久精品... | 高清撒尿hdtube撒尿| 含羞草在线免费观看| 色男人综合| 把内衣脱了把奶露出来| 美女逼逼毛茸茸| 在线黑人抽搐潮喷| 久久久久综合网| 在线观看国产日韩| 久久精品热在线观看30| 一二三四韩国免费观看| 九九99热久久999精品| 亚洲视频在线观看地址| 国语精彩对白2021| 小色哥影院| 国产午夜精品久久理论片小说| 四虎影视永久无码精品| 国产精品AV视频一二三区| 失禁h啪肉尿出来高h| 国产精品人妻午夜福利| 无人在线观看免费高清视频播放| 国产精品一国产精品免费| 小sao货ji巴cao死你视频| 国产色偷偷男人的天堂| 亚洲精品动漫免费二区| 久久机热视频免费| 37大但人文艺术A级都市天气| 欧美GV肉片视频免费观看| 成 人 动漫3d 在线看| 色情www日本欧美| 国产在线精品亚洲观看不卡欧美| 伊人角狠狠狠狠| 欧美性爱 成人| 国产精品爽爽久久久久久蜜桃网站| 亚洲精品无码AAAAAA片| 久久棋牌评测| 被免费网站在线视频| 香蕉99久久久久成人麻豆| 久久久免费观看| 苍井空教师BD在线观看全集| 午夜不卡av免费|