在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

OpenGL中的頂點(diǎn)、 圖元、片元、像素的含義解讀

汽車電子技術(shù) ? 來源:apr01博客 ? 作者:apr01博客 ? 2022-10-18 15:12 ? 次閱讀

頂點(diǎn)(vertexs) 圖元(primitives) 片元(fragments,又叫片斷) 像素(pixels)

階段1. 頂點(diǎn) - > 圖元

幾何頂點(diǎn)被組合為圖元(點(diǎn),線段或多邊形),然后圖元被合成片元,最后片元被轉(zhuǎn)換為幀緩存中的象素?cái)?shù)據(jù)。

階段2. 圖元 - > 片元

圖元被分幾步轉(zhuǎn)換為片元:圖元被適當(dāng)?shù)牟眉簦伾图y理數(shù)據(jù)也相應(yīng)作出必要的調(diào)整,相關(guān)的坐標(biāo)被轉(zhuǎn)換為窗口坐標(biāo)。最后,光柵化將裁剪好的圖元轉(zhuǎn)換為片元。

1) 裁剪

在裁剪時(shí)點(diǎn),線段和多邊形處理略微不同。對(duì)于點(diǎn),要么保留原始狀態(tài)(在裁剪體內(nèi)部),要么被裁掉(在裁剪體外部)。對(duì)于線段和多邊形來說,如果部分在裁剪體外部,則需要在裁剪點(diǎn)生成新的幾何頂點(diǎn)。對(duì)于多邊形,還需要在新增的頂點(diǎn)間增加完整的邊。不論裁剪了線段還是多邊形,都需要給新增幾何點(diǎn)賦予邊界標(biāo)志、法線、顏色和紋理坐標(biāo)信息

裁剪過程時(shí)兩步:

a 應(yīng)用程序指定裁剪(Application-specific clipping),一旦組合圖元完成后,如果在程序中用glClipPlane()函數(shù)定義了任意的裁剪面,就進(jìn)行裁剪。

b 視景體裁剪(View volume clipping),隨后,圖元被投影矩陣投影(進(jìn)入裁剪坐標(biāo)系),被相應(yīng)的視景體裁剪。投影矩陣可以由glFrustum() 或者glOrtho()定義,投影矩陣的操作和上面其他矩陣變換的操作相同。

2) 轉(zhuǎn)換到窗口坐標(biāo)

裁剪坐標(biāo)在轉(zhuǎn)換為窗口坐標(biāo)之前,要除以規(guī)格化設(shè)備坐標(biāo)(normalized device coordinates)的w值進(jìn)行規(guī)范化。然后對(duì)這些規(guī)范化數(shù)據(jù)進(jìn)行視口變換(viewport)計(jì)算生成窗口坐標(biāo)。可以用glDepthRange()和glViewport()控制視口大小,決定屏幕上顯示圖象的區(qū)域。

3) 光柵化

光柵化是將一個(gè)圖元轉(zhuǎn)變?yōu)橐粋€(gè)二維圖象(其實(shí)只是布滿平面,沒有真正的替換幀緩存區(qū))的過程。二維圖象上每個(gè)點(diǎn)都包含了顏色、深度和紋理數(shù)據(jù)。將該點(diǎn)和相關(guān)信息叫做一個(gè)片元(fragment)。(yuyu注:這就是片元和像素之間的關(guān)鍵區(qū)別,雖然兩者的直觀印象都是的像素,但是片元比像素多了許多信息,在光柵化中紋理映射之后圖元信息轉(zhuǎn)化為了像素)在這個(gè)階段,對(duì)象素繪制和位圖進(jìn)行操作需要用到當(dāng)前柵格位置(用glRasterPos*()定義)。正如上面討論的,三種圖元的光柵化方法是不同的,另外,象素塊和位圖也需要光柵化。

a)圖元

采用glPointSize(), glLineWidth(), glLineStipple()和 glPolygonStipple()函數(shù)可以選擇圖元的光柵化維數(shù)和模式。另外,還可以用glCullFace(), glFrontFace()和glPolygonMode()控制多邊形正反面不同的光柵化效果。

b)像素

有幾個(gè)函數(shù)實(shí)現(xiàn)像素保存和轉(zhuǎn)換。函數(shù)glPixelStore*()用于內(nèi)存中的像素是如何保存的。glPixelTransfer*() and glPixelMap*()用于像素在寫入幀緩沖區(qū)前是如何處理的。glDrawPixels()定義了一個(gè)像素矩形。用glPixelZoom()實(shí)現(xiàn)像素的縮放。

c)位圖

