2015年2月26日木曜日

テクスチャ補間方法

GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER を変えながら tunnel サンプルを動かしてみた。

GL_TEXTURE_MIN_FILTER: GL_NEAREST,
GL_TEXTURE_MAG_FILTER: GL_NEAREST

GL_TEXTURE_MIN_FILTER: GL_LINEAR,
GL_TEXTURE_MAG_FILTER: GL_LINEAR

GL_TEXTURE_MIN_FILTER: GL_NEAREST_MIPMAP_NEAREST(ミップレベル間際近接、テクセル間際近接),
GL_TEXTURE_MAG_FILTER: GL_NEAREST

GL_TEXTURE_MIN_FILTER: GL_NEAREST_MIPMAP_LINEAR(ミップレベル間線形補間、テクセル間最近接),
GL_TEXTURE_MAG_FILTER: GL_NEAREST

GL_TEXTURE_MIN_FILTER: GL_LINEAR_MIPMAP_NEAREST(ミップレベル間最近接、テクセル間線形補間),
GL_TEXTURE_MAG_FILTER: GL_LINEAR

GL_TEXTURE_MIN_FILTER: GL_LINEAR_MIPMAP_LINEAR(ミップレベル間線形補間、テクセル間線形補間),
GL_TEXTURE_MAG_FILTER: GL_LINEAR

本に通り GL_LINEAR_MIPMAP_LINEAR が一番画質がよく、GL_LINEAR_MIPMAP_NEAREST もまあ使えて、GL_NEAREST_MIPMAP_NEAREST と GL_NEAREST_MIPMAP_LINEAR は NG な感じですね。

静止画ではわかりませんが、ミップマップを使わない GL_NEAREST, GL_LINEAR は画面が動く(このサンプルでは奥へ進んでいく)とテクスチャがギラギラ光るようなアーティファクトが出ます。

0 件のコメント:

コメントを投稿