Mesh Rendererを理解したい

#初めに
普段何気なく使っているMeshRenderer。
意外とすべての機能を知り尽くしている人も多くなかれ。
ということで、色々調べてみてまとめてみようと思います。
詳しい人は是非とも編集リクエストをいただければと思います。
作るきっかけとして、私が理解したかったというのがあるので、大半はUnity公式リファレンスからとってきていると思います。
***

#実際に見ていく

***

##General
常に表示されている部分についてです。
***

###LightProbes
- **Off**：LightProbeを使用せずにレンダリングします。
- **Blend Probes**：デフォルトの設定。周囲のうち補間された１つのLightProbeを使用してレンダリングします。
- **Use Proxy Volume**：使うLightProbeProxyVolumeを指定して、補間したLightProbeの3DGridを使用してレンダリングします。

***

###ReflectionProbes
- **Off**: ReflectionProbeを使わずに、SkyboxのみをReflectionとして使用します。
- **BlendProbes**: ReflectionProbeを使用し、Probe内でのみブレンドをします。ReflectionProbeがない場合はデフォルトのReflectionを使用しますが、デフォルトのReflectionとProbeはブレンドされません。主に屋内環境を構築する際に役立ちます。
- **BlendProbes And Skybox**: BlendProbesに加えてデフォルトのReflectionともブレンドを行います。屋外環境を構築する際に役立ちます。
- **Simple**: ReflectionProbeを有効にはしますが、ProbeのVolume同士のブレンドをしません。

***

###Anchor Override
LightProbeやReflectionProbeが使用される場合にTransformを入れておくと、補間位置がその場所に指定されます。

***

###Cast Shadows
- **On**: このメッシュに光が当たった際に、表面のみの影を生成します。
- **Off**: このメッシュに光が当たったとしても、一切影を生成しません。
- **Two Sided**: Onのように影を生成しますが、表面と裏面の両方に対する影を生成します。
- **Shadows Only**: このメッシュの表面に対する影は生成しますが、メッシュそのもののレンダリングは行いません。

***

###Receieve Shadows
もしチェックマークがついていた場合、このメッシュに対して他のオブジェクトからの影を受け取ります。

***

###Motion Vectors
モーションベクトルとは、前フレームからどれだけ進んだかを表すベクトルです。[^1]
- **Camera Motion Only**: カメラの動きに対するモーションべクトルを計算します。
- **Per Object Motion**: オブジェクトごとにモーションベクトルパスを計算します。
- **Force No Motion**: このオブジェクトのモーションベクトルを0とします。

***

###Lightmap Static
ここにチェックマークが入っている場合、このオブジェクトはStatic Objectとして認識し、LightingのGI[^2]計算に組み込まれます。
Static Objectとして設定した時には通常、自動でチェックマークが入ります。
もしチェックマークが入っていない場合、このオブジェクトはDynamic Objectとして認識し、LightProbeを用いてライティング処理されます。

***

###Materials
このオブジェクトにレンダリングするマテリアルの数と実際のマテリアルを指定します。

***

###Dynamic Occluded
ここにチェックマークが入っている場合、StaticなオブジェクトでなくてもOcclusionCullingを適用させます。

***

##UV Charting Control
UV Chartとは、各Objectの法線に基づいてマス目のように分割される文字通りUVのチャートのことです。
GI[^2]計算に使用されますが、詳しくは、[ここ](https://docs.unity3d.com/ja/2018.1/Manual/LightingGiUvs.html)や[ここ（英語）](https://www.slideshare.net/UnityTechnologiesJapan/unite-2018-tokyo-96503976)をご覧ください。 

***

###Optimize Realtime UVs
ここにチェックマークが入っていると、メッシュがGI[^2]用に最適化されます。
ただし最適化した際に、尖がっているところが別とつながった表面になっている等の誤認識される可能性もありますので、ご注意ください。

***

####Max Distance
UV Chartを簡略化する最大空間距離を指定します。
この指定した空間内にあるメッシュは簡略化されます。

***

####Max Angle
Max Distanceの角度版です。指定した角度より小さいと簡略化されます。

***

###Ignore Normals
ここにチェックマークが入っていると、RealtimeGI[^2]の事前計算中にUV Chartが分割されるのを防ぎます。

***

###Min Chart Size
UV Chartに使用する最小のテクセルサイズを指定します。
- **4(Stitchable)**: 4x4のテクセルを生成し、LightingとDirectionalityをuvに格納します。
- **2(Minimum)**: 2x2のテクセルを生成して、LightingとDirectionalityをuvに格納します。4x4よりもテクセル密度が減少している分、ライティングのビルド時間を削減するので、パフォーマンスが上昇します。

***

##Lightmap Settings
Lightmapとは、Bake処理をした際に生成されるマッピングのことです。
ここでは、Lightmap自体については解説しません。
***

###Scale in Lightmap
これは、LightmapのGameObjectに対するUVの相対的サイズを指定します。
いわゆるLightmap解像度の倍率です。
値を0にするとLightmapは適用されませんが、Emissionは発生します。
暗い所では、倍率を低くするとよいでしょう。

***

###Prioritize Illumination
ここにチェックマークが入っていると、常にLightingの計算に含まれます。
Emissiveなものに非常に有効でしょう。

***

###Lightmap Patameters
Lightmap Parametersについてはここでは説明しません。
- **Scene Default Parameters**: Scene内のデフォルトのパラメータが適用されます。
- **New Lightmap Parameters**: 自分で新規にパラメータを作成した場合にのみ表示されます。
- **Default High/Medium/Low/Very Low Resolution**: パラメータのResolutionの値に合わせた規定の設定になっているパラメータを使用します。詳しいことはViewを押してみてください。 

***
##インスペクタには出ない内部データ系

###Bounding box
コンポーネントには表示されないが内部的にはデータが存在する。skinedmeshrenderrerで設定し、script等でコピペする事で値を変える事が可能。
 ***

#参考サイト
・Unity公式マニュアル:https://docs.unity3d.com/ja/2018.1/Manual/class-MeshRenderer.html


[^1]: http://light11.hatenadiary.com/entry/2018/09/25/211539
[^2]: GIとは、Global Illuminationの略で、ここでは反射光まで計算するかどうか程度に考えてください。