Search Unity

リアルタイムアプリケーション向けの高品質なライトを作成するための高度なテクニックに関する包括的なエキスパートガイド(PDF)を公開しました。このガイドを読んで、ゲームや建築のビジュアリゼーションから映画などに至るまで、どんなプロジェクトにおいても納得できる人工光源を作るためにライトのクッキーと高度なシェーダーを使用できるか是非ご覧ください。

ちょっと待って、ライトのクッキーって何?これらは、放出されるライティングの形状、強度、そして色を制御する目的で、光源の一部をブロックするために使用される2D テクスチャまたはキューブマップです。それらは、業界や使用事例に応じて「gobos」「cucoloris」または「flags」と呼ばれることもあります。

それらの助けを借りて、レイトレーシングのやわらかなシャドウ、トランスミッションカラー、さらには屈折力のあるコースティクスさえも効率的にシミュレートすることができます。実際、これらの効果をリアルタイムで完全にレンダリングすることは、市場で最も強力なGPUであっても、密に照らされた環境では著しくコストがかかります。これは、ベイクしたライトのクッキーがリアルタイムのシナリオで説得力のある照明を生み出すために依然として重要であるということになります。

 

補足:ビルトインのレンダーパイプラインは、(グレースケールの)ライトのクッキーを利用することもできます。 したがって、HD レンダーパイプライン(HDRP)と互換性がないプラットフォームでも高品質のシャドウをリアルタイムで再現できます。

今日の CGI(Computer Generated Image)に見られる一般的なライティングの間違いをいくつか指摘し、それらを防ぐ方法についてアドバイスを与えた後、エキスパートガイドは、Photoshop、3ds Max、Unity など、さまざまな 2D/3D プログラムを活用し、美しくノイズのないクッキーを生成するために必要なすべての手順を説明します。

さらに、露出やトーンマッピングなど、重要なポストプロセッシングを Unity で設定する方法についても説明します。これにより、インテリアシーンを物理的に正しい方法で照らすことができるのです。

次に、このガイドでは、光源(ライト)の物理的な「強度」の単位、カラーモード、シャドウパラメータ、および特定のオブジェクトに対しライティングを制限するために使用されるライトレイヤーなど、HDRP の重要なライトプロパティについて詳しく説明します。ガイドの後半では、HDRP の非常にフレキシブルな Lit シェーダを用い、シャンデリアのランプシェードを複製するさまざまな方法をお見せします。

最後に、リフレクターとランプシェードに見られる照明器具の自己反射および構造の不完全性をシミュレートするための極小ディテールを追加することで、仕上げの超リアルなタッチを光源にもたらす魅力的なコースティクス(caustics)を生成するオリジナルのワークフローをご紹介します。

 

Unity の新しいエキスパートガイドを読んで、説得力のある光源を作成するために数多くのツールを使えるようになり、Unityで作るシーンの視覚的なレベルを引き上げていただけると幸いです。

さあ、始めましょう!

22 コメント

コメントの配信登録

