<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>relighting | WILL SMITH</title>
    <link>https://www-users.york.ac.uk/~waps101/tags/relighting/</link>
      <atom:link href="https://www-users.york.ac.uk/~waps101/tags/relighting/index.xml" rel="self" type="application/rss+xml" />
    <description>relighting</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Tue, 10 Nov 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://www-users.york.ac.uk/~waps101/img/icon-192.png</url>
      <title>relighting</title>
      <link>https://www-users.york.ac.uk/~waps101/tags/relighting/</link>
    </image>
    
    <item>
      <title>Virtual production on an iPhone</title>
      <link>https://www-users.york.ac.uk/~waps101/post/iphone-vp/</link>
      <pubDate>Tue, 10 Nov 2026 00:00:00 +0000</pubDate>
      <guid>https://www-users.york.ac.uk/~waps101/post/iphone-vp/</guid>
      <description>

&lt;p&gt;Virtual production used to mean a studio: a green screen or an LED wall, a lighting rig to light that screen evenly
and to light the actors flatly enough that their lighting can be fixed later, tracking markers, a motion-control or
tracked camera, and a team of compositors. The core idea is much simpler than the kit suggests: film a real
performance, then replace everything behind the performer with a virtual world, seen through a virtual camera that
moves exactly as the real one did.&lt;/p&gt;

&lt;p&gt;My argument in this post is that you no longer need the studio. The two jobs it does, separating the actor from the
background and controlling the light on the actor, can now be done by AI after the fact. So you can shoot anywhere: a
park, a street, your kitchen, in whatever light happens to be there, on whatever camera is in your pocket.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ll walk through the pipeline end to end, using nothing more exotic than an ordinary handheld video and
the free City Sample project for Unreal Engine.
In &lt;a href=&#34;https://pxld.ai&#34; target=&#34;_blank&#34;&gt;PXLD&lt;/a&gt;&amp;rsquo;s web app, the &lt;em&gt;Enter a new world&lt;/em&gt; pipeline does the whole thing for you: upload the clip, pick a 3D
world, and it tracks the camera, places your shot in the world, renders the background and a 360° view, mattes the
actors, composites them and harmonises the result. In this post I
swap in Unreal Engine as the renderer, which is a small change to the same pipeline. To show why each step matters,
I&amp;rsquo;ll also build the shot the naive way and show exactly where it falls down.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s where we&amp;rsquo;re going: on the left a couple walking through a leafy park, filmed in dappled sunlight with no green
screen in sight; on the right the same performance on a sunny city pavement. Studio and professional virtual production quality with nothing more than a mobile phone video and PXLD&amp;rsquo;s tools.&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/before_after.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;Left: the original footage. Right: the final result, re-staged in Unreal Engine&amp;rsquo;s City Sample and harmonised with PXLD.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;h2 id=&#34;the-recipe&#34;&gt;The recipe&lt;/h2&gt;

&lt;p&gt;Green-screen virtual production has a handful of ingredients. Strip away the hardware and you&amp;rsquo;re left with seven
steps:&lt;/p&gt;














&lt;figure&gt;


  &lt;a data-fancybox=&#34;&#34; href=&#34;pipeline.png&#34; data-caption=&#34;The pipeline. Orange steps are done automatically by PXLD from your clip; blue steps are rendering in Unreal Engine (or any renderer). The dashed arrow is the optional 360° lighting input to the harmoniser.&#34;&gt;
&lt;img src=&#34;pipeline.png&#34; alt=&#34;&#34; &gt;&lt;/a&gt;


  
  
  &lt;figcaption&gt;
    The pipeline. Orange steps are done automatically by PXLD from your clip; blue steps are rendering in Unreal Engine (or any renderer). The dashed arrow is the optional 360° lighting input to the harmoniser.
  &lt;/figcaption&gt;


&lt;/figure&gt;


