Unity のライティングについて考えるときは、ライトに照らされたレンダリング対象を意味する コンテンツ と、シーンに存在し、照らされたアイテムやオブジェクトに影響を与えるライティングを意味する コンテキスト に分けて考えると、扱いやすくなります。
オブジェクトにライトを当てる場合、どの光源がオブジェクトに影響を与えているかを理解することが重要です。通常、直接光の光源はシーン内に存在し、シーン内のどこかしらに配置されていると思います。また、シーン内には、直接光の他にも反射や光のバウンスなどの間接的な光源もあります。これらのすべては、カメラがオブジェクトの表面を横切って見ることで最終的な結果を与えるために、オブジェクトのマテリアルに影響を与えます。
これは、しっかりとした分類ではありません。しばしば “コンテンツ” と考えられることは、別のオブジェクトにとってライティングコンテキストの一部になる可能性もあります。
これのよい例は砂漠の風景の中にある建物になるでしょう。この建物は Skybox から光の情報を取得し、おそらく周辺の地面から光の跳ね返りを受けます。
しかし、建物の外壁近くにキャラクターが立っているかもしれません。このキャラクターにとって建物はライティングコンテキストの一部です。すなわち、ビルが影をキャスティングするかもしれませんし、キャラクターに建物の外壁から跳ね返されたライトをキャスティングしているかもしれませんし、キャラクターが建物そのものを直接反映している反射パーツを持っているかもしれません。
起動するとき Unity 5 は、空(から)のシーンを示します。このシーンには、すでに周囲、skydome ベースの反射と指向性光で利用できるデフォルトの lighting context を持っています。そのシーンに配置される任意のオブジェクトは、デフォルトで、それが正しく見えるために必要とするすべての照明がなければなりません。
デフォルトの lighting context のエフェクトを見るために、シーンに球体を追加してみましょう。
加えられた球体は、デフォルトでは標準シェーダーを使用することになります。球体の上にカメラの焦点を合わせると、このようになります。
茶色(底)から空の青色(トップ)までの微妙な環境はもちろん、球体の縁に沿っての反射に注意してください。デフォルトでは、空(から)のシーンでは、すべての照明コンテキストは skybox と(デフォルトで、シーンに加えられた)directional light に由来します。
もちろん、これはデフォルトの設定です。単一の照明や空の反射がある場合には十分ではありません。照明や反射プローブをより簡単に追加することができます。
どのように反射し、光プローブが仕事するかについての詳細は、ライトプローブ および リフレクションプローブ ドキュメントを参照してください。
ベイクした、または手続き的な Skybox は、照明のセットアップに不可欠な一部にすることができます。それは空のレンダリングに加え、オブジェクト内の ambient lighting や反射を制御するために使用することができます。 手続き的なスカイボックスはまた、ビットマップを使用するのではなく太陽円を直接色を設定して作成することができます - 詳細は、Skybox Documentation に記載されています。
skybox を反映すると、シーン、特に屋外のシーンで多くのオブジェクトのために役立ちます。オブジェクトが使用する反射を変化させる必要がある場合がしばしばあります。たとえば、路地や密林など屋外のシーンでの暗いエリアや、各部屋に合わせた反射を必要とする内部のエリアがあるかもしれません。
これらのさまざまな反射の要件のニーズを満たすために、Unity は、任意のオブジェクトのためのデフォルトの skybox の代わりに近いポイントに、周囲光と反射源として使用するために、空間内の特定のポイントでシーン内の環境をサンプリングすることができる reflection probes を持っています。反射プローブは、シーンの skybox が十分ではないか、適切ではない任意の場所でのシーンの周りに配置することができます。
Global Illumination の概念は Unity 5 に不可欠です。標準シェーダーと Unity 5 の GI システムの両方がお互いにうまくプレイするように設計されています。GI システムは、はねる光、emissive マテリアルからの光、および環境からの光の作成や追跡に注意します。 ライティングウィンドウ で詳細を見ることができます。
コンテキストは、イメージの全体の外観の重要な部分です。この例では、コンテンツとカメラが同じままで、シーンのコンテキストの変化がどう反映しているかを見ることができます。
コンテンツは、レンダリングされているシーン内のオブジェクトを記述するために使用される用語です。その様子は、オブジェクトに適用されているマテリアルに作用した照明コンテキストの結果です。
標準シェーダーを使用しているインスペクターのマテリアルを表示すると、エディターは textures 、blending modes 、masking および secondary maps を含むマテリアルのすべてのパラメータを表示します。一目で使用している機能を確認し、マテリアルをプレビューすることができます。 標準シェーダーとしてはデータ駆動型です。 Unity はユーザーがマテリアルに設定した構成で必要なシェーダーコードを使用するだけです。言い換えれば、マテリアルの特徴やテクスチャスロットが使用されていない場合は、そのためのコストはありません。そして、シェーダーの組み合わせが舞台裏で最適化されます。
標準シェーダーでは、マテリアルの種類を豊富にするための多くの設定が可能です。テクスチャマップやカラーピッカーとスライダーで値を設定することができます。一般に UV マッピングでは、メッシュのどの部分がテクスチャマップのどの部分を参照するかの記述が、テクスチャとともに要求されます。標準シェーダーマテリアルは、したがって、specular や smoothness マップ、 metallic マップと組み合わせて使用するとき、同じメッシュを横断して異なるマテリアルプロパティーを持つことができます。別の言い方をすると、スムーズな境界線とマテリアルの種類の遷移を可能にするポリゴントポロジーを、テクスチャ解像度が超える事ができるような1つのメッシュ上に、ゴム、金属、そして木材を作成することが可能です。もちろん、これによりワークフローがより複雑になる事が予測されますが、テクスチャの作成方法に依存します。
マテリアルのためのテクスチャは2つの方法のいずれかで生成される傾向があります。- Photoshop のような 2D 画像エディターか、3D パッケージからレンダリング/ベイクして、ペインティングまたは合成する方法です。アルベドや specular および他のマップに加えて、法線マップと occlusion マップを生成するために、より高い解像度のモデルを利用することができます。このワークフローは使用する外部のパッケージに依存して変化します。
一般的に、テクスチャマップは、固有の lighting ( shadows 、highlights 等) を含めることはできません。PBS ( Physically Based Shading ) の利点の1つは、期待したようにオブジェクトが光に反応するということです。そして、マップがすでにライティング情報を含んでいる場合は不可能です。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.