コメント受付を終了しました。

  1. Will these techniques work for a VR environment? What if the environment is ‘fully dynamic’ (all of the objects are moving and all light sources are realtime)?

    1. Pierre Yves Donzallaz

      2月 19, 2019 7:26 pm

      Yes, it will work as well. The shadows baked in the cookie are only relative to the prop itself, not the rest of the environment. So if you do need real-time shadows, you can enable them simultaneously. Typically a lantern carried by a character or a moving chandelier. The performance considerations associated with real-time shadows remain, however. More often than not, having a good cookie, without real-time shadows, can go a long way (very common in games).

  2. Thank you for the great guide! Could you make the assets available as well to play around with to follow along with the guide?

    1. Pierre Yves Donzallaz

      2月 19, 2019 7:30 pm

      Thank you. The guide provides a link to some of the assets (the baking sphere and a wall lamp), this should be a good starting point. You just need to drop the lamp FBX into the scene and add the baked cookie texture to the Cookie property of the light gameobject. It’ll work for both HDRP and built-in render pipeline.

  3. Beard or Die

    2月 12, 2019 6:55 pm

    Can you get Sykoo/Sam to do a video that shows the steps in this document?

  4. The part of the paper on fixing the results in photoshop is ineffective.
    You can rotate the uv faces correctly right in max, and combine them into a single 0-1 uv space, and render into a single 6/1 texture.

    1. Also can you remove my photo, why it it here even? Remove the post as well for good measure.

      1. nevermind, had to login into gravatar (hi 2000s) to change it.

    2. Pierre Yves Donzallaz

      2月 7, 2019 12:38 pm

      “Render to texture” in 3ds Max doesn’t support 6:1 aspect ratio, this means you’d have to crop your frame, and it is less efficient to render a 6144*6144 texture than 6 independent 1024 textures.

      Also, the shader handling the cookie could differ between rendering pipelines: for instance, one could expect a 3*2 format instead of 6*1, and it could have a different expectation for the orientation of the faces. So handling all these operations in Photoshop, with the unique square textures as Smart Objects, is a lot better in terms of iteration time and flexibility, compared to restricting yourself to a fixed UV setup. And it’s a lot faster and easier to rotate the already-rendered frames in Photoshop, instead of having to constantly re-render the frames with different UV orientations until you find the right UV setup… I’ve been there, it’s painful.

      See it as a way to distinguish the content (i.e. the faces rendered in Max, agnostically) and their format (i.e. their orientations and placements in Photoshop). Using your solution would work, for sure, that’s what I did initially, but it isn’t flexible, nor efficient.

      1. Makes sense, what about editor script that handles that automatically? Ill try writing it on weekend.

  5. Amazing guide Pierre, thank you. A bit depressing how much work is required just for light fittings though. Hopefully in a few years this could be more streamlined, all within Unity.

  6. Great to see guides like these being posted. It looks to be quite in depth – I’ll have to bookmark it for later!

  7. Custom Phase

    2月 5, 2019 9:38 pm

    It says that HDRP’s Post Processing Stack supports EVs more than +9, however im on the latest HDRP version and it still only goes up to +9. Am i missing something? Is it just for PPS 5.0+?

    1. Pierre Yves Donzallaz

      2月 6, 2019 2:15 pm

      The new post-effects are getting fully integrated to HDRP itself. This is valid for HDRP 5.4, you can grab it from GitHub, “release\2019.1” branch. It isn’t available yet via the Package Manager, which is limited to 5.2.3 when using Unity 2019.1.0b2, as I write this message.

      If you grab the mentioned SRP branch from GitHub, and import the Core, Shadergraph and HDRP packages, you can then use the new exposure system by selecting your camera, adding a “Volume” component to it, and then clicking the “Add component override…” button, and picking the “Exposure” item.

      You can then override the exposure mode to “Auto”, this gives you a range from -10 to +20 EV by default, but you can go way beyond these values if you need to simulate a non Earth-based scenario or extremely bright light sources (e.g. way beyond 100’000 lux).

      You can also use the “Curve” mode, if you want to fully control the exposure with your own custom curve.

      And finally, you can also pick the “Use Physical Camera” mode, which ties the exposure to the new physical camera properties (ISO, aperture, shutter speed, etc.) set in the camera itself.

      It’s all becoming a lot more physically-correct!

  8. Really interesting, thanks so much for the detailed writeup!

  9. Those all look terrible.

    1. You’re being sarcastic I assume?

    2. They are intentionally exaggerated effects to show how they work, not practical examples.

      1. sterling crispin

        2月 6, 2019 5:07 pm

        They’re probably based on photographs of real lights, they look great. Sometimes if you’re being critical and looking for flaws you’ll find them where they don’t exist. This image has all kinds of weird things you could nit pick about its lighting realism but its a photo https://kingfisher.scene7.com/is/image/Kingfisher/Category_Image_Indoor_Wall_Lights

  10. This is a great write up! Thanks!!

  11. Alan Mattano

    2月 5, 2019 3:56 pm

    So useful!
    ¿ How to set up critical post-processing settings in Unity Settings in Unity, such as Exposure and Tone Mapping, so that your interior scenes can be lit in a more physically-correct way, one of HDRP’s ? YES pease!!

    Pierre, Is only one channel or in the future, there will be colour in the texture?

    1. Pierre Yves Donzallaz

      2月 5, 2019 4:37 pm

      Hello Alan, HDRP does support colored cookie textures yes, you aren’t restricted to grayscale cookies like in the Built-In render pipeline.