編輯:添加了一些錯誤檢查代碼,發現錯誤「1282」被拋出,當我做glAccum(..)OpenGL的:glAccum錯誤1282(無效操作)
EDIT2:我試過完全相同的代碼在另一臺電腦上,它完美的工作。
EDIT3:「解決方案」 ATI HD4xxx和高達卡不支持堆積緩衝了:*(
所以也沒有在64位Windows 7與HD4850的工作和最新的最新的驅動程序 它的工作(GL_ACCUM_RED_BITS = 16) 我也試過,在基於Linux的機器上真的很快,我不知道確切的規格,它也在那裏工作,所以我猜測它真的有待辦事項在我的電腦:(但我不知道什麼,所以任何提示,歡迎您。
這是原始的問題
我想使用glAccum生成一個DOF效果,但對glAccum的調用似乎沒有任何效果。我已經將問題簡化爲一個簡單的測試用例,其中在for循環中我沿着x軸翻譯了一些球體。正如您所看到的,當我嘗試將顏色緩衝區數據複製到累積緩衝區時會報告錯誤。
此外,當我檢查累積緩衝區中可用的紅色位數時,結果爲0.這意味着它未初始化?!
我設置的顯示模式是這樣的:
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_ACCUM | GLUT_DEPTH);
glClearAccum(0.0, 0.0, 0.0, 0.0);
所以積累緩衝器應該可用。
我的顯示方法是這樣的:
void display(void)
{
int i;
GLint test[1];
float weigth = 1.0/(float)apertureSamples;
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
HandleKeyboardInput();
glLoadIdentity();
UpdateCamera();
glClear(GL_ACCUM_BUFFER_BIT);
glGetIntegerv(GL_ACCUM_RED_BITS, test);
//No errors here but the number of red bits is 0!?
for(i = 0; i < apertureSamples; i++)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(10*i, 0, 0);
DrawScene(); //draw a couple of spheres
glPopMatrix();
//Still no errors here
glAccum(GL_ACCUM, weigth);
//If I check for errors here I get error 1282
glFlush();
}
glAccum(GL_RETURN, 1.0);
glutSwapBuffers();
}
我現在希望看到球的模糊線索,向右移動,但我不這樣做,而是我只看到的最後一次迭代forloop(所有球體在x軸上轉換10 * appertureSamples)。
爲了測試glAccum是否在做任何事情,我已經將weigth變量更改爲0.00001,這應該會影響到每個幀被繪製得非常「薄」(我的英語詞彙表留在這裏)。但是這似乎沒有任何影響。然後我將glAccum(GL_RETURN,1.0)改爲gl_Accum(GL_RETURN,0.0001); (但應該已經使整個輸出圖像更薄。)
我已經按照DOF和JITTER下的所有步驟從這裏:http://glprogramming.com/red/chapter10.html我找不到任何我失蹤。是否有任何人有任何東西祕訣?
(順便說一句,我在Windows 7計算機與Radeaon HD4850 GPU做這個)。
該錯誤是GL_INVALID_OPERATION,如果您沒有累積緩衝區,或者您在glBegin和glEnd之間調用glAccum,則返回該錯誤。在glutInitDisplayMode或清除累積緩衝區後檢查錯誤嗎? – 2011-03-03 16:32:18
嘿傑克遜教皇,我檢查了在多個位置的錯誤:glClear(GL_ACCUM_BUFFER_BIT)之後沒有錯誤, :沒有錯誤, glAccum(GL_ACCUM,weigth)後: glutInitDisplayMode後錯誤1282 我沒有在glBegin ()或glEnd()調用,所有DrawScene()都會調用glutSolidSphere(..)幾次。 – 2011-03-03 16:42:00
您可以使用[Mesa](http://www.mesa3d.org/)軟件光柵器重現嗎? – genpfault 2011-03-03 17:16:10