
?????
其實(shí)寫(xiě)到這里,我很想放棄了。原因有三:
1:C++實(shí)在是忘光了。
2:MFC實(shí)在太龐大了。
3:本來(lái)我就對(duì)圖形的東東沒(méi)有概念。
????? 不過(guò),不愿意認(rèn)輸?shù)奈遥^續(xù)寫(xiě)點(diǎn)體會(huì),能學(xué)多少就多少吧,實(shí)在不行再放棄吧。
???????? 總結(jié)下NeHE(據(jù)說(shuō)是一個(gè)OpenGL的大宗師,他媽的,寫(xiě)的東西也能叫教程?但是實(shí)在是找不出他寫(xiě)的比誰(shuí)爛的教程,咬吧。)
????????? 跟著他的第一個(gè)代碼(整整400行,這也他媽的叫初始代碼?),基本上就明白,這些代碼是一個(gè)筐架,其中有2個(gè)東東比較重要,
1:DC(
Device Context),翻譯說(shuō)是設(shè)備管理表?個(gè)人認(rèn)為叫設(shè)備管理上下文吧,能好點(diǎn):)
2RC(
Rendering Context) 據(jù)說(shuō)這叫著色描述表。
整個(gè)程序是一個(gè)空白的窗口骨架程序,其中有個(gè)關(guān)鍵方法:WndProc(),在調(diào)用CreateWindows()的時(shí)候被調(diào)用,這里寫(xiě)你繪制程序的代碼。
OpenGl中,任何繪制的圖形都是以三角和四邊形作為基礎(chǔ)。
OpenGL程序一般執(zhí)行流程:
根據(jù)這個(gè)流程,我們可以歸納出在OpenGL中進(jìn)行主要的圖形操作直至在計(jì)算機(jī)屏幕上渲染繪制出三維圖形景觀的基本步驟:
1)根據(jù)基本圖形單元建立景物模型,并且對(duì)所建立的模型進(jìn)行數(shù)學(xué)描述(OpenGL中把:點(diǎn)、線、多邊形、圖像和位圖都作為基本圖形單元)。
2)把景物模型放在三維空間中的合適的位置,并且設(shè)置視點(diǎn)(viewpoint)以觀察所感興趣的景觀。
3)計(jì)算模型中所有物體的色彩,其中的色彩根據(jù)應(yīng)用要求來(lái)確定,同時(shí)確定光照條件、紋理粘貼方式等。
4)把景物模型的數(shù)學(xué)描述及其色彩信息轉(zhuǎn)換至計(jì)算機(jī)屏幕上的象素,這個(gè)過(guò)程也就是光柵化(rasterization)。