這裏是openGL的超級寶典報價(第5版,第208號):如何防止openGL中的閃爍(抗鋸齒僞像)?
The first is an effect called scintillation (aliasing artifacts) that appears
on the surface of objects rendered very small on-screen compared to the
relative size of the texture applied. Scintillation can be seen as a sort of
sparkling that occurs as the sampling area on a texture map moves
disproportionately to its size on the screen. The negative effects of
scintillation are most noticeable when the camera or the objects are in motion.
我目前所面臨的相同問題,(我加載圖像4912 X 3264個像素),並做一些仿射變換如旋轉和平移。它顯示出模糊性,特別是當紋理加載有白色像素(這可能不是一般的觀察,但我正在觀察這一點)。下面是代碼:
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, image->width,image->height, 0, GL_BGR, GL_UNSIGNED_BYTE, image->imageData);
//gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGB,image->width,image->height, GL_BGR,GL_UNSIGNED_BYTE,image->imageData);
的動畫是光滑的一切都很除了那些破壞者完美。 有人可以幫助我改善這種情況,因爲我正在開發一個應用程序,它會對這些東西有很大的擔憂嗎?
另外如果在使用glTexImage2D
後,如果我使用glGenerateMipmap(GL_TEXTURE_2D)
,它會給出segmentation fault (core dump)
。任何想法我可能會失蹤?
你是在正確的軌道上。 Mipmaps可以改善紋理僞影的情況。它只是定義了兩種尺寸紋理的功率。 –
@DanielFlassig:胡話。 Mipmaps適用於任意大小的紋理。不要傳遞錯誤信息。 –
@NicolBolas:對不起,那我的信息已經過時了。它曾經是這樣的(http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGenerateMipmap.xml)我會檢查新的規範。 –