移動相機時,我寫的iPhone基於區塊的遊戲引擎,它一般除了工作從以下毛刺。基本上,相機將始終將播放器保持在屏幕中央,並且它會正確地跟隨播放器並在靜止時正確地繪製所有內容。但同時玩家移動,玩家對毛刺走表面的瓷磚,如下所示:毛刺在OpenGL
http://img41.imageshack.us/img41/9422/movingy.png
相比固定(正確):
http://img689.imageshack.us/img689/7026/still.png
沒有人有任何想法,爲什麼這可能是?
感謝您的回覆。浮點錯誤是我的第一個想法,我試圖稍微增加瓷磚的大小,但這並沒有幫助。將glClearColor更改爲紅色仍然會留下黑色間隙,因此可能不是浮點錯誤。由於瓷磚通常會使用不同的紋理,我不知道是否可以使用頂點數組(我一直認爲相同的紋理必須應用於數組中的所有東西,糾正我,如果我錯了),我不要認爲VBO在OpenGL ES中可用。設置過濾到最近的鄰居改善了事情,但毛刺仍然發生每十幀左右,像素結果意味着這種解決方案是不可行的。
什麼,我現在在做什麼,我已經在過去做的是,這一次,我移動相機,而不是在世界上的靜止物體(即瓷磚,玩家仍然之間的主要區別移動)。我用來移動相機的代碼是:
void Camera::CentreAtPoint(GLfloat x, GLfloat y)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(x - size.x/2.0f, x + size.x/2.0f, y + size.y/2.0f, y - size.y/2.0f, 0.01f, 5.0f);
glMatrixMode(GL_MODELVIEW);
}
這樣做是否存在問題,如果有的話是否有解決方案?
只是想確保你意識到GL_NEAREST適用於過濾參數,但GL_CLAMP_TO_EDGE適用於質地包裹的參數,所以你可能還是想嘗試一下。如果您已經嘗試過,請忽略此操作。 – 2009-12-17 05:03:41
我應該提到,我已經嘗試過了。 – 2009-12-17 05:57:38