3Dグラフィックスでは、テクスチャをうまく適用することで、モデルを生き生きと見せることができます。映画のシーンでも、ゲームの世界でも、商品画像でも、テクスチャマッピングはリアルで統一感のある表現をする上で重要です。このガイドでは、テクスチャマッピングの基本を学び、さまざまな種類のテクスチャマップと座標の仕組みについて説明し、プロジェクトでテクスチャを適用して最適化する方法について実践的なアドバイスを紹介します。リアルなサーフェスを作成したい場合や、レンダリング時にモデルがうまく表示されないことに悩んでいる方は、このガイドが役立つでしょう。
テクスチャマッピングとは、テクスチャと呼ばれる2D画像を3Dサーフェスに貼り付けることです。これにより、3Dモデル上に細かいパーツをモデリングすることなく、色やディテール、サーフェスの特徴を加えることができます。紙のモデルにデザインをペイントするようなものですが、この場合、「紙」はポリゴンメッシュで、「ペイント」は色、粗さ、バンプなどの情報を保持するビットマップイメージです。
コンピュータグラフィックスでは、テクスチャマッピングにUV座標を使用します。UV座標は、3Dモデル上に平面画像をどのように巻き付けるかをソフトウェアに指示する2Dグリッドのようなものです。この平面テクスチャの水平方向と垂直方向を表すのが 「U 」と 「V 」で、3Dモデルの方向と混同しないように 「X 」と 「Y 」は使いません。
その仕組みは?
この時点から、レンダーエンジンは画像を描画しながらテクスチャから色を選び、テクスチャの小さな正方形(テクセル)を画面のピクセルに合わせます。
テクスチャは単に色を加えるだけではありません。さまざまな効果を生み出すために、いくつかのタイプのテクスチャマップを併用します。これらのマップは、サーフェスが光にどのように反応するか、環境をどのように反射するか、あるいは形状をどのように変化させるかを示すのに役立ちます。以下に最も一般的なタイプを紹介します:
テクスチャ座標、つまりUVは、これらのマップを正しく表示させるためのガイドになります。メッシュの各頂点には、2Dテクスチャのどの部分に対応しているかの情報が含まれており、複雑な見た目を少ないポリゴンで実現できます。テクスチャが伸びたり重なったりしないように注意しましょう。そうした問題があると、テクスチャが歪んでリアルさが損なわれてしまいます。
テクスチャ空間の考え方はとても重要です。これは、テクセル(テクスチャのピクセル)を3Dモデルの表面にどう貼り付けるかを決める座標システムのことで、中でも特に大事なのが「テクセル密度」です。これは、3Dモデルの表面1単位あたりに、どれだけのテクセルが使われているかという比率を意味します。
テクセル密度がモデル全体で一貫していないと、没入感があっという間に壊れてしまいます。たとえば、ある壁がシャープで細かく見えるのに、すぐ隣の壁がぼやけて見えるということがあります。これは、テクスチャの解像度(テクセル密度)が両者の間で均一でないために起こります。
視覚的なまとまりを保つ:
テカメラのように考える:クスチャのディテールは、カメラが近づく場所で最も重要です。シーンがどのようにフレーミングされ、オブジェクトがカメラからどの程度離れているかに基づいて、テクスチャ解像度を集中させます。
まず、3Dモデルをアンラップして、使用可能なUVレイアウトを作ります。これは、テクスチャを正しく適用できるように、モデルの表面を平らにするということです。Blender、Maya、3ds Max、Cinema 4Dなどのプログラムには、このための強力なツールがあります。単純な形状にはボックスアンラップを使用し、より詳細なモデルには手動で継ぎ目を設定します。適切なアンラップを行うことで、テクスチャが伸びたり、見た目がおかしくなったりするのを防ぎ、ペイントやプロシージャルテクスチャを使用するためのきれいなベースを作ることができます。
Substance Designerのような、テクスチャを生成するプロシージャルツールを使ってテクスチャを作成することもできますし、Substance Painterのようなプログラムで手描きすることもできます。また、PhotoshopやGIMPのような画像編集ソフトウェアを使ってテクスチャを作成したり調整したりすることもできます。手描きや スタイライズされたテクスチャを作成する場合、Blenderのテクスチャペイントモードなどの3Dペイントツールを使えば、3Dモデルの表面に直接色やディテールをペイントできます。
ハイポリモデルとローポリモデルを扱う場合、ベイクは非常に重要です。法線マップ、アンビエントオクルージョンマップ、変位マップをベイクして、ハイポリのスカルプトモデルからローポリモデルにサーフェスの詳細をコピーします。これにより、レンダリングが詳細でリアルに見えると同時に、特にリアルタイムアプリケーションでは高速に実行されます。
レンダリングエンジンのシェーダエディタを使って、さまざまなテクスチャマップを適用したりミックスしたりしましょう。BlenderのCyclesでも、MayaのArnoldでも、Cinema 4DのRedshiftでも、シェーダを使えば、ディフューズ、法線、スペキュラなどのマップをレイヤーマテリアルに組み合わせて、現実世界の詳細なサーフェスを再現できます。
異方性フィルタリングとバイリニア補間を使用して、特に鋭角で見たときにテクスチャが滑らかに見えるようにします。カメラとの距離に応じてテクスチャサイズを選びます。重要なクローズアップオブジェクトには高解像度を使い、遠くの背景アイテムには低解像度を使います。テクスチャを圧縮してメモリ使用量を減らし、リアルタイムプロジェクトではテクスチャストリーミングを使用して、必要なときに必要なテクスチャだけをロードし、余分なメモリ使用を防ぎます。
UVマッピングは、テクスチャを適用する最も一般的で柔軟な方法です。UVマッピングとは、3Dモデルを、UとVの座標を使用したフラットな2Dレイアウトにアンラップすることを意味します。このレイアウトは、3Dオブジェクトのサーフェス上に2Dイメージをどのように配置するかをソフトウェアに正確に伝えます。UVマッピングは、テクスチャを配置する場所を正確にコントロールする必要がある場合に最適で、テクスチャペイントやハイポリモデルからのディテールのベイクなどの重要なステップです。
プロジェクションマッピングは、モデルをUVでアンラップする代わりに、幾何学的な投影を使って3Dオブジェクトにテクスチャを貼り付けます。より高速で、よりプロシージャルなので、デザインの初期段階や単純な形状を扱うときに便利です。一般的なタイプには、ボックスマッピング(立方体を包むように6つの側面から投影する)、球体マッピング(球体や目のような丸いオブジェクトに適している)、円筒マッピング(パイプやボトルのようなものに適している)などがあります。プロジェクションマッピングは、背景や環境オブジェクトに素早く使えて便利ですが、伸縮や継ぎ目が発生することがあるので、より詳細な結果を得たい場合は、手作業で修正する必要があります。
プロシージャルマッピングでは、テクスチャに画像ファイルを使用しません。その代わりに、アルゴリズムを使ってノイズ、大理石、木目などのパターンを自動的に作成します。これらのテクスチャは解像度に依存せず、継ぎ目も見えず滑らかに繰り返すことができるため、詳細で繰り返しのないサーフェスを素早く追加するのに適しています。
良いテクスチャマッピングは、良いライティングに大きく左右されます。テクスチャがどのように見えるかは、通常、テクスチャイメージそのものよりも、光がどのようにテクスチャに当たるかによって決まります。シェーダでは、拡散光、鏡面光、環境光がどのように作用するかに注目しましょう。また、複雑なパターンと影を作成するために、ライトを通してテクスチャを投影することを意味するゴボライティングを使用することができます。これにより、カメラやライトの動きに合わせて自然に変化する雰囲気や表面のディテールが加わります。
テクスチャマッピングは技術的なステップを踏むだけでなく、クリエイティブなプロセスでもあります。テクスチャマップの使い方、座標系、テクセル密度のコントロール方法を理解すれば、繊細な木目から光沢のあるエイリアンの肌まで、何でも作ることができます。そのため、UVマップの設定に時間をかけ、テクスチャのディテールをどれくらい使っているかに注意を払い、プロシージャル、ハンドペイント、写真ベースなど、さまざまなタイプのテクスチャを自由にミックスして、好みの見た目や スタイルを手に入れましょう。