位圖是具有特定片元模式的0和1的矩形。每個(gè)片元有相同的相關(guān)數(shù)據(jù)。可以用glBitmap()定義。

d)紋理存儲(chǔ)

紋理貼圖是將指定的部分紋理圖象映射到每個(gè)圖元上。每個(gè)片元(fragment)具有的紋理坐標(biāo)屬性,該坐標(biāo)與紋理圖象坐標(biāo)對(duì)應(yīng),得到紋理圖象該位置的顏色值來修改片元的RGBA顏色,從而完成這個(gè)映射過程。用glTexImage2D()或glTexImage1D()來定義紋理圖象。glTexParameter*()和glTexEnv*()來控制紋理如何解釋和應(yīng)用到一個(gè)片元上。

e)霧

已經(jīng)光柵化的片元具有紋理貼圖修正后顏色,可以采用融合因子再融合霧顏色,該融合因子大小根據(jù)視點(diǎn)和片元間的距離來定。用glFog*()指定霧化顏色和融合因子。

階段3. 片元->像素

OpenGL允許光柵化生成一個(gè)片元,只要該片元通過一系列檢測(cè)就可以修改幀緩沖區(qū)中對(duì)應(yīng)像素。如果它通過測(cè)試,片元數(shù)據(jù)可以直接替換幀緩沖區(qū)中的已有值,或者和已有值合并,這取決于設(shè)置的模式。

1)像素所有權(quán)(ownership)檢測(cè)

第一個(gè)測(cè)試是判斷在幀緩沖區(qū)中的像素所對(duì)應(yīng)的某個(gè)片元是否屬于當(dāng)前OpenGL上下文。如果屬于,片元進(jìn)行下一個(gè)測(cè)試。如果不屬于,窗口系統(tǒng)決定是否忽略該片元,或者是否進(jìn)行下一步片元操作。

2)裁剪檢測(cè)

用glScissor()函數(shù),可以定義一個(gè)任意屏幕校準(zhǔn)矩形,在該矩形外的片元將被忽略。

3)Alpha檢測(cè)

Alpha測(cè)試只能在RGBA模式下進(jìn)行,如果片元的alpha值超出一個(gè)固定參照值,片元將被忽略,這個(gè)比較函數(shù)可以用glAlphaFunc()實(shí)現(xiàn)并設(shè)定參考值。

4)模版檢測(cè)

當(dāng)模版緩沖區(qū)的值超出一個(gè)參照值,模版測(cè)試將有條件的忽略該片元。這個(gè)比較函數(shù)和固定值可以用glStencilFunc()實(shí)現(xiàn)。不論圖元通過或沒有通過模版測(cè)試,模版緩沖區(qū)中的值會(huì)根據(jù)glStencilOp()函數(shù)進(jìn)行修改。

5)深度檢測(cè)

當(dāng)深度緩沖區(qū)的值與參照值的比較失敗,深度測(cè)試忽略該片元。GlDepthFuc()用來執(zhí)行這個(gè)比較命令。如果模版啟用,深度比較的結(jié)果會(huì)影響模版緩沖區(qū)值的更新。

6)融合

融合合并了一個(gè)片元R、G、B和A值和存儲(chǔ)在幀緩沖區(qū)對(duì)應(yīng)位置的這些值。融合只能在RGBA模式下實(shí)現(xiàn),它的實(shí)現(xiàn)需要片元的alpha值和對(duì)應(yīng)當(dāng)前存儲(chǔ)象素,還需要RGB值。用glBendFun()控制,可以修改融合因子的源和目標(biāo)。

7)抖動(dòng)

如果啟動(dòng)抖動(dòng),片元的顏色或者顏色索引采用抖動(dòng)算法。這個(gè)算法只需要片元的顏色值和它的x和y坐標(biāo)。

8)邏輯操作

最后,在片元和幀緩沖區(qū)對(duì)應(yīng)值之間要進(jìn)行一個(gè)邏輯操作,結(jié)果將替換當(dāng)前幀緩沖區(qū)的值。用glLogicOp定義想要的邏輯操作。這個(gè)邏輯操作只能在顏色索引模式下運(yùn)行,而不能在RGBA模式運(yùn)行。

像素

在OpenGL流水線的上個(gè)階段,片元轉(zhuǎn)換為幀緩沖區(qū)中的像素。幀緩沖區(qū)實(shí)際上是一組邏輯緩沖區(qū)——包括顏色緩沖區(qū)、深度緩沖區(qū)、模版緩沖區(qū)和累積緩沖區(qū)。顏色緩沖區(qū)包括左、前右、后左、后右和一些輔助緩存值(auxiliary buffers)。可以直接從中讀取或者復(fù)制。對(duì)于OpenGL不同上下文,這些緩沖區(qū)可能不全

