投稿者 tel | 2013年5月21日

WebGLでミップマップ

WebGLでミップマップを使う。たぶんOpenGL ES 2.0とほとんど同じ。

texImage2Dでlevelに0、1、2、と順番に数値を入れて設定してく。
もちろん設定する画像のサイズはlevelが0のときに128×128だとして、level1が64×64、level2が32×32のように2分の1のサイズにする。

if(Array.isArray(img)) {
    // ミップマップの登録
    for(var i = 0, n = img.length; i < n; i++) {
        gl.texImage2D(gl.TEXTURE_2D, i, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img[i]);
    }
}

注意点として1×1のサイズまでちゃんと指定しないとワーニングが出てテクスチャが設定できないみたい。

自分でミップマップ用のテクスチャを用意しない場合はミップマップを生成してくれるgenerateMipmapという便利関数があるようだ。

WebGLの日本語リファレンスがほしいな。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。