當前位置:
首頁 >
OpenGL 面剔除Face culling
發布時間:2024/9/27
54
豆豆
生活随笔
收集整理的這篇文章主要介紹了
OpenGL 面剔除Face culling
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OpenGL面剔除Face culling
- 面剔除Face culling簡介
- 環繞順序
- 面剔除
面剔除Face culling簡介
嘗試在腦子中想象一個3D立方體,數數你從任意方向最多能同時看到幾個面。如果你的想象力不是過于豐富了,你應該能得出最大的面數是3。你可以從任意位置和任意方向看向這個球體,但你永遠不能看到3個以上的面。所以我們為什么要浪費時間繪制我們不能看見的那3個面呢?如果我們能夠以某種方式丟棄這幾個看不見的面,我們能省下超過50%的片段著色器執行數!
這是一個很好的主意,但我們仍有一個問題需要解決:我們如何知道一個物體的某一個面不能從觀察者視角看到呢?
如果我們想象任何一個閉合形狀,它的每一個面都有兩側,每一側要么面向用戶,要么背對用戶。如果我們能夠只繪制面向觀察者的面呢?
這正是面剔除(Face Culling)所做的。OpenGL能夠檢查所有面向(Front Facing)觀察者的面,并渲染它們,而丟棄那些背向(Back Facing)的面,節省我們很多的片段著色器調用(它們的開銷很大!)。但我們仍要告訴OpenGL哪些面是正向面(Front Face),哪些面是背向面(Back Face)。OpenGL使用了一個很聰明的技巧,分析頂點數據的環繞順序(Winding Order)。
環繞順序
當我們定義一組三角形頂點時,我們會以特定的環繞順序來定義它們?
總結
以上是生活随笔為你收集整理的OpenGL 面剔除Face culling的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么进入神州z6bios &qu
- 下一篇: OpenGL 帧缓冲Framebuffe