日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenGL 面剔除Face culling

發(fā)布時(shí)間:2024/9/27 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL 面剔除Face culling 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

OpenGL面剔除Face culling

  • 面剔除Face culling簡介
  • 環(huán)繞順序
  • 面剔除

面剔除Face culling簡介

嘗試在腦子中想象一個(gè)3D立方體,數(shù)數(shù)你從任意方向最多能同時(shí)看到幾個(gè)面。如果你的想象力不是過于豐富了,你應(yīng)該能得出最大的面數(shù)是3。你可以從任意位置和任意方向看向這個(gè)球體,但你永遠(yuǎn)不能看到3個(gè)以上的面。所以我們?yōu)槭裁匆速M(fèi)時(shí)間繪制我們不能看見的那3個(gè)面呢?如果我們能夠以某種方式丟棄這幾個(gè)看不見的面,我們能省下超過50%的片段著色器執(zhí)行數(shù)!
這是一個(gè)很好的主意,但我們?nèi)杂幸粋€(gè)問題需要解決:我們?nèi)绾沃酪粋€(gè)物體的某一個(gè)面不能從觀察者視角看到呢?
如果我們想象任何一個(gè)閉合形狀,它的每一個(gè)面都有兩側(cè),每一側(cè)要么面向用戶,要么背對用戶。如果我們能夠只繪制面向觀察者的面呢?
這正是面剔除(Face Culling)所做的。OpenGL能夠檢查所有面向(Front Facing)觀察者的面,并渲染它們,而丟棄那些背向(Back Facing)的面,節(jié)省我們很多的片段著色器調(diào)用(它們的開銷很大!)。但我們?nèi)砸嬖VOpenGL哪些面是正向面(Front Face),哪些面是背向面(Back Face)。OpenGL使用了一個(gè)很聰明的技巧,分析頂點(diǎn)數(shù)據(jù)的環(huán)繞順序(Winding Order)。

環(huán)繞順序

當(dāng)我們定義一組三角形頂點(diǎn)時(shí),我們會以特定的環(huán)繞順序來定義它們?

總結(jié)

以上是生活随笔為你收集整理的OpenGL 面剔除Face culling的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。