問題
OpenGL ES1.0にて、円形のテクスチャを読み込んでも、綺麗な円形のテクスチャが反映されない。左がポイントスプライトでテクスチャを描画した場合の画像。右がもとのテクスチャの画像。もとのテクスチャのサイズは64*64である。描画した際のglPointSizeの引数は25にしてある。
目的
綺麗な円形のテクスチャを読み込むことで、境界がはっきりとした線を描画できるようにする。LINEブラシもサイズを小さくするとジャギのある線が描画される。SomethingDraw2では全くジャギのない綺麗な線が描ける。このような線が描けるようになりたい。
解決方法
テクスチャのサイズを大きくすることで、解像度を高くする。テクスチャのサイズは2048*2048にする。このサイズにする根拠は、とにかくテクスチャのサイズによってどれだけ影響するのかを目視で確認したいから。ちなみにテクスチャの最大サイズは、機種によって変化する。以下のソースで最大サイズを確認できる。
GLint maxSize; glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxSize); NSLog(@"texture max size: %d", maxSize);
結果
左がポイントスプライトでテクスチャを描画した場合の画像。右がもとのテクスチャの画像。もとのテクスチャのサイズは2048*2048である。描画した際のglPointSizeの引数は25にしてある。
考察
結果の画像から分かる通り、たしかにジャギは減少した。しかし、これではまだ十分ではない。このテクスチャで線を描画するとジャギが目視できる。テクスチャのサイズをこれ以上大きくしても、大きな変化は見られそうにない。この方法では、目的は達成できない。
まとめ
テクスチャのサイズを大きくすることで解像度をあげた。しかし、ジャギは十分に小さくできなかった。