Scott Jardine - True Lens

| Documentation

True Lens is a cinematic lens and film treatment tool for Unreal Engine, bringing a wide range of photographic effects into a single, artist-friendly Blueprint.

Develop your lens treatment directly alongside your camera and lighting, experiment with the look of your shot in real time and carry those settings through to your final render. With full Sequencer keyframing and Path Tracer support, True Lens is designed to fit naturally into your cinematic Unreal workflow.

Includes:

  • Anamorphic Bokeh

  • Pro-Mist Diffusion

  • Halation

  • Depth Haze / Lightwrap

  • Film Grain

  • Chromatic Aberration

  • Lens Distortion

  • Lens Dirt

  • Lens Flares

  • Gate Weave

  • Film Breath

  • Vignetting

  • Blur / Softening

  • Z-Depth Fog

Rendering Notes

Overscan is Recommended

Some True Lens effects sample pixels outside the visible frame. Without additional image data around the edges, this can result in artefacts or unwanted behaviour at the edge of the image when rendering. For cinematic rendering, using ~10% overscan will give these effects more image data to work with and help produce more stable results. Overscan can be set in the Camera tab/node in Movie Render Queue / Graph.

Match Your Screen Percentage to Your Final Output

For the most consistent results, keep your Screen Percentage in the editor matched, or as close as possible, to the resolution you are outputting at. Some effects are resolution dependent, so a significant difference between your preview and final render can change how certain effects appear. For example, r.ScreenPercentage=50 and r.ScreenPercentage=100 will produce different results.

IMPORTANT INFORMATION

The 16mm and 35mm film grain .mp4 files included in the "Additional Files" must be added to your Unreal Engine project as Media Source files inside a Content > Movies folder.

If the .mp4 files are not placed inside the project's Content > Movies folder, the film grain media will not play back when Use Media is enabled in the Film Grain tab in the Blueprint and will instead darken your image incorrectly.

Alternatively, you can add your own film grain plates here and use them with True Lens.

hi scott!
excited to try the plugin. just wanted to report a few bugs my ai agent found:

  • It writes to every CineCamera in the level, every tick. CameraProperties uses GetAllActorsOfClass and sets SqueezeFactor, Filmback SensorWidth and DiaphragmBladeCount (forced to 12) on all of them. That overrides any camera with its own anamorphic or filmback setup, even with Anamorphic Bokeh off. Could it target one chosen camera, and only write when the toggle changes?

  • It sets global console variables. t.MaxFPS <FPS> caps the whole editor (24 by default), and r.GaussianBloom.Cross changes bloom project-wide and stays set after the actor is removed.

Really cool Scott, will performances improvements come with time? right now it adds quite a bit of ms’s on top of the GPU rendering (3070ti)

Thanks so much. So in regards to the cine camera actor I can certainly look to improve and adjust the method currently in place to adjust the camera parameters. It was set this way due to BP limitations on sequencer communication to reach only the active camera, but I will aim to make this more efficient. As for the max FPS this is set globally as a few of the materials rely on this time to run their functions correctly at render time. I can however look to adjust the cvars to be restored once the actor is destroyed.

Hey Alessandro, appreciate your comment. Yes this is my biggest area of development at the moment and the next update will hopefully have significant improvements to the most costly material calculations.