やっていくVulkan入門

6. テクスチャを使う

この章ではテクスチャについて学びます。

3Dモデルの表面上に絵や細かい模様などを作りこみたい場合、ひとつ考えられる手は「とにかくポリゴンを細分化して塗り分ける」という荒業です。しかし、ポリゴンを細分化すると当然処理の負荷が大きくなります。そこで実際には「画像データを用意して貼り付ける」ような手法が一般的に使われ、これをテクスチャマッピングと呼びます。また、貼り付けられる画像データのことをテクスチャと呼びます。

大まかな仕組みとしては、まずフラグメントシェーダの処理において画像データ(テクスチャ)にアクセスします。そして各ピクセルの色の計算において、読み込んだ画像の特定の点の色を「ここ!」と指して取ってくるのです。これをポリゴンの全ての点でやっていくと、モデル上のあの点は画像のこの点といった形で対応させることができ、「画像を貼り付ける」ような表現が実現できます。なお、このときの「画像の特定の点の色を取ってくる」操作をテクスチャサンプリングと呼びます。

少ないポリゴン数でも3Dモデルの表現力を大幅に上げることのできる、非常に強力かつ広く使われている技術です。しっかり使い方を学んでいきましょう。

余談

テクスチャマッピングは単に「モデルに絵を貼り付けるもの」として説明されがちですが、それは使用法のひとつにすぎません。単なる模様だけでなく表面の質感や微細な構造の表現、さらにはアニメ調の陰影表現(トゥーンシェーディング)のために使われるなど、単に「絵を貼り付ける」では説明しきれない応用範囲があります。

すごく大雑把に言えば「大きなデータ配列を渡してシェーダで自由に取り出せる」という部分がテクスチャという機能のコアなので、値をどう取り出してどう使うかはシェーダのプログラム次第なのです。