3
我的目標是在滾動鼠標時實現縮放功能。 到目前爲止,我使用glViewport實現了縮放效果,效果很好。但是當然,圖像並不是非常平滑,它顯示出前衛的像素。OpenGL Smooth Zooming
我想現在嘗試使圖像在放大後更平滑。 我已經嘗試過使用glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); (和MIN_FILTER),但它與GL_NEAREST相比沒有任何區別。
你們有沒有關於如何使縮放後的圖像看起來更流暢的好主意?例如,採用像素矩陣並通過使用像2xSal這樣的標量算法來手動計算像素可能是一個好主意嗎?
到目前爲止,我的代碼是
void zoom(double scale) {
GLint m_viewport[4];
glGetIntegerv(GL_VIEWPORT, m_viewport);
if (scale > 0) {
glViewport(m_viewport[0] - (m_viewport[2]/2), m_viewport[1] - (m_viewport[3]/2), m_viewport[2] * 2, m_viewport[3] * 2);
}
else {
glViewport(m_viewport[0] + (m_viewport[2]/4), m_viewport[1] + (m_viewport[3]/4), m_viewport[2]/2, m_viewport[3]/2);
}
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
*但與GL_NEAREST相比,它沒有顯示任何差異。* - 然後它沒有被正確設置。 – Rotem