ただの適当な開発記

会社勤めしつつUnityでアプリ作ってる人の雑記

マテリアルやらテクスチャやらスプライトやら3Dはよくわからん

developers.mobage.jp

ここに乗ってる3D用語の意味見てなんとなくしか理解してなかったことに気付いた。

===引用===

・3次元の座標上の点=頂点(バーテックス)

・頂点の集まりの最小単位=ポリゴン(だいたい三角形)

・ポリゴンの集まり=メッシュ

・メッシュを物体として意味のある形にしたもの=モデル

・メッシュに貼り付ける絵=テクスチャ

・メッシュのどこにテクスチャのどこを対応させるか=UV マップ

・どういう光がどっちにさしているのか=ライティング

・メッシュとかテクスチャとかライティングを元にどう描画するかを決めるもの=シェーダー

・テクスチャとシェーダーに関する設定をひとまとめにしたもの=マテリアル

==========

UVマップのUとVって何の略だろうと思ったら単純に座標のxyzと意味と同じらしく,イメージの座標を(u,v)で表しているからuvマップというらしいです。

ライティングはlightingね。

今までなんとなくunity上でmaterial.maintexture(うろ覚え)みたいなアクセスをしていた
けど、materialがテクスチャを内包しているっていうのをコード上で既に何回も体験していたんですね。全く気にしてなかった。

というわけでunityのリファレンスを見てみた。

docs.unity3d.com

===引用===

マテリアルを使用して,Textures を GameObject に置くことができます。 マテリアルなしでテクスチャを直接追加することはできません。追加しても,暗黙のうちに新しいマテリアルが作成されます。 適切なワークフローは,マテリアルを作成し,シェーダを選択,それと共に表示するテクスチャ アセットを選択することです。 マテリアルの詳細については,Materials に関するマニュアルのページを参照してください。

========

>マテリアルなしでテクスチャを直接追加することはできません。
確かに、unity上でTexutureType:Texutreでインポートした画像はそのままHierarchyにドラッグしても画面上に置けない。

じゃあ普段unity上で画像を描画する際にシーンに置いているSpriteとは一体なんなのか。

サイトA:プログラミング 【非公式翻訳】SFML2.1チュートリアル

===引用===

「テクスチャ」って なぁに?
画像です。でも、どうして「テクスチャ」って呼ぶのかな?
それはですね、「2Dの物体に貼り付ける」っていう特別な役割があるからだよ。

「スプライト」って、なぁに?
テクスチャが貼り付けられた四角形、のことだよ。

========

スプライトに貼付ける画像はテクスチャだけど、そのテクスチャ自体は内部でmaterialを経由しているっていうことなのかな?

sfmlっていう言語についてはよう知らん

最近低レイヤーの部分を把握しているかどうかで実機上の動作性能チューニングができるかが決まることをとても実感しているので、もうちょっと調べてみる。