Looking Glass Documentation
Buy Looking GlassDiscord
  • Looking Glass User Guide
  • NEW! ✨Looking Glass Go✨
  • Displays
    • 🔮Looking Glass Go
      • ⚡Get Started with Looking Glass Go
      • 📱Using the Go Mobile App
      • 🔆Liteforms™
      • 🖥️Standalone and Desktop Modes
      • 🔌Power and LED States
      • 🪄Default Playlist
      • ⏭️What's Next?
      • 👜Accessories
      • ⚙️Advanced Playlist Creation
      • ⚙️Manual Firmware Update
      • ❓Common Troubleshooting Issues
    • 🔮Looking Glass 16" Light Field Displays
      • 🪄Looking Glass 16" Light Field Display (Landscape)
      • 🪄Looking Glass 16" Light Field Display (Portrait)
      • ❓Common Troubleshooting Issues
    • 🔮Looking Glass 32" Light Field Displays
      • 🪄Looking Glass 32" Light Field Display (Landscape)
      • 🪄Looking Glass 32" Light Field Display (Portrait)
      • ❓Common Troubleshooting Issues
    • 🔮Looking Glass 65" Light Field Display
    • 🔮Looking Glass Portrait
      • ⚡Get Started with Looking Glass Portrait
      • 🎇Demo Holograms
      • ❓Common Troubleshooting Issues
  • Software Tools
    • 📚Overview
    • 🌉Looking Glass Bridge
      • ✨Using Looking Glass Bridge
      • 🪟Display Settings on Windows
      • 🍎Display Settings on macOS
      • 🐧Display Settings on Linux
      • 👷Troubleshooting
    • 📽️Looking Glass Studio
      • 📚Using Looking Glass Studio
      • RGB-D Photo / Video
      • Quilt Images / Video
      • iPhone Portrait Photos
      • Android Depth Photos
        • Samsung Portrait Mode
      • Light Field Photosets
      • Exporting Holograms
      • Troubleshooting
    • 🧊Looking Glass Blocks
      • ✨Convert any image into a hologram
      • ⬆️Uploading, editing and sharing Quilts
      • 🥽Viewing your holograms on different platforms
    • 🎬Hologram Video
    • 🔆Liteforms™
      • 🪟Get Started on Windows
      • 🍎Get Started on MacOS
      • 🧙Making Custom Liteforms
      • 🏪Configure Liteforms for Kiosk Setup
    • 👀Looking Glass Model Viewer
    • 🧪Experiments
      • 📽️Media Encoder
      • ⏩Looking Glass Media Encoder
  • Key Concepts
    • 🔑Hologram 101
      • 🎉Making great holograms
      • 🌎Holograms in the real world
      • 👾Holograms, but virtual
    • 🔍How does Looking Glass Work?
    • 📸Virtual Camera
    • 🧊3D Design Guidelines
      • Lighting
      • Post-Processing
      • Scene Composition
      • Materials & Textures
      • Performance
    • 💡Quilts
      • 🎬Quilt Video Encoding
    • 💡Light Fields
      • ⚡Linear Light Field Capture
    • 📽️Filming a Looking Glass
  • Creator Tools
    • 🎨Overview
    • 🔌Unity
      • ⚡Using Unity with Looking Glass
      • Setting up your Development Environment
      • Example Scenes
      • Prefabs
        • Hologram Camera
        • 3D Cursor
        • Dual Monitor Application
      • Script Reference
        • HologramCamera.cs
        • LKGDisplaySystem.cs
        • QuiltCapture.cs
        • Cursor3D.cs
        • OrbitControls.cs
        • BlockUploader.cs
        • MobileDMAController.cs
        • iOS Sample Scene Scripts
          • ChangeInteractionModality.cs
          • XYSlider.cs
          • XYSpotlight.cs
          • AudioRotateControl.cs
          • ModelController.cs
          • DemoIOSUIController.cs
          • PageHandler.cs
          • PageConnectHandler.cs
          • PageCalibrateHandler.cs
          • PageTestHandler.cs
          • DynamicAlcove.cs
      • Package Integrations
        • Built-in Render Pipeline Post-Processing
      • Developing for iOS
      • Depth of Field and Other Post-Processing Effects
      • Quilt Video Audio and Playback
      • Developing for Ultraleap Hand Tracking on Looking Glass
      • Looking Glass Pro (Legacy)
      • Additional Support
      • Change Log
    • 🍹Blender
    • 🔌Unreal Engine
      • 🗒️Change Log and Old Versions
      • 💽Installing the Unreal Engine plugin
      • 🎥Using the Unreal Engine Plugin
        • Using the HoloPlay Capture
        • Exporting Quilt Images and Video with Sequencer
      • Accessing HoloPlay Data with Blueprint Scripting
      • Packaging the Project
      • Unreal Engine 4 (Legacy Support)
        • Unreal Engine 4 Quick Start
          • Using the HoloPlay Capture
          • Exporting Quilt Images and Video with Sequencer
    • 🌐WebXR
      • 🔶PlayCanvas
      • 3️⃣3️⃣ Three.JS
      • ⚛️React-Three-Fiber
      • 🌈Spline
  • Tutorials
    • 📱Running Looking Glass Displays with iOS Devices
    • Ⓜ️Capturing Light Fields in Maya
    • 🧑‍🔬Using ShaderToy with Looking Glass
    • 🎨Sculpting with Adobe Medium and Looking Glass
    • 🔍Turn Videogames Holographic with Refract
    • 🖐️Building with Leap Motion
  • Developer Docs
    • ⚙️Looking Glass Bridge SDK
      • 🪛Web Application Integration
      • 🔌Integrating Native Applications
      • 📓Native Function Reference
    • 🐦Looking Glass Core Migration Guide
  • Third Party Software
    • 🗡️3D Slicer
    • 🔬VTK (Visualization Toolkit)
    • 🗺️ParaView
    • 🔩Community Made Tools & Projects
  • Legacy Software
    • 📡3D Model Importer
      • 3D Model Importer App Guide
      • 3D Model Importer App Reference
    • 🎭Diorama
      • Change Log
    • 🎞️Depth Recorder
    • 📸Lightfield Photo App
    • 🍍Looking Glass Core Overview
    • 🍽️Looking Glass Core SDK
      • C API Overview
        • HoloPlayCore.h
          • State Functions
          • General-Query-Functions
          • Device-Query-Functions
        • libHoloPlayCore.h
        • HoloPlayShaders.h
    • 🔰Looking Glass Core JS
      • API
        • HoloPlayCore.Client
        • HoloPlayCore.Message
        • HoloPlay Service Related
        • examples
  • Legacy Hardware
    • 🔻Looking Glass 8.9"
    • 🔻Looking Glass 15.6"
    • 🔻Looking Glass 8K
    • 🔻Looking Glass 16"
    • 🔻Looking Glass 32"
    • 🔻Looking Glass Pro
  • 💬Contact Us
  • 🛠️FAQ & Troubleshooting