&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Capture&lt;/strong&gt; the performance on video.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Track the camera&lt;/strong&gt; &lt;em&gt;(PXLD, automatic)&lt;/em&gt;: recover where the camera was and which way it pointed in every frame.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Align&lt;/strong&gt; the virtual scene to the real one, so the floor the actors walk on lines up with a floor in the virtual
world.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Render&lt;/strong&gt; the virtual scene through a camera that moves exactly like the real one, with the same lens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Matte&lt;/strong&gt; the actors &lt;em&gt;(PXLD, automatic)&lt;/em&gt;: cut them out of the original footage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Composite&lt;/strong&gt; the actors over the render &lt;em&gt;(PXLD, automatic)&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Harmonise&lt;/strong&gt; the result &lt;em&gt;(PXLD, automatic)&lt;/em&gt; so the actors look lit by the new world rather than the old one.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So you bring two things, the footage and the virtual world, and PXLD does the rest. (In New World, PXLD also places
and renders the shot, steps 3 and 4. In this post I render those in Unreal myself.)&lt;/p&gt;

&lt;p&gt;Steps 1–6 are classic visual effects. In a studio, the green screen exists to make step 5 easy, and the lighting rig
exists because there was no good step 7. Let&amp;rsquo;s go through them in turn.&lt;/p&gt;

&lt;h3 id=&#34;1-capture&#34;&gt;1. Capture&lt;/h3&gt;

&lt;p&gt;Shoot wherever the performance looks good. There&amp;rsquo;s no screen to stand in front of, no need to keep the actors a few
metres clear of it to avoid green spill, and no need to light them flat. This clip was filmed in a park in strong,
dappled sunlight: exactly the kind of lighting a compositor would normally beg you to avoid, because it&amp;rsquo;s baked into
the actors and can&amp;rsquo;t simply be switched off.&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/capture.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;The input: a handheld shot of two people walking. The camera tracks backwards in front of them.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;h3 id=&#34;2-track-the-camera&#34;&gt;2. Track the camera&lt;/h3&gt;

&lt;p&gt;To render a background that moves correctly, we need the real camera&amp;rsquo;s &lt;em&gt;pose&lt;/em&gt; (position and orientation) in every
frame, plus its focal length.&lt;/p&gt;

&lt;p&gt;In a virtual production studio this is a hardware problem. A typical setup bolts a small infrared tracking camera to
the cinema camera, pointing up at a ceiling covered in retro-reflective dots. Infrared emitters light the dots, the
tracking camera sees them, and because their positions in the studio have been surveyed, the camera&amp;rsquo;s position and
orientation can be worked out live. Other setups use an array of motion-capture cameras around the stage watching
markers on the camera rig, plus encoders on the lens to report zoom and focus. It works very well, but it&amp;rsquo;s expensive,
it has to be installed and calibrated, and it only works inside that room.&lt;/p&gt;

&lt;p&gt;You don&amp;rsquo;t need a separate tracking tool for this, or any tracking hardware:
&lt;strong&gt;PXLD solves the camera automatically&lt;/strong&gt; from the uploaded clip, with no markers and no lens data. It then exports
the track for Unreal, Blender or Nuke, ready to drive the virtual camera.&lt;/p&gt;

&lt;p&gt;Under the hood this is structure from motion. As the camera moves, static parts of the scene shift across the image by
amounts that depend on their distance, and that parallax pins down both the camera path and the scene&amp;rsquo;s 3D structure.
For virtual production a plain structure-from-motion solve isn&amp;rsquo;t enough, and PXLD&amp;rsquo;s track adds the two things it
lacks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Metric scale.&lt;/strong&gt; The camera path comes out in &lt;strong&gt;metres&lt;/strong&gt;, not some arbitrary unit. That matters because Unreal&amp;rsquo;s
world is metric too: a 1.7 m tall person needs to stand next to a 1 m tall bollard.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gravity and the ground.&lt;/strong&gt; The track knows which way is down and where the floor is, so it arrives with a floor at
height zero and a true vertical, ready to drop into the virtual scene.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Check it.&lt;/strong&gt; The simplest test is to draw a metric grid on that ground plane and project it back into the
  footage. If the track is right, the grid stays stuck to the pavement as the camera moves:&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/tracking.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;A 1 m grid on the recovered ground plane, projected through the solved camera. If it slid, the virtual background would slide under the actors&amp;rsquo; feet.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;h3 id=&#34;3-align-the-virtual-scene&#34;&gt;3. Align the virtual scene&lt;/h3&gt;

