99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

Dbwd_Imgtec ? 來源:未知 ? 作者:李倩 ? 2018-07-05 16:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、深度

所謂深度,就是在openGL坐標(biāo)系中,像素點(diǎn)Z坐標(biāo)距離攝像機(jī)的距離。攝像機(jī)可能放在坐標(biāo)系的任何位置,那么,就不能簡單的說Z數(shù)值越大或越小,就是越靠近攝像機(jī)。

2、深度緩沖區(qū)

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

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

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

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

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

數(shù)學(xué)基礎(chǔ):

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

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

結(jié)果 z' 是在 -1 到 1 之間歸一化之后的值,其中近距 near 平面位于 -1 處,遠(yuǎn)距 far 平面位于 1 處。在這個(gè)范圍之外的相應(yīng)點(diǎn)在視圖體之外,不需要進(jìn)行渲染。

為了實(shí)現(xiàn)深度緩沖,在整個(gè)屏幕空間上的對(duì)當(dāng)前多邊形頂點(diǎn)之間進(jìn)行插值來計(jì)算 z' 的值,通常這些中間數(shù)值在深度緩沖區(qū)中用定點(diǎn)數(shù)格式保存。距離近距 near 平面越近,z' 值越密;距離越遠(yuǎn),z' 值越稀。這樣距離照相機(jī)越近精度越高。near 平面距離照相機(jī)越近,則遠(yuǎn)距離位置的精度越低。near 平面距離照相機(jī)太近是在遠(yuǎn)距離物體產(chǎn)生人為誤差的一個(gè)常見因素。

3、深度測試

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • OpenGL
    +關(guān)注

    關(guān)注

    1

    文章

    86

    瀏覽量

    29870
  • 緩存器
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    11883

原文標(biāo)題:OpenGL中的深度、深度緩存、深度測試

文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    談?wù)?b class='flag-5'>深度無盤緩存工具設(shè)置技巧

    。經(jīng)過本人這段時(shí)間一直在實(shí)際環(huán)境測試深度無盤服務(wù)端自帶的IO讀緩存深度無盤緩存工具,發(fā)現(xiàn)這兩
    發(fā)表于 07-15 13:24

    分享用深度無盤做的單包啟動(dòng)的6種不同配置客戶機(jī)

    ,這個(gè)速度還是不錯(cuò)的。經(jīng)過本人反復(fù)測試,發(fā)現(xiàn)集成到IO里面的讀緩存沒有深度緩存工具里面讀緩存效果好,深度
    發(fā)表于 07-15 14:39

    淺談示波器的存儲(chǔ)深度

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

    淺談示波器的存儲(chǔ)深度

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

    FPGA的最大深度

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

    Nanopi深度學(xué)習(xí)之路(1)深度學(xué)習(xí)框架分析

    學(xué)習(xí),也就是現(xiàn)在最流行的深度學(xué)習(xí)領(lǐng)域,關(guān)注論壇的朋友應(yīng)該看到了,開發(fā)板試用活動(dòng)中有【NanoPi K1 Plus試用】的申請(qǐng),介紹NanopiK1plus的高大上優(yōu)點(diǎn)之一就是“可運(yùn)行深度學(xué)習(xí)算法的智能
    發(fā)表于 06-04 22:32

    深度學(xué)習(xí)的圖片如何增強(qiáng)

    深度學(xué)習(xí)的圖片增強(qiáng)
    發(fā)表于 05-28 07:03

    深度學(xué)習(xí)的IoU概念

    深度學(xué)習(xí)的IoU概念理解
    發(fā)表于 05-29 09:24

    深度學(xué)習(xí)DeepLearning實(shí)戰(zhàn)

    測試)三、主講內(nèi)容1:課程一、強(qiáng)化學(xué)習(xí)簡介課程二、強(qiáng)化學(xué)習(xí)基礎(chǔ)課程三、深度強(qiáng)化學(xué)習(xí)基礎(chǔ)課程四、多智能體深度強(qiáng)化學(xué)習(xí)課程五、多任務(wù)深度強(qiáng)化學(xué)習(xí)課程六、強(qiáng)化學(xué)習(xí)應(yīng)用課程七、仿真實(shí)驗(yàn)課程八、
    發(fā)表于 01-09 17:01

    深度學(xué)習(xí)在預(yù)測和健康管理的應(yīng)用

    深度學(xué)習(xí)在預(yù)測和健康管理的應(yīng)用綜述摘要深度學(xué)習(xí)對(duì)預(yù)測和健康管理(PHM)引起了濃厚的興趣,因?yàn)樗哂袕?qiáng)大的表示能力,自動(dòng)化的功能學(xué)習(xí)能力以及解決復(fù)雜問題的一流性能。本文調(diào)查了使用深度
    發(fā)表于 07-12 06:46

    EDX與XPS測試時(shí)采樣深度的差別?

    XPS采樣深度為2-5nm,EDS采樣深度大約為1um,對(duì)于不同采樣深度有區(qū)別,金屬樣品采樣深度較淺。蘇試宜特實(shí)驗(yàn)室提供解答
    發(fā)表于 09-30 18:36

    深度學(xué)習(xí)存在哪些問題?

    深度學(xué)習(xí)常用模型有哪些?深度學(xué)習(xí)常用軟件工具及平臺(tái)有哪些?深度學(xué)習(xí)存在哪些問題?
    發(fā)表于 10-14 08:20

    什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?

    什么是深度學(xué)習(xí)為了解釋深度學(xué)習(xí),有必要了解神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)是一種模擬人腦的神經(jīng)元和神經(jīng)網(wǎng)絡(luò)的計(jì)算模型。作為具體示例,讓我們考慮一個(gè)輸入圖像并識(shí)別圖像對(duì)象類別的示例。這個(gè)例子對(duì)應(yīng)機(jī)器學(xué)習(xí)
    發(fā)表于 02-17 16:56

    渲染的幀緩存深度緩存

    渲染涉及大量的緩存,這里緩存只是一個(gè)簡單的存有像素?cái)?shù)據(jù)的矩形內(nèi)存塊,最重要緩存是幀緩存深度緩存
    的頭像 發(fā)表于 05-14 11:44 ?7224次閱讀
    渲染<b class='flag-5'>中</b>的幀<b class='flag-5'>緩存</b>和<b class='flag-5'>深度</b><b class='flag-5'>緩存</b>

    如何通過MEC構(gòu)造基于深度學(xué)習(xí)的自動(dòng)駕駛汽車緩存

    本文通過使用部署在多接入邊緣計(jì)算(MEC)結(jié)構(gòu)上的深度學(xué)習(xí)方法,為自動(dòng)駕駛汽車提出了基于深度學(xué)習(xí)的緩存。通過仿真測試,結(jié)果發(fā)現(xiàn)該方法可以最大限度地減少延遲。
    的頭像 發(fā)表于 10-10 09:26 ?4783次閱讀