Powered by GitBook

Follow us

  • Twitter
  • Instagram
  • LinkedIn
On this page
  • Placement
  • Prefer Point / Spot Lights
  • Light from Dramatic Angles
  • Move Lights Dynamically
  • Shadows
  • Use Separate Systems for Illumination and Shadow
  • Bake in Static Shadows
  • Adjust Shadow Settings
  • The Physical Environment
  • LED Lights
  • Demoing at Events
  • Fisheye Webcam

Was this helpful?

  1. Key Concepts
  2. 3D Design Guidelines

Lighting

Previous3D Design GuidelinesNextPost-Processing

Last updated 4 years ago

Was this helpful?

Light has a large part to play in creating a scene that is convincingly 3D. Reflective highlights add dynamism to surfaces and define contours of meshes. Shadows provide depth cues and models should ideally pick up self-cast shadows from other parts of the mesh as well as having shadows cast below or behind them.

Unfortunately, applying all the following lighting effects may slow down your application's performance, so take what is most useful from the following to determine how to best light a scene.

Placement

Prefer Point / Spot Lights

Point and spot lights emit light from a specific 3D point, while directional lights do not. This makes spot and point lights feel more spatial as their intensities fall off over distance, and the shadows they create expand over distance.

Position these lights so they make useful shadows. Also, experiment with the range variable on the light component to accentuate falloff and to produce a good gradient of lighting / shading.

Light from Dramatic Angles

Well-placed shadows describe the spatial relationships between objects, which describes their relative depths. While scenes lit from the direction of the viewer will be bright, they will also appear flatter. Use multiple lights from interesting dynamic angles whenever possible.

Move Lights Dynamically

While many scenes cannot reasonably justify moving lights without distracting from the experience, a moving light is a powerful way to help the viewer's eye explore the scene. One great way to move lights is through user input, as the shows when the user waves their hand in front of the Looking Glass (if a Leap Motion is connected).

Shadows

Use Separate Systems for Illumination and Shadow

By default, lights used to shade a scene will also be lights used to drop shadows on a backdrop. This presents a number of challenges: how do you drop a shadow onto a backdrop without flattening the scene? How do you get dynamic side lights that don't wash out shadows?

Separating the lights into two separate systems allows the scene to produce both simultaneously. To accomplish this in Unity:

  1. Use dynamic side lighting that has shadows disabled

  2. Copy a shadow-casting mesh of the subject and disabling the mesh renderer (making it invisible)

  3. Add a light from the front that casts a shadow using the invisible mesh onto the backdrop, making sure that this light is set to ignore the visible mesh

Bake in Static Shadows

Lightmapping and offline light / shadow preparation should be used when possible for static meshes and lighting conditions. This will reduce render costs while improving overall visual quality.

Adjust Shadow Settings

Lights

If application performance allows, lights should use soft shadows.

Unity Quality Settings

Unity’s lighting and shadow system behaves best within a specific range. This default range looks best with a HoloPlay Capture object set to about 3 units in size. If models are imported much smaller or much larger, it may make sense to scale them to meet the HoloPlay Capture for lighting and shadow fidelity.

If you are stuck at a much larger or smaller scale, you can always go into “Quality Settings” and adjust the “Shadow Distance” to make it better scale to your scene.

The Physical Environment

Viewers of 3D Looking Glass content are always subconsciously trying to determine where the content physically lives. When possible, light the content as if it were in the physical space of the 3D Looking Glass to create a strong perceptual link between the digital and the physical worlds.

LED Lights

All Looking Glasses edge lighting that illuminate the front and back of the Looking Glass. Scenes should be built with these in mind.

Demoing at Events

If the developer is aware of the real-world lighting conditions under which the scene will be viewed (at a conference or event you are running, for example), matching in-Looking-Glass lighting with real-world lighting can enhance the illusion.

Fisheye Webcam

A more ambitious approach is to use a fisheye webcam to pick up light and use that as a lighting feature. Draw the webcam feed onto the skybox, then add a reflection probe to your model so that it picks up ambient light -- audience members will see silhouettes of themselves reflected onto your scene.

🧊
Froggo demo