1)幀緩沖區(qū)操作

用glDrawBuffer為繪圖選擇一個(gè)顏色緩沖區(qū)。另外在預(yù)片元化(per-fragment)操作后,可以用四個(gè)不同函數(shù)保留寫入這些邏輯緩沖區(qū)的操作,glIndexMask(), glColorMask(), glDepthMask(), and glStencilMask()。glAccum()對(duì)累積緩沖區(qū)進(jìn)行操作。最后glClearColor(), glClearIndex(), glClearDepth(), glClearStencil()和glClearAccum().對(duì)不同緩沖區(qū)中指定相對(duì)應(yīng)的顏色值、顏色索引值、深度值、模板值和累積值。

2)讀取和復(fù)制像素

用glReadPixel()從幀緩沖區(qū)中把像素讀到內(nèi)存中,進(jìn)行各種操作,保存處理結(jié)果。另外,可以用glCopyPixel()從幀緩沖區(qū)中復(fù)制一塊象素到另一個(gè)幀混存。glReadBuffer()可以讀取和復(fù)制顏色緩沖區(qū)中的像素。

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

    關(guān)注

    0

    文章

    290

    瀏覽量

    27604
  • 像素
    +關(guān)注

    關(guān)注

    1

    文章

    205

    瀏覽量

    18641
  • OpenGL
    +關(guān)注

    關(guān)注

    1

    文章

    85

    瀏覽量

    29337
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    63012
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開發(fā)【W(wǎng)ebGL】簡(jiǎn)單了解

    著色器 可以理解為運(yùn)行在顯卡的指令和數(shù)據(jù)。在WebGL,著色器是用OpenGL ES著色語言(GLSL)編寫的。 完整的著色器包括頂點(diǎn)著色器和
    發(fā)表于 02-25 21:56

    鴻蒙原生應(yīng)用服務(wù)開發(fā)-WebGL網(wǎng)頁圖形庫開發(fā)概述

    。 一、 著色器 可以理解為運(yùn)行在顯卡的指令和數(shù)據(jù)。在WebGL,著色器是用OpenGL ES著色語言(GLSL)編寫的。 完整的著色器包括頂點(diǎn)著色器和
    發(fā)表于 03-08 14:24

    基于OpenGL的3DS圖形文件模型數(shù)據(jù)的獲取

    及特殊效果處理函數(shù)等,在虛擬現(xiàn)實(shí)、創(chuàng)建三維逼真場(chǎng)景方面是其它軟件無法比擬的。在物體的造型方面,OpenGL頂點(diǎn)圖元,由點(diǎn)構(gòu)成線,由線及其拓?fù)浣Y(jié)構(gòu)構(gòu)成多邊形,然后由點(diǎn)、線、面組成想要繪制的形體。這種造型
    發(fā)表于 03-07 11:53

    基于ArkUI框架開發(fā)——圖片模糊處理的實(shí)現(xiàn)

    公式處理的都放到C層處理。 第三、基于系統(tǒng)底層提供的OpenGL,操作頂點(diǎn)著色器及著色器操作GPU,得到我們要的模糊效果。 首先,我們
    發(fā)表于 05-05 14:53

    Arm OpenGL ES 3.0開發(fā)者指南

    OpenGL ES 3.0是對(duì)OpenGL ES 2.0標(biāo)準(zhǔn)的增強(qiáng)。 OpenGL ES 3.0添加了OpenGL 3.x已有的功能。其他
    發(fā)表于 08-08 06:03

    Mali和OpenGL ES3.0 指南

    更新的著色語言-GLSL ES 3.0更新的頂點(diǎn)著色使用變換反饋模式許多新對(duì)象類型著色器均勻緩沖區(qū)頂點(diǎn)數(shù)組對(duì)象采樣器對(duì)象同步對(duì)象像素緩沖區(qū)對(duì)象(PBO)
    發(fā)表于 08-25 07:10

    在BCB實(shí)現(xiàn)全屏幕OpenGL的原理

    其實(shí)在BCB實(shí)現(xiàn)全屏幕OpenGL的原理是很簡(jiǎn)單的,只要在窗口OpenGL程序的基礎(chǔ)上做一個(gè)小小的改動(dòng)即可:只要將窗口屬性修改為WS_POPUP就可
    發(fā)表于 09-07 18:13 ?15次下載

    OpenGL

    OpenGL OpenGL是個(gè)專業(yè)的3D程序接口,是一個(gè)功能強(qiáng)大,調(diào)
    發(fā)表于 12-25 11:16 ?606次閱讀

    基于OPENGL電力繪圖組態(tài)軟件的開發(fā)

    本文結(jié)合對(duì) 組態(tài)軟件 的認(rèn)識(shí)與研究開發(fā),介紹了該系統(tǒng)的發(fā)展情況及其在電力系統(tǒng)的應(yīng)用,基于OPENGL 提出了組態(tài)軟件的設(shè)計(jì)思想、特點(diǎn)(可視化、窗口化、圖元化)以及面向用戶的
    發(fā)表于 06-30 17:44 ?0次下載
    基于<b class='flag-5'>OPENGL</b>電力繪圖組態(tài)軟件的開發(fā)

    淺談OpenGL的光照技術(shù)

    當(dāng)不開啟光照時(shí),使用頂點(diǎn)顏色來產(chǎn)生整個(gè)表面的顏色。用glShadeModel可以設(shè)置表面內(nèi)部像素顏色產(chǎn)生的方式。GL_FLAT/GL_SMOOTH.
    發(fā)表于 05-08 10:21 ?3655次閱讀
    淺談<b class='flag-5'>OpenGL</b><b class='flag-5'>中</b>的光照技術(shù)

    OpenGL繪制圖形單元的技巧介紹

    OpenGL要求:指定頂點(diǎn)的命令必須包含在glBegin函數(shù)之后,glEnd函數(shù)之前(否則指定的頂點(diǎn)將被忽略)。在調(diào)用glBegin函數(shù)時(shí),我們需要傳入一個(gè)參數(shù),以告訴OpenGL我們
    發(fā)表于 05-07 08:31 ?2727次閱讀

    OpenGL的深度、深度緩存、深度測(cè)試

    其次,OpenGL會(huì)計(jì)算這些表面和觀察平面的距離。如果啟用了深度緩沖區(qū),在繪制每個(gè)像素之前,OpenGL會(huì)把它的深度值和已經(jīng)存儲(chǔ)在這個(gè)像素的深度值進(jìn)行比較。新
    的頭像 發(fā)表于 07-05 16:49 ?3761次閱讀
    <b class='flag-5'>OpenGL</b><b class='flag-5'>中</b>的深度、深度緩存、深度測(cè)試

    如何把OpenGL3D坐標(biāo)轉(zhuǎn)換成2D坐標(biāo)

    OpenGL,一切事物都在3D空間中,但我們的屏幕坐標(biāo)確實(shí)2D像素數(shù)組,OpenGL大部分工作就是把3D坐標(biāo)轉(zhuǎn)換成適應(yīng)屏幕的2D像素。3
    的頭像 發(fā)表于 07-09 10:40 ?8649次閱讀

    英特爾OpenGL ES API的新功能介紹

    演示OpenGL ES API的新功能。
    的頭像 發(fā)表于 11-06 06:26 ?3418次閱讀

    頂點(diǎn)序下圖的支配集算法綜述

    文中將粗糙集理論的屬性序引入到圖論,研究頂點(diǎn)序下圖的支配集問題。首先,在圖的頂點(diǎn)集上定義一個(gè)全序關(guān)系,稱為頂點(diǎn)序。然后,利用
    發(fā)表于 04-27 10:34 ?1次下載
    <b class='flag-5'>頂點(diǎn)</b>序下圖的支配集算法綜述
    主站蜘蛛池模板: 激情综合色综合久久综合 | 特级免费毛片 | 2021最新久久久视精品爱 | 亚洲人成网站在线在线 | 黄视频福利 | 26uuu另类欧美亚洲曰本 | 免费观看欧美一级片 | 操亚洲| 色色色色色色色色色色色色色色 | 国产主播在线一区 | 狠狠干伊人网 | 天天色影 | 久久久久久国产精品免费免 | 最新久久免费视频 | 99自拍视频 | 怡红院日本 | 亚洲精品乱码久久久久久蜜桃图片 | 操久久 | 国产成人精品一区 | 四虎永久在线观看免费网站网址 | 欧美成人精品 | 人人干干人人 | 国产精品久久自在自2021 | 日本三级黄色录像 | 四虎影院免费观看 | 婷婷激情六月 | 2022欧美高清中文字幕在线看 | 亚洲一区二区免费视频 | 一级毛片西西人体44rt高清 | 成人在线网站 | 欧美一级在线免费观看 | 色视频在线免费看 | 手机在线视频你懂的 | 欧美67194| 性欧洲女人18 | www.九九热 | 天天射天天草 | 香蕉免费在线视频 | 国产精品香蕉成人网在线观看 | 日本不卡免费一区 | 最近2018中文字幕免费看手机 |