&lt;p&gt;Next, decide &lt;em&gt;where&lt;/em&gt; in the virtual world the shot happens. Technically this is a rigid transform: a yaw rotation plus
a translation that puts the tracked floor on top of a real floor in the virtual scene. Creatively it&amp;rsquo;s location
scouting, and there are a few hard constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the ground under the actors&amp;rsquo; feet must be flat for the whole shot (a kerb that the real actors didn&amp;rsquo;t step over
looks instantly wrong);&lt;/li&gt;
&lt;li&gt;nothing in the virtual scene may sit between the camera and the actors, because a 2D composite can&amp;rsquo;t put a lamp
post in front of someone (though this can be fixed by estimating the depth to the person);&lt;/li&gt;
&lt;li&gt;and here&amp;rsquo;s the fun part: we get to choose the &lt;strong&gt;sun&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PXLD builds a top-down map of any 3D world from an aerial render, then searches automatically for placements
that satisfy those constraints. Because sunlight is just rays, the map also predicts where the actors would be in sun
and where in shade, so it can pick spots where they walk through interesting light: here, a pavement dappled by tree
shadows.&lt;/p&gt;

&lt;h3 id=&#34;4-render-the-background&#34;&gt;4. Render the background&lt;/h3&gt;

&lt;p&gt;With the placement fixed, we turn the solved track into an Unreal camera, matching focal length, sensor size and
principal point, and render the empty scene frame by frame with Movie Render Queue. This is the &lt;strong&gt;background plate&lt;/strong&gt;:&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/plate.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;The background plate: Unreal Engine&amp;rsquo;s City Sample rendered through the tracked camera. The crowd of virtual pedestrians is switched off so nobody walks through the actors; the traffic keeps running.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;h3 id=&#34;5-and-6-matte-and-composite-the-naive-version&#34;&gt;5 and 6. Matte and composite: the naive version&lt;/h3&gt;

&lt;p&gt;Now cut the actors out and paste them in. In a studio this is where chroma keying comes in (more on that below). We
have no green screen, so we need a model that can find people against any background. In PXLD&amp;rsquo;s New World both steps
happen automatically, but it&amp;rsquo;s instructive to first do them the naive way. The quickest way to get a cutout like that is a
segmentation model: SAM 3 gives a
per-frame binary mask of each person (and, if you ask, the bag one of them is carrying). Paste the masked pixels over
the plate and you have a composite:&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/composite_sam3.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;The naive composite: SAM 3 masks, pasted straight over the plate.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;It&amp;rsquo;s surprisingly convincing at a glance: the camera move and the background agree, and the actors stay planted.
Watch it for a few seconds, though, and the illusion falls apart.&lt;/p&gt;

&lt;h2 id=&#34;what-s-wrong-with-it&#34;&gt;What&amp;rsquo;s wrong with it?&lt;/h2&gt;

