ETH官方钱包

創(chuàng)作內(nèi)容

3 GP

[CG]01-Frame Buffer

作者:帽捲│2018-01-21 23:07:11│巴幣:6│人氣:717
文章已更新至:Medium

上一篇後半段的例子有講到,
經(jīng)過顯示卡運(yùn)算後會顯示的螢?zāi)簧希?/div>
那麼是如何顯示在螢?zāi)簧夏?
透過Frame Buffer
那甚麼是Frame Buffer呢?
Frame buffer儲存在於顯示卡中,但若要顯示在螢?zāi)簧希?/div>
必須經(jīng)由OS(作業(yè)系統(tǒng))和CPU

因此必須將Frame Buffer的資料寫出到主記憶體,CPU才能使用(細(xì)節(jié)請去修作業(yè)系統(tǒng))
然後OS再將資訊交給Window System顯示在螢?zāi)簧?/div>

那麼,現(xiàn)在我們關(guān)心的事,F(xiàn)rame Buffer是甚麼
Frame Buffer包含所有要顯示在輸出裝置上的資訊,
而輸出裝置通常是透過點(diǎn)陣圖顯示,
意即大量的格子,而每一格如何顯示又主要由以下三種Buffer提供的資訊所組成
Color Buffer:
也就是儲存顏色的空間,通常又分成RGB(紅綠藍(lán))三個(gè)通道,
他可以決定該點(diǎn)的顏色(RGB可以混合出絕大多數(shù)人類可見的顏色)
Color Buffer的值常使用Unsigned char或是Float紀(jì)錄
舉例來說,使用Unsigned char(8 bit),那麼(255, 0, 0)就是鮮豔的紅色
值得一提的是常常也會使用4通道RGBA,也就是增加一個(gè)「透明」的通道
A表示alpha,表示透明程度
Depth Buffer:
紀(jì)錄該格的深度。所謂的深度是用來紀(jì)錄深淺,因?yàn)樵谝粋€(gè)三維空間中
經(jīng)過轉(zhuǎn)換可能會有兩點(diǎn)重疊,而通常我們傾向於顯示距離相對近的點(diǎn)
如上圖,我們應(yīng)該顯示黃色的格子,而非桃紅色的格子
那麼Depth Buffer中的值該如何紀(jì)錄呢?
這就留到以後再說吧,目前只要知道用處即可

這邊補(bǔ)充一點(diǎn),這種演算法稱為hidden-surface-removal algorithm
使用z-buffer(也就是這邊的depth buffer)來判斷前後位置
在OpenGL中是可以決定是否使用的
例如在繪製透明的東西時(shí),通常會將其關(guān)閉
並使用GL_BLEND...
這些以後再說吧~

Stencil Buffer:
可以決定該格需不需要被繪製
如上圖,在Stencil Buffer中被設(shè)為1的才會被繪製,儘管其他格確實(shí)是有東西的

大Guy以上三種最為重要,他們決定了真正顯示到螢?zāi)坏臉幼樱?/div>
每一個(gè)都有屬於他們的Buffer,全部加起來就像是一面面的Buffer組成的二維陣列
而這些統(tǒng)稱為Frame Buffer,將其資訊Pack至主記憶體。

小總結(jié):
目前我們知道一個(gè)點(diǎn)被設(shè)定(可以推廣至一個(gè)面),然後經(jīng)過GPU一系列的運(yùn)算,
將結(jié)果紀(jì)錄至Frame Buffer,並將資訊Pack至記憶體,
那麼,現(xiàn)在我們要將畫面顯示在螢?zāi)粫r(shí),
我們通常都是在「視窗」(Window)中顯示的,
因此,我們需要讓W(xué)indow system讀取主記憶體的相關(guān)資訊

那麼該怎麼做呢?
其實(shí)細(xì)部不需要自己寫,別人都寫好函式了,我們只需呼叫
但會依據(jù)使用的函式不同而產(chǎn)生不同的視窗

下一篇會實(shí)際使用glut來顯示!
引用網(wǎng)址:http://www.jamesdambrosio.com/TrackBack.php?sn=3862576
All rights reserved. 版權(quán)所有,保留一切權(quán)利

相關(guān)創(chuàng)作

同標(biāo)籤作品搜尋:OpenGL|電腦圖學(xué)

留言共 1 篇留言

黒桐

01-22 21:54

我要留言提醒:您尚未登入,請先登入再留言

3喜歡★maochinn 可決定是否刪除您的留言,請勿發(fā)表違反站規(guī)文字。

前一篇:[CG]00-介紹... 後一篇:[CG]02-視窗...


face基於日前微軟官方表示 Internet Explorer 不再支援新的網(wǎng)路標(biāo)準(zhǔn),可能無法使用新的應(yīng)用程式來呈現(xiàn)網(wǎng)站內(nèi)容,在瀏覽器支援度及網(wǎng)站安全性的雙重考量下,為了讓巴友們有更好的使用體驗(yàn),巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現(xiàn)和功能。
屆時(shí)建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業(yè)系統(tǒng)版本才可使用)

face我們了解您不想看到廣告的心情? 若您願(yuàn)意支持巴哈姆特永續(xù)經(jīng)營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學(xué)】