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

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

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

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

Dbwd_Imgtec ? 來源:未知 ? 作者:胡薇 ? 2018-07-09 10:40 ? 次閱讀

在OpenGL中,一切事物都在3D空間中,但我們的屏幕坐標(biāo)確實(shí)2D像素?cái)?shù)組,OpenGL大部分工作就是把3D坐標(biāo)轉(zhuǎn)換成適應(yīng)屏幕的2D像素。

3D坐標(biāo)轉(zhuǎn)換成2D屏幕坐標(biāo)的過程是由OpenGL的圖形渲染管線管理的。

圖形渲染管線的工作可以被劃分為兩個(gè)主要的部分:

把3D坐標(biāo)轉(zhuǎn)換成2D坐標(biāo)。

把2D坐標(biāo)轉(zhuǎn)換成實(shí)際有顏色的像素。

注意:2D坐標(biāo)和像素是不同的,2D坐標(biāo)精確的描述了一個(gè)點(diǎn)在2D空間中的位置,二2D像素是這個(gè)點(diǎn)的近似值,2D像素收到你的屏幕/窗口分辨率的限制

圖形渲染管線包含很多部分。首先,我們以數(shù)組形式傳遞3D個(gè)3D坐標(biāo)作為圖形渲染管線的輸入,用來表示三角形,這個(gè)數(shù)組叫做定點(diǎn)數(shù)據(jù)(Vertex Data);定點(diǎn)數(shù)據(jù)是一系列定點(diǎn)的集合。一個(gè)頂點(diǎn)(Vertex)是一個(gè)3D坐標(biāo)的集合。為了簡(jiǎn)單起見,我們假定每個(gè)頂點(diǎn)只由一個(gè)3D位置和一些顏色值構(gòu)成。

注意:OpenGL不知道我們傳入的頂點(diǎn)位置和顏色值到底需要構(gòu)成什么,這個(gè)時(shí)候就需要我們?nèi)ブ付ㄟ@些數(shù)據(jù)去表示渲染類型。做出的這些提示叫做圖元(Primitive),我們可以指定一下三種:GL_POINTS、GL_TRIANGLES、GL_LINE_STRIP。

圖形渲染管線的第一個(gè)部分是頂點(diǎn)著色器,它把單獨(dú)的頂點(diǎn)作為輸入,頂點(diǎn)著色器的主要目的是吧3D坐標(biāo)轉(zhuǎn)換成另外一種3D坐標(biāo)。同時(shí)頂點(diǎn)著色器允許我們隊(duì)頂點(diǎn)屬性進(jìn)行一些基本處理。

圖元裝配階段是將頂點(diǎn)著色器輸出的頂點(diǎn)作為一個(gè)輸入,(如果是GL_POINTS,那么就是一個(gè)頂點(diǎn)),并把所有的點(diǎn)裝配成指定圖元的形狀。

圖元裝配階段的輸出會(huì)傳遞給幾何著色器。集合著色器吧圖元形式的一系列定點(diǎn)作為集合的輸入,它可以通過產(chǎn)生新的頂點(diǎn)構(gòu)造出新的(或者其他的)圖元來生成其他的形狀。

幾何著色器的輸出會(huì)被傳入光柵化階段,它會(huì)把圖元轉(zhuǎn)換成最終屏幕上相應(yīng)的像素生成供片段作色器使用的片段。在片段著色器運(yùn)行之前會(huì)執(zhí)行裁剪,裁剪會(huì)丟棄在視線范圍外的所有像素,以提供執(zhí)行效率。

片段著色器的主要目的是計(jì)算一個(gè)像素的最終顏色。在顏色確定以后,最終會(huì)被傳入到一個(gè)最后的階段 ,Alpha測(cè)試和混合測(cè)試階段。

聲明:本文內(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)投訴
  • OpenGL
    +關(guān)注

    關(guān)注

    1

    文章

    85

    瀏覽量

    29201