&lt;p&gt;Three things, roughly in order of how quickly your eye notices them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The lighting doesn&amp;rsquo;t match.&lt;/strong&gt; The couple were filmed in green-tinged sunlight dappled by leaves, and that light is
baked into every pixel of them. They&amp;rsquo;ve landed on a bright, open city pavement lit from a different direction. Their
colours, contrast and shading all say &amp;ldquo;somewhere else&amp;rdquo;. Look at their feet: the pavement around them is crossed by
crisp tree shadows from the city&amp;rsquo;s sun, and the light on them doesn&amp;rsquo;t follow it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are no shadows or reflections.&lt;/strong&gt; In the real world the actors would block the sun and cast shadows across the
pavement, and darken the ground right under their feet. In the composite they cast nothing, so they seem to float on
the ground rather than stand on it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The edges are wrong.&lt;/strong&gt; A binary mask is either &amp;ldquo;person&amp;rdquo; or &amp;ldquo;background&amp;rdquo; at every pixel. Real edges aren&amp;rsquo;t like that:
hair, a mesh bag and motion-blurred hands are partly transparent, and edge pixels mix the person&amp;rsquo;s colour with
whatever was behind them in the &lt;em&gt;original&lt;/em&gt; scene. Cut those out with a hard mask and you keep a fringe of park around
the edges, or you lose the fine detail entirely.&lt;/p&gt;

&lt;p&gt;None of these are new problems; they&amp;rsquo;re exactly what compositors spend their days fixing by hand. PXLD&amp;rsquo;s tools exist to
take that work away.&lt;/p&gt;

&lt;h2 id=&#34;better-edges-ai-matting-instead-of-a-green-screen&#34;&gt;Better edges: AI matting instead of a green screen&lt;/h2&gt;

&lt;h3 id=&#34;what-a-green-screen-actually-buys-you&#34;&gt;What a green screen actually buys you&lt;/h3&gt;

&lt;p&gt;Chroma keying is the reason studios paint walls green. If you know the background is a single, saturated colour, you
can decide for every pixel how much of it is &amp;ldquo;screen&amp;rdquo; by how close its colour is to the key colour. That gives a
soft alpha matte, so hair and motion blur survive, and the background colour you know can be subtracted from the edges
(despill).&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s a clever trick, but every one of its assumptions becomes a rule on set:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the screen has to be &lt;strong&gt;evenly lit&lt;/strong&gt;, or the key colour drifts across it and the matte gets holes and noise;&lt;/li&gt;
&lt;li&gt;the actors have to stand &lt;strong&gt;well clear&lt;/strong&gt; of it, and even then green light bounces onto them (spill);&lt;/li&gt;
&lt;li&gt;nobody can wear &lt;strong&gt;green&lt;/strong&gt; (or anything reflective, or anything see-through);&lt;/li&gt;
&lt;li&gt;the actors are usually lit &lt;strong&gt;flatly&lt;/strong&gt;, so their lighting can be adjusted later to match the virtual scene;&lt;/li&gt;
&lt;li&gt;and the background behind the actor &lt;em&gt;has&lt;/em&gt; to be the screen, which means a &lt;strong&gt;studio&lt;/strong&gt;, not a location.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;learned-matting&#34;&gt;Learned matting&lt;/h3&gt;

&lt;p&gt;An AI matting model learns what people, hair, clothes and held objects look like, so it can separate them from &lt;em&gt;any&lt;/em&gt;
background: trees, traffic, a busy kitchen. You choose who to keep (here both people and the shopping bag), and it does
the rest.&lt;/p&gt;

&lt;p&gt;A segmentation mask like SAM 3&amp;rsquo;s is a first step, but it&amp;rsquo;s binary. PXLD&amp;rsquo;s matting (in its high-quality mode) produces
what a good chroma key does, without the screen. For every pixel it estimates&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an &lt;strong&gt;alpha&lt;/strong&gt; value $\alpha \in [0,1]$: how much of that pixel is foreground, and&lt;/li&gt;
&lt;li&gt;the &lt;strong&gt;foreground colour&lt;/strong&gt; $F$: what the person looks like in that pixel with the original background&amp;rsquo;s colour
removed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With those two, compositing is the textbook &amp;ldquo;over&amp;rdquo; operation, done in linear light:&lt;/p&gt;

