OpenGL 面剔除Face culling
OpenGL面剔除Face culling
- 面剔除Face culling簡介
- 環(huán)繞順序
- 面剔除
面剔除Face culling簡介
嘗試在腦子中想象一個3D立方體,數(shù)數(shù)你從任意方向最多能同時看到幾個面。如果你的想象力不是過于豐富了,你應(yīng)該能得出最大的面數(shù)是3。你可以從任意位置和任意方向看向這個球體,但你永遠(yuǎn)不能看到3個以上的面。所以我們?yōu)槭裁匆速M時間繪制我們不能看見的那3個面呢?如果我們能夠以某種方式丟棄這幾個看不見的面,我們能省下超過50%的片段著色器執(zhí)行數(shù)!
這是一個很好的主意,但我們?nèi)杂幸粋€問題需要解決:我們?nèi)绾沃酪粋€物體的某一個面不能從觀察者視角看到呢?
如果我們想象任何一個閉合形狀,它的每一個面都有兩側(cè),每一側(cè)要么面向用戶,要么背對用戶。如果我們能夠只繪制面向觀察者的面呢?
這正是面剔除(Face Culling)所做的。OpenGL能夠檢查所有面向(Front Facing)觀察者的面,并渲染它們,而丟棄那些背向(Back Facing)的面,節(jié)省我們很多的片段著色器調(diào)用(它們的開銷很大!)。但我們?nèi)砸嬖VOpenGL哪些面是正向面(Front Face),哪些面是背向面(Back Face)。OpenGL使用了一個很聰明的技巧,分析頂點數(shù)據(jù)的環(huán)繞順序(Winding Order)。
環(huán)繞順序
當(dāng)我們定義一組三角形頂點時,我們會以特定的環(huán)繞順序來定義它們?
總結(jié)
以上是生活随笔為你收集整理的OpenGL 面剔除Face culling的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么进入神州z6bios &qu
- 下一篇: 怎么删除u盘查找记录 删除U盘查找历史记