正背面剔除淺識

前言:在我們使用OpenGL進行繪制一些圖形的時候如果我們需要對特殊按鍵對圖形做一些 旋轉 切換等操作的時候 必須要在main函數值先進行注冊迹栓。

圖像繪制的流程: 首先我們要創(chuàng)建一個可視窗口?ChangeSize(int w, int h) 在這個方法中我們去創(chuàng)建視口的大小,投影矩陣鸥鹉,代碼如下:

2、其次我們要進行初始化即我們需要在SetUpRC()對顏色 著色器鸣皂,頂點坐標等進行設置飞袋,如圖所示

3、在我們初始化之后會進入到RednferScene()方法中秉扑。在RenderScene()方法中我們首先要對緩沖區(qū)進行清空操作(清空理念是 我們使用哪個就清空哪個。當然如果不知道的話 就全部清空):glClear(GL_COLOR_BUFFER_BIT(清空顏色) | GL_DEPTH_BUFFER_BIT(深度緩沖區(qū)) | GL_STENCIL_BUFFER_BIT(模板緩沖區(qū)));调限。清空緩沖區(qū)之后 我們就要進行壓棧(壓棧舟陆,那么什么是棧、棧是用來記錄狀態(tài)的我們可以通過棧記錄的狀態(tài)來進行撤回的操作耻矮,如果我們想要繼續(xù)保存狀態(tài)的時候可以繼續(xù)進行壓棧秦躯。如果回退了就不需要保存它的狀態(tài),那么就進行出棧):modelViewMatrix.PushMatrix(); 然后我們將觀察者矩陣和物體矩陣存放到模型視圖矩陣中裆装。 transformPipeline.GetModelViewProjectionMatrix() 通過調用這個方法我們可以直接獲取到矩陣相乘的結果具體代碼如下:

正背面剔除踱承。當我們再使用光源著色器繪制一些3D模型的時候。當我們移動觀察者視角的時候回出現BUG哨免。如圖所示

沒有旋轉


旋轉之后

通過這個倆個圖的比較我們可以看出 我們繪制的這個“甜甜圈”有BUG 我們再繪制的時候只使用了紅色勾扭,那么這些黑色是怎么來的呢? 首先我們要了解 在我們觀察物體的時候 物體會有正面 和背面铁瞒。如果存在光源的情況下,光照的地方的顏色是紅色桅滋。光照不到的地方也就是背面是黑色慧耍。 這樣就解釋了 當我們對“甜甜圈”進行旋轉的時候 系統不知道我們那一塊是我們能夠看到的身辨。那一塊是我們不能看到的。所以就形成了圖2的這樣的問題芍碧。那么怎么解決這樣的問題煌珊。

我們可以對"甜甜圈"進行正背面剔除。什么是正背面剔除呢泌豆《ㄢ郑可以理解為,在我們觀察物體的時候 我們最多只能看到物體的三個面踪危。其他的面我們是看不到的蔬浙。這個時候我們就可以把其他看不到的面進行剔除。這樣的做法 不僅僅能提高繪制的效率 贞远,因為我們不需要把一個物體的全部面都繪制 只需要繪制我們能夠看到的面畴博。而且還能避免出現上圖的這種情況。

最后疑問 對“甜甜圈”進行了正背面剔除之后 我們就能獲得完整的“甜甜圈”了嗎蓝仲?

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末俱病,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子袱结,更是在濱河造成了極大的恐慌亮隙,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垢夹,死亡現場離奇詭異溢吻,居然都是意外死亡,警方通過查閱死者的電腦和手機棚饵,發(fā)現死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門煤裙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人噪漾,你說我怎么就攤上這事硼砰。” “怎么了欣硼?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵题翰,是天一觀的道長。 經常有香客問我诈胜,道長豹障,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任焦匈,我火速辦了婚禮血公,結果婚禮上,老公的妹妹穿的比我還像新娘缓熟。我一直安慰自己累魔,他們只是感情好摔笤,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垦写,像睡著了一般吕世。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梯投,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天命辖,我揣著相機與錄音,去河邊找鬼分蓖。 笑死尔艇,一個胖子當著我的面吹牛,可吹牛的內容都是我干的咆疗。 我是一名探鬼主播漓帚,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼午磁!你這毒婦竟也來了尝抖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤迅皇,失蹤者是張志新(化名)和其女友劉穎昧辽,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體登颓,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡搅荞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了框咙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咕痛。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖喇嘱,靈堂內的尸體忽然破棺而出茉贡,到底是詐尸還是另有隱情,我是刑警寧澤者铜,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布腔丧,位于F島的核電站,受9級特大地震影響作烟,放射性物質發(fā)生泄漏愉粤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一拿撩、第九天 我趴在偏房一處隱蔽的房頂上張望衣厘。 院中可真熱鬧,春花似錦压恒、人聲如沸头滔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坤检。三九已至,卻和暖如春期吓,著一層夾襖步出監(jiān)牢的瞬間早歇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工讨勤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箭跳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓潭千,卻偏偏與公主長得像谱姓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子刨晴,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355