&lt;p&gt;$$
C = \alpha F + (1-\alpha)\, B ,
$$&lt;/p&gt;

&lt;p&gt;where $B$ is the background plate. Because $F$ has the park&amp;rsquo;s spill taken out, soft edges take on the colours of
the &lt;em&gt;new&lt;/em&gt; background rather than the old one.&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/matte_zoom.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;Close-up. Left: a hard SAM 3 mask. Right: PXLD&amp;rsquo;s matte. Look at the hair against the bright building and at the holes that appear where the man&amp;rsquo;s elbow crosses the woman&amp;rsquo;s shirt.&lt;/figcaption&gt;
&lt;/figure&gt;








  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/composite_matte.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;The composite with PXLD&amp;rsquo;s matte (New World makes this automatically). Edges are clean, but the actors are still lit for a park.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;That&amp;rsquo;s the green screen made redundant. But the bigger problem remains: a perfect cutout of someone lit for a park
is still someone lit for a park. In a studio, this is why you&amp;rsquo;d light the actors flat and match them by hand later.&lt;/p&gt;

&lt;h2 id=&#34;better-light-pxld-harmonisation&#34;&gt;Better light: PXLD harmonisation&lt;/h2&gt;

&lt;p&gt;PXLD&amp;rsquo;s harmoniser takes the rough composite and re-renders the actors so that they belong in it. It removes the
lighting that was baked in when they were filmed, here the dappled park sun, and relights them for the new scene:
colour, contrast, shading and direction of light. It also adds the interactions a cut-and-paste can&amp;rsquo;t produce, such
as shadows on the ground.&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s what removes the last reason for a studio. You don&amp;rsquo;t need flat, neutral light on set, because the harmoniser
replaces whatever lighting you shot in. It&amp;rsquo;s a video model, so it works on the whole shot at once and stays consistent over time rather than
flickering frame to frame.&lt;/p&gt;

&lt;p&gt;Crucially, the harmoniser is not re-generating the person and their performance like a generative video model. Every pixel of a person and their performance is preserved, with only its shading and shadowing adjusted.&lt;/p&gt;

&lt;p&gt;On its own, the harmoniser has to infer the lighting from what&amp;rsquo;s &lt;em&gt;visible&lt;/em&gt; in the frame. But much of the light that
falls on a person comes from outside the frame: the sun behind the camera, the bright building opposite, the sky
overhead. So the harmoniser can optionally take a second input, a &lt;strong&gt;360° video centred on the camera&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&#34;rendering-the-360-view-in-unreal&#34;&gt;Rendering the 360° view in Unreal&lt;/h3&gt;

&lt;p&gt;Rendering a 360° view in Unreal is cheap, because we already have the camera track. At every frame I render six extra
cameras from the tracked camera position, each with a 90° field of view, pointing forward, back, left, right, up and
down &lt;em&gt;relative to the camera&lt;/em&gt;. Then I stitch the six cube faces into an equirectangular image. The six faces are
rendered in the same pass as the plate, so the cars, crowds and sun are identical across all seven views.&lt;/p&gt;

&lt;p&gt;The result is an equirectangular (ERP) video in the camera&amp;rsquo;s own frame: the centre of the image is where the camera
is looking, the left and right edges meet behind the camera, and the top and bottom rows are straight up and down.&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/erp360.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;The 360° view from the camera position, in the camera&amp;rsquo;s frame (centre = camera forward). The sun and the sunlit street behind the camera are what the actors should be lit by.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;p&gt;Because the 360° view follows the camera, the harmoniser knows where the light comes from &lt;em&gt;relative to the shot&lt;/em&gt;,
including sources that never appear in the frame. When the actors walk from shade into sun, or the camera turns
towards a bright facade, the lighting on them changes accordingly.&lt;/p&gt;

&lt;h3 id=&#34;the-result&#34;&gt;The result&lt;/h3&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/harmonised.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;The harmonised result: PXLD matte plus PXLD harmonisation, lit from the 360° render.&lt;/figcaption&gt;
&lt;/figure&gt;