原文標(biāo)題:OpenGL工作流程:把3D坐標(biāo)轉(zhuǎn)換成2D坐標(biāo)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問怎么才能將AD3D封裝庫(kù)轉(zhuǎn)換2D的封裝庫(kù)?

    請(qǐng)問怎么將AD3D封裝庫(kù)轉(zhuǎn)換2D的封裝庫(kù)
    發(fā)表于 06-05 00:35

    如何計(jì)算才能把坐標(biāo)轉(zhuǎn)換成水平的坐標(biāo)系?

    當(dāng)mpu6050初始放置的時(shí)候是傾斜的,如何計(jì)算才能把坐標(biāo)轉(zhuǎn)換成水平的坐標(biāo)系?轉(zhuǎn)換后的效果是保證傾角不變,水平轉(zhuǎn)動(dòng)mpu,出來的數(shù)據(jù)是水平轉(zhuǎn)動(dòng)的。我用當(dāng)前四元數(shù)與初始的四元數(shù)做差,得
    發(fā)表于 07-31 22:19

    如何更改Altium圖中3D的這個(gè)坐標(biāo)軸?

    3D的這個(gè)坐標(biāo)軸可以更改嗎?怎么更改?
    發(fā)表于 09-18 05:36

    為什么3D2D模型不能相互轉(zhuǎn)換?

    AD17.1.5軟件,3D2D模型不能相互轉(zhuǎn)換,按3可以進(jìn)入3D模型,按2不可以進(jìn)入
    發(fā)表于 09-20 05:35

    如何將相對(duì)坐標(biāo)轉(zhuǎn)換成UBFS的絕對(duì)坐標(biāo)

    嗨,各位,我目前正在使用一個(gè)觸摸應(yīng)用程序,它應(yīng)該使用絕對(duì)坐標(biāo)。如何將相對(duì)坐標(biāo)轉(zhuǎn)換成UBFS的絕對(duì)坐標(biāo)?我已經(jīng)閱讀了數(shù)據(jù)表組件,但它沒有說,
    發(fā)表于 10-28 09:58

    【Altium小課專題 第193篇】PCB封裝如何在2D3D模式之間進(jìn)行切換?

    答:1)執(zhí)行菜單命令“視圖→切換到3維模式”即可切換到3D模式2)執(zhí)行菜單命令“視圖→切換到2維模式”即可切換到2D模式
    發(fā)表于 09-13 14:13

    全球首款2D/3D視頻轉(zhuǎn)換實(shí)時(shí)處理芯片:DA8223

      Dialog半導(dǎo)體股份有限公司日前宣布推出全球首款2D/3D影像轉(zhuǎn)換實(shí)時(shí)處理芯片:DA8223.該芯片為包括智能手機(jī)和平板電腦等在內(nèi)的各種便攜式設(shè)備提供了2D/
    發(fā)表于 12-14 09:17 ?5121次閱讀

    Creaform發(fā)布MaxSHOT 3D光學(xué)坐標(biāo)測(cè)量系統(tǒng)

    Creaform隆重推出公司研發(fā)并生產(chǎn)的最新MaxSHOT 3D 光學(xué)坐標(biāo)測(cè)量系統(tǒng)。MaxSHOT 3D將在9月19日的德國(guó)漢諾威EMO metalworking tradeshow展會(huì)上首次亮相,在9月20日美國(guó)芝加哥Qual
    發(fā)表于 09-20 09:59 ?1787次閱讀

    2D3D視頻自動(dòng)轉(zhuǎn)換系統(tǒng)

    完成系統(tǒng)界面的設(shè)置及控制、顯示等功能,其DSP處理器實(shí)現(xiàn)圖像分割和渲染等核心算法,實(shí)現(xiàn)了1個(gè)高效的2D3D視頻的視頻轉(zhuǎn)換系統(tǒng)。2D轉(zhuǎn)3D
    發(fā)表于 03-06 14:20 ?1次下載
    <b class='flag-5'>2D</b>到<b class='flag-5'>3D</b>視頻自動(dòng)<b class='flag-5'>轉(zhuǎn)換</b>系統(tǒng)

    Cocos2d-x開發(fā)游戲的坐標(biāo)系知識(shí)介紹

    無論是開發(fā)2D還是開發(fā)3D游戲,首先必須弄清楚坐標(biāo)系的概念。在Cocos2d-x,需要了解的有Open
    發(fā)表于 04-27 11:34 ?1339次閱讀

    3d人臉識(shí)別和2d人臉識(shí)別的區(qū)別

    首先是3d人臉識(shí)別和2d人臉識(shí)別圖像數(shù)據(jù)獲取不同。3D人臉識(shí)別是以3D攝像頭立體成像,而2D是以2D
    發(fā)表于 02-05 16:00 ?4.1w次閱讀

    KITTI 3D檢測(cè)數(shù)據(jù)集

    因?yàn)間t label中提供的bbox信息是Camera坐標(biāo)系的,因此在訓(xùn)練時(shí)需要使用外參等將其轉(zhuǎn)換到Lidar坐標(biāo)系; 有時(shí)想要把3d bbox映射到圖像
    的頭像 發(fā)表于 05-31 10:49 ?2442次閱讀

    2D/3D圖表和圖形添加到WindowsForms應(yīng)用程序

    ? 將2D/3D圖表和圖形添加到WindowsForms應(yīng)用程序 包括您可能需要的所有功能,并以100%托管代碼編寫。很好地集成到儀表板和商業(yè)智能軟件。由響應(yīng)迅速的支持團(tuán)隊(duì)提供支持
    的頭像 發(fā)表于 06-15 11:45 ?2087次閱讀

    2D3D視覺技術(shù)的比較

    作為一個(gè)多年經(jīng)驗(yàn)的機(jī)器視覺工程師,我將詳細(xì)介紹2D3D視覺技術(shù)的不同特點(diǎn)、應(yīng)用場(chǎng)景以及它們能夠解決的問題。在這個(gè)領(lǐng)域內(nèi),2D3D視覺技術(shù)是實(shí)現(xiàn)自動(dòng)化和智能制造的關(guān)鍵技術(shù),它們?cè)诠I(yè)
    的頭像 發(fā)表于 12-21 09:19 ?1041次閱讀

    一文了解3D視覺和2D視覺的區(qū)別

    ,3D視覺與2D視覺最明顯的區(qū)別在于立體感。2D視覺只有兩個(gè)維度,即寬度和高度;而3D視覺則具有額外的深度維度。通過模擬真實(shí)世界的第三個(gè)維
    的頭像 發(fā)表于 12-25 11:15 ?2786次閱讀