3
私の目標は、マウスのスクロールにズーム機能を実装することです。 これまではglViewportを使ってズーム効果を実装しましたが、これはかなりうまく動作します。もちろん、画像は滑らかではありません。ぎこちないピクセルを示します。OpenGLスムーズズーム
ズーム後に画像をよりスムーズにするために、今すぐ試してみたいと思います。 私は既に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