OpenGL 统一变量uniform
OpenGL統(tǒng)一變量uniform
- OpenGL統(tǒng)一變量uniform簡(jiǎn)介
- 源代碼剖析
- 主要源代碼
OpenGL統(tǒng)一變量uniform簡(jiǎn)介
在本課中,我們將介紹著色器中的一種新型變量 - uniform 變量。屬性和 uniform 變量之間的區(qū)別在于,該屬性存儲(chǔ)頂點(diǎn)指定的數(shù)據(jù),因此它們從頂點(diǎn)緩沖區(qū)接收新值,而對(duì)于每個(gè)著色器調(diào)用,uniform 變量的值自調(diào)用呈現(xiàn)時(shí)保持不變。這意味著您需要在調(diào)用呈現(xiàn)函數(shù)之前指定一個(gè)值,并且每次調(diào)用頂點(diǎn)著色器時(shí),您將獲得相同的值。Uniform 變量可用于存儲(chǔ)數(shù)據(jù),如光源參數(shù)(光源位置、方向等)、矩陣變換、指向紋理對(duì)象的指針等。
在本教程中,我們終于在屏幕上得到了一些移動(dòng)。為此,我們使用一個(gè)統(tǒng)一變量的組合,我們將更改每個(gè)幀的值,以及 GLUT 為我們提供的惰性函數(shù)。關(guān)鍵是,GLUT 不會(huì)定期調(diào)用我們的渲染函數(shù),而只是根據(jù)需要調(diào)用我們的渲染函數(shù)。GLUT 僅在收到事件(如窗口折疊)或窗口被另一個(gè)窗口關(guān)閉后才調(diào)用渲染函數(shù)。但是,如果我們?cè)趹?yīng)用程序啟動(dòng)后沒(méi)有收到對(duì)窗口計(jì)劃的更改,則渲染功能將只調(diào)用一次。您可以通過(guò)將 printf 調(diào)用添加到渲染函數(shù)來(lái)測(cè)試這一點(diǎn)。每次折疊/展開窗口時(shí),您只會(huì)看到輸出一次又一次?,F(xiàn)在,使用回調(diào)函數(shù)從過(guò)去的課程渲染將不再適合,因?yàn)槲覀冃枰淖兞康闹?。為此,我們使用惰性回調(diào)函數(shù)。即使未發(fā)生任何事件,GLUT 也會(huì)導(dǎo)致惰性函數(shù)。您可以使用另一個(gè)函數(shù)進(jìn)行此調(diào)用,
總結(jié)
以上是生活随笔為你收集整理的OpenGL 统一变量uniform的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中国农业发展银行是国企还是央企
- 下一篇: OpenGL的移动