<p>Yeah that was actually the best opening ceremony ever...</p>
<p>Doing something like this yourself is a hefty task, but first, here's what you would need:</p>
<ul>
<li>A software for tracking</li>
<li>A software for modeling / animating</li>
<li>(optionally something for compositing / color grading)</li>
</ul>
<p>Luckily, Blender (which is free) can do all those things, but has quite a steep learning-curve. Due to its popularity, you will find many tutorials and guides though. Here's step by step how I would go about something like your example:</p>
<ul>
<li>Find footage to composite the elements on. It should be at least 1920x1080 and with as little compression as possible (it's best to record your own).</li>
<li>Load the footage in a tracking-program. You can use Blender, After-Effects, Nuke or PfTrack - all are viable.</li>
<li>After tracking, you can create a virtual camera that flies around in your scene according to the movement of the real camera. Export this or work with it from inside Blender if you're only using Blender.</li>
<li>Now model out and animate your 3D-Assets and place them in your scene. Since the tracked camera matches the movement of the real camera, your 3D-Assets should stay in place and look like they're pinned to the ground.</li>
<li>Apply your textures and shaders (and I can't stress how important this is) light your scene properly. Try to observe where the light is coming from in your original scene and place virtual lights accordingly.</li>
<li>Render your scene, preferably as a .png or .exr-sequence, with only your virtual Assets visible.</li>
<li>At last, composite the background and foreground together. You can do this in Blender as well, but programs such as After-Effects or Nuke give you more control over your look (they're not free programs though).</li>
</ul>
<p>If your tracking looks off, make sure to delete any floating tracking-points that might have picked up false movements. Try matching the white-balance in compositing (the shift from teal to orange and purple to green). For added realism, you can create a &quot;shadow-catcher&quot; which will itself not be visible, but render out the shadows cast upon it. Those shadows should be included in a separate &quot;pass&quot;, so you have your foreground, shadows and background. This gives you more control over the darkness and opacity of your shadows if you want to adjust them. And at last, if you want to go all in, you can capture an HDR environment from the place you were filming at - basically a 360° image of the surroundings. You can add this to the 3D-Software you're using to accurately display reflections on your foreground.</p>
<p>I hope this helped you out, have a great day!</p>

CC BY-SA 4.0
2020-07-01T14:56:57.313Z
Thanks for the detailed comments. But I don't really want to make it this fancy with camera tracking. Starting with simplest approach, probably just placing a dragon on the field (like its last scenes) with fixed camera. Do we have a tutorial for this?
angel_30
CC BY-SA 4.0
2020-07-01T20:18:20.070Z
Sure thing - for that approach I recommend this tutorial: https://www.youtube.com/watch?v=kzym73lhmD4
or this one:
https://www.youtube.com/watch?v=aA2XzTDad0A
Florian Claaßen
CC BY-SA 4.0
2020-07-02T02:04:54.163Z
Cool. Does Blender have an SDK to automatically do this?
angel_30
CC BY-SA 4.0
2020-07-02T09:18:11.300Z
Hmm that I don't know, you might want to ask that as a new question on here :)
Florian Claaßen
CC BY-SA 4.0
2020-07-01T06:13:48.223Z
2020-07-01T06:13:48.223Z
Florian Claaßen
<p>I'm trying to get some hands-on experience with 3D visual effects on videos. Similar to those AR apps, I want to add a 3D model with effects, say a dragon, to a video. Something like this famous demo:</p>
<p><div class="youtube-embed"><div>
                <iframe width="640px" height="395px" src="https://www.youtube.com/embed/u5hQpRbHERg?start=0"></iframe>
            </div></div></p>
<p>But I don't really want to make it this fancy with camera tracking. Starting with simplest approach, probably just placing a dragon on the field (like its last scenes) with fixed camera.</p>
<p>What's the best way to do it? Do we have some tutorials, free or open source tools or SDK to do it for videos?</p>

<video><3d><special-effects><visual-effects><360video>
Add 3D visual effects to videos
angel_30
# Add 3D visual effects to videos

(Asked by: username_0 on 2020-07-01)

I'm trying to get some hands-on experience with 3D visual effects on videos. Similar to those AR apps, I want to add a 3D model with effects, say a dragon, to a video. Something like this famous demo:

But I don't really want to make it this fancy with camera tracking. Starting with simplest approach, probably just placing a dragon on the field (like its last scenes) with fixed camera.

What's the best way to do it? Do we have some tutorials, free or open source tools or SDK to do it for videos?

**Tags:** video, 3d, special-effects, visual-effects, 360video


---

## 1 answers

### Answer by username_1 on 2020-07-01. Score: 2

Yeah that was actually the best opening ceremony ever...

Doing something like this yourself is a hefty task, but first, here's what you would need:

* A software for tracking
* A software for modeling / animating
* (optionally something for compositing / color grading)

Luckily, Blender (which is free) can do all those things, but has quite a steep learning-curve. Due to its popularity, you will find many tutorials and guides though. Here's step by step how I would go about something like your example:

* Find footage to composite the elements on. It should be at least 1920x1080 and with as little compression as possible (it's best to record your own).
* Load the footage in a tracking-program. You can use Blender, After-Effects, Nuke or PfTrack - all are viable.
* After tracking, you can create a virtual camera that flies around in your scene according to the movement of the real camera. Export this or work with it from inside Blender if you're only using Blender.
* Now model out and animate your 3D-Assets and place them in your scene. Since the tracked camera matches the movement of the real camera, your 3D-Assets should stay in place and look like they're pinned to the ground.
* Apply your textures and shaders (and I can't stress how important this is) light your scene properly. Try to observe where the light is coming from in your original scene and place virtual lights accordingly.
* Render your scene, preferably as a .png or .exr-sequence, with only your virtual Assets visible.
* At last, composite the background and foreground together. You can do this in Blender as well, but programs such as After-Effects or Nuke give you more control over your look (they're not free programs though).

If your tracking looks off, make sure to delete any floating tracking-points that might have picked up false movements. Try matching the white-balance in compositing (the shift from teal to orange and purple to green). For added realism, you can create a "shadow-catcher" which will itself not be visible, but render out the shadows cast upon it. Those shadows should be included in a separate "pass", so you have your foreground, shadows and background. This gives you more control over the darkness and opacity of your shadows if you want to adjust them. And at last, if you want to go all in, you can capture an HDR environment from the place you were filming at - basically a 360° image of the surroundings. You can add this to the 3D-Software you're using to accurately display reflections on your foreground.

I hope this helped you out, have a great day!

> **Comments:**
> **username_0**: Thanks for the detailed comments. But I don't really want to make it this fancy with camera tracking. Starting with simplest approach, probably just placing a dragon on the field (like its last scenes) with fixed camera. Do we have a tutorial for this?  
> **username_1**: Sure thing - for that approach I recommend this tutorial: https://www.youtube.com/watch?v=kzym73lhmD4 or this one: https://www.youtube.com/watch?v=aA2XzTDad0A  
> **username_0**: Cool. Does Blender have an SDK to automatically do this?  
> **username_1**: Hmm that I don't know, you might want to ask that as a new question on here :)  

---

