テクスチャアトラス(Texture Atlas)
テクスチャアトラスは複数のテクスチャをひとつの画像にまとめ、オブジェクトがマテリアルを共有できるようにして、テクスチャバインドを減らし、ゲームやリアルタイムアプリケーションでドローコールを減らすバッチ化を可能にします。
テクスチャアトラスとは?
Texture Atlas(2D ではスプライトシートとも呼ばれる)とは、複数の小さなテクスチャをまとめて含む単一の大きなテクスチャ画像です。オブジェクトごとに別々のテクスチャファイルを読み込む代わりに、GPU はひとつの Atlas を読み込み、UV 座標 を使って各メッシュの正しい領域をサンプリングします。
テクスチャアトラスを使う理由
ドローコールはマテリアルとレンダーステートごとにまとめられるため、異なるテクスチャを使うオブジェクトは通常一緒に描画できません。ドローコールが多い = フレームレートが下がる。Atlas は多くのオブジェクトにマテリアルを共有させてバッチ化できるようにします。
- ドローコールの削減:複数のオブジェクトがひとつのマテリアルを共有し、より少ないパスにまとめられる
- テクスチャバインドの削減:GPU がテクスチャステートを切り替える頻度が減る
- バッチ化の実現:GPU が多くのオブジェクトを 1 パスでレンダリング可能
- 読み込み時間の改善:ファイルリクエストが少ない
Atlases を使うべきとき
| シナリオ | Atlas の利点 |
|---|---|
| モバイルゲーム | 重要(ドローコール予算が限られる) |
| オープンワールドのシーン | マテリアルを共有する多くの小道具 |
| UI/HUD 要素 | すべてのアイコンをひとつのシートに |
| ボクセル/ブロックゲーム | すべてのブロックテクスチャをひとつの Atlas に |
| Web 3D(Three.js) | WebGL の状態変更を最小化 |
Atlas 化は、リアルタイムのシーンを高速に保つために、軽い ポリゴン数 と完全な PBR マテリアルセットと自然に組み合わさります。ゲームエンジンのワークフローについては、当社の ゲームアセットのための Unity テクスチャベイクガイド をご覧ください。
Sloydにおけるテクスチャアトラス
Sloyd から複数のモデルをひとつのシーンで使うためにエクスポートすると、それらのテクスチャは効率的にまとめられます。Sloyd の GLB エクスポートは、Unity と Unreal のゲームエンジンの Atlas ワークフローとよく機能する最適化されたテクスチャレイアウトを使います。