是否與某種對GLSL布爾檢查只執行一次函數的方法嗎?或者我錯過了一些重要的東西?下面的代碼似乎沒有幫助。執行一個GLSL函數只有一次
bool once = false;
DoOnce()
{
for (int i = 0; i < someConst; i++)
{
//do some things...
}
once = true;
}
void main()
{
if (!once)
{
DoOnce();
}
//do other things
}
或者我是否必須爲這種行爲使用計算着色器?
你說的「只有一次」是什麼意思? *將*只執行一次。每次調用着色器。你是否試圖做一些着色器調用互相交談的事情? –
如果你有原子OPS,你可以把它只執行一次(總,不是每個調用),但它是不可能的,你真的* *要做到這一點。對於只執行一次的東西,在CPU上執行它可能更有效。使用GLSL的重點是大規模平行運行多次。 – Damon