&lt;figure&gt;


  &lt;a data-fancybox=&#34;&#34; href=&#34;stages_crop.jpg&#34; data-caption=&#34;The same moment, three ways. Left: hard SAM 3 mask. Middle: PXLD matte (clean edges, but still park lighting). Right: harmonised (lit by the city sun, with a cast shadow on the pavement). Zoom in and compare the pixelated boundary of the woman&amp;rsquo;s shirt in the SAM3 mask to PXLD&amp;rsquo;s soft matte. Also note how SAM3 pulls in background in the man&amp;rsquo;s hand and between his arm and body and colour spills onto the outer edge of his sleeve. PXLD&amp;rsquo;s matte fixes all of these.&#34;&gt;
&lt;img src=&#34;stages_crop.jpg&#34; alt=&#34;&#34; &gt;&lt;/a&gt;


  
  
  &lt;figcaption&gt;
    The same moment, three ways. Left: hard SAM 3 mask. Middle: PXLD matte (clean edges, but still park lighting). Right: harmonised (lit by the city sun, with a cast shadow on the pavement). Zoom in and compare the pixelated boundary of the woman&amp;rsquo;s shirt in the SAM3 mask to PXLD&amp;rsquo;s soft matte. Also note how SAM3 pulls in background in the man&amp;rsquo;s hand and between his arm and body and colour spills onto the outer edge of his sleeve. PXLD&amp;rsquo;s matte fixes all of these.
  &lt;/figcaption&gt;


&lt;/figure&gt;


&lt;p&gt;Side by side with the matte-only composite, the difference is obvious. The green, leaf-dappled park light is gone;
the couple pick up the warm, hard sunlight of the street, their contrast matches the plate, and they cast shadows on
the pavement:&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/matte_vs_harmonised.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;Left: matte-only composite. Right: harmonised.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;h2 id=&#34;more-examples&#34;&gt;More examples&lt;/h2&gt;

&lt;p&gt;I applied the same pipeline on a few very different shots. In each case the left side is the original footage and the right side is the harmonised result at a different location in the City Sample scene.&lt;/p&gt;







  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/example_basketball.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;Basketball under a freeway. I placed the camera so that the freeway&amp;rsquo;s shadow edge splits the group: half the players in sun, half in shade.&lt;/figcaption&gt;
&lt;/figure&gt;








  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/example_bike.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;A drone shot of a cyclist on a clifftop path, moved to a waterfront road. She rides out of the sun into the shadows of the buildings.&lt;/figcaption&gt;
&lt;/figure&gt;








  
  



&lt;figure class=&#34;video-figure&#34;&gt;
&lt;video style=&#34;width:100%; height:auto;&#34; preload=&#34;metadata&#34; playsinline autoplay loop muted &gt;
  &lt;source src=&#34;https://www-users.york.ac.uk/~waps101/~waps101/post/iphone-vp/example_sprint.mp4&#34; type=&#34;video/mp4&#34;&gt;
&lt;/video&gt;
&lt;figcaption&gt;A sprinter on a curved running track, moved to an open city junction.&lt;/figcaption&gt;
&lt;/figure&gt;


&lt;h2 id=&#34;what-you-no-longer-need&#34;&gt;What you no longer need&lt;/h2&gt;

