RenderingUnityにおけるミップマップとテクスチャフィルタリングの概要と設定方法をまとめました。参考Unity2018.4.0ミップマップ?下図は、元のテクスチャと、そこから解像度を半々にしていったテクスチャを並べたものです。このようなテクスチャ群のことをミップマップと呼びます。ミップマップは、後述するテクスチャフィルタリング時に使用することで、カメラから遠かったり斜めに映ったりするモデルをきれいに描画できます(詳細は後述)。Mapsにチェックを入れることでミップマップを生成できます。作成されたミップマップの様子はテクスチャのプレビューウィンドウでスライダーを動かすことで確認できます。バイリニア・トライリニアフィルタリングさて、今下記のUnityちゃんを画面に対してとても小さく描画することを考えます。テクスチャフィルタリングなしで描画したものを拡大すると次のようになります。少ないピクセル数に描き込んでいるのでドット絵のようになっています。次にこれにテクスチャフィルタリングを適用してみます。上記二つを見比べるとわかる通り、テクスチャフィルタリングを使うと縮小して描画した部分がきれいになります。この効果は環境オブジェクトなど、カメラから見て遠くに描画されがちなものに適用すると顕著です。ModeをBilinearかTrilinearに設定します。Mapsにもチェックしておく必要があります。Modeの各項目の説明は以下の通りです。トライリニアフィルタリングを適用するバイリニアより綺麗だが処理負荷が高くなる異方性フィルタリング次に、画面に対してモデルが傾いて描画されているケースを考えます。3DCGはこのような状況でテクスチャを綺麗に描画するのが苦手です。上記はバイリニアフィルタリングだけを掛けて描画した結果です。手前はチェック柄がうまく描画されていますが、奥に行くにつれて詳細がつぶれてしまっています。このようなケースでは、異方性フィルタリングを使うことで品質を向上できます。試しに異方性フィルタリングをレベル10(後述)で適用してみます。先ほどの結果よりも遠くまでチェック柄がはっきり見えるようになりました。この効果は床など、カメラに対して斜め&広範囲に描画されるものに適用すると顕著です。Levelを2以上にします。0と1は異方性フィルタリングOFFの状態なので注意してください。異方性フィルタリングを使うにはバイリニアフィルタリングかトライリニアフィルタリングが適用されている必要があります。Levelは非アクティブになり異方性フィルタリングは適用されません。Levelについては高い値に設定するほど綺麗な結果にはなりますが、その分処理負荷が増大します。Quality設定と異方性フィルタリングテクスチャ設定の他にQuality設定にも異方性のレベルの適用方法に関する設定項目があります。Onがわかりづらいですね。マニュアルにもまともな記述がないのですが下記に記載されていました。support.unity3d.com処理負荷に注意さて上記でも多少触れましたが、テクスチャフィルタリングを適用すると処理負荷が増大します。簡単にまとめると処理負荷は以下のルールで増えていきます。トライリニアフィルタリング異方性フィルタリングはレベルを上げれば上げるほど処理負荷が増大するまた具体的にはテクスチャのサンプリング数が増えるため、GPUの処理負荷が大きくなっていきます。これに関しての詳細は以下の記事がわかりやすいので興味がある方は見ると良いと思います。https://www.4gamer.net/specials/3de/nv_at/nv_at01.htmlhttps://www.4gamer.net/specials/3de/nv_at/nv_at02.html以上を踏まえた現実的な指針として、まずカメラからみてあまり遠くに行かないキャラクターなどのテクスチャはフィルタリングを無効にして良さそうです。VFXなどもあまり効果が感じられなそうであれば切ってしまってよさそうです。残るは環境オブジェクトですが、カメラワークが自由である場合には基本的にテクスチャフィルタリングはONにしたほうがよさそうです。異方性フィルタリングは床などカメラに対して斜めに描画されやすいオブジェクトのみでいいかもしれません。バイリニアとトライリニアにはそこまで見た目的な差がないため、特段気にならなければバイリニアにしておくのがいいかと思います。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。インストールから基本的な使い方・注意点まとめ【Unity】【エディタ拡張】テクスチャを指定したUV座標で切り取って保存する【Unity】指定したアセットのAssetBundle名を取得する【Unity】【シェーダ】スクリプトからVP行列を渡してシェーダで座標変換に使う【Unity】【シェーダ】FloatやVectorをリニアライズ対象にするGammaアトリビュート月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。