&lt;p&gt;Put together, the pipeline removes most of the reasons a studio exists:&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;In a studio&lt;/th&gt;
&lt;th&gt;Here&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Green screen, evenly lit&lt;/td&gt;
&lt;td&gt;Shoot against anything. AI matting separates the actors&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Keep actors away from the screen, no green costumes&lt;/td&gt;
&lt;td&gt;No screen, so no spill and no costume rules&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Flat, neutral lighting on the actors&lt;/td&gt;
&lt;td&gt;Shoot in any light. The harmoniser relights the actors for the virtual scene&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Tracking hardware: infrared markers on the ceiling, a tracking camera on the rig, lens encoders&lt;/td&gt;
&lt;td&gt;Automatic, markerless camera tracking by PXLD, straight from the video&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;Hand-painted shadows and colour matching&lt;/td&gt;
&lt;td&gt;Harmonisation adds shadows and matches light and colour&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;What&amp;rsquo;s left is the part that was always the point: a performance, a camera move, and a world to put them in.&lt;/p&gt;

&lt;h2 id=&#34;try-it&#34;&gt;Try it&lt;/h2&gt;

&lt;p&gt;There are two ways to use this with &lt;a href=&#34;https://pxld.ai&#34; target=&#34;_blank&#34;&gt;PXLD&lt;/a&gt; today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fully automatic:&lt;/strong&gt; use &lt;em&gt;Enter a new world&lt;/em&gt; in the web app. Upload your clip and choose a 3D world, and PXLD tracks the
camera, places the shot, renders the background plate and the 360° view, mattes, composites and harmonises. You get
the finished shot back.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bring your own renderer:&lt;/strong&gt; use the web app for the matte and the camera track, and export the track to Unreal,
Blender or Nuke. Render the background (and, optionally, the 360° view) yourself, composite the matte over it,
and upload the composite to PXLD&amp;rsquo;s harmoniser. That&amp;rsquo;s the route this post follows with Unreal Engine, and nothing
about it is specific to Unreal: any renderer that can reproduce your camera and render six cube faces will do.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;credits&#34;&gt;Credits&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Background scenes:&lt;/strong&gt; City Sample &lt;!-- TODO: link to the City Sample page on Fab --&gt; by Epic
Games, rendered in Unreal® Engine. Unreal® Engine, Copyright 1998–2026, Epic Games, Inc. All rights reserved.
Unreal and its logo are trademarks or registered trademarks of Epic Games, Inc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Walking couple&lt;/strong&gt; (main example): &lt;a href=&#34;https://www.pexels.com/video/an-elderly-couple-walking-at-the-park-8970851/&#34; target=&#34;_blank&#34;&gt;SHVETS production via Pexels&lt;/a&gt;. Edited with PXLD.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Basketball:&lt;/strong&gt; &lt;em&gt;Chimera&lt;/em&gt;, &lt;a href=&#34;https://opencontent.netflix.com/&#34; target=&#34;_blank&#34;&gt;Netflix Open Content&lt;/a&gt;, licensed under
&lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34; target=&#34;_blank&#34;&gt;CC BY 4.0&lt;/a&gt;. Modified by PXLD.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cyclist:&lt;/strong&gt; &lt;a href=&#34;https://www.pexels.com/video/woman-cycling-on-ground-road-13963632/&#34; target=&#34;_blank&#34;&gt;Serg Alesenko via Pexels&lt;/a&gt;. Edited with PXLD.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sprinter:&lt;/strong&gt; &lt;a href=&#34;https://www.pexels.com/video/a-man-running-on-the-track-field-7187078/&#34; target=&#34;_blank&#34;&gt;RDNE Stock project via Pexels&lt;/a&gt;. Edited with PXLD.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tools:&lt;/strong&gt; camera tracking, matting, compositing and harmonisation by &lt;a href=&#34;https://pxld.ai&#34; target=&#34;_blank&#34;&gt;PXLD&lt;/a&gt; (PXLD&amp;rsquo;s camera
tracking builds on NVIDIA&amp;rsquo;s open-source &lt;a href=&#34;https://github.com/nv-tlabs/vipe&#34; target=&#34;_blank&#34;&gt;ViPE&lt;/a&gt;); the naive comparison composite
uses SAM 3 &lt;!-- TODO: link --&gt; (Meta).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The people in the stock clips have no connection with PXLD and don&amp;rsquo;t endorse it.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
