-
Notifications
You must be signed in to change notification settings - Fork 6
/
42camera_tracking.html
270 lines (168 loc) · 10.3 KB
/
42camera_tracking.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="description" content="Manual Livre de Blender" />
<meta name="keywords" content="Blender, Free Software, Libre Software, Open Source, Free Culture, Animation, 3D, Animação, Illustration, Ilustração, Education, Educação, Software Livre, VFX, Efeitos especiais, Visual Effects, CGI, 3D printing, impressão 3D">
<meta name="author" content="nafergo" >
<meta charset="UTF-8">
<title>Manual Livre de Blender</title>
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<!-- custom css -->
<link rel="stylesheet" href="css/mine.css" media="all" />
</head>
<body>
<div id="topo"></div>
<!-- início do menu -->
<div data-include="menu.html"></div>
<!-- fim do menu -->
<div class="container-fluid">
<div class="row">
<div class="col-xs-10 col-xs-offset-1">
<h1 class="titulopagina">Camera Motion Tracking</h1>
<div class="page-header">
<h2>Introdução</h2>
</div>
<p>Se ainda não leu, por favor comece pelo texto <a href="preparacao_camera_tracking.html">Recomendações e
Introdução</a>. Neste texto vamos utilizar o ficheiro camera_tracking2.mp4 (dados e ficheiro disponibilizados
nesse texto) e é fortemente recomendado que aumente a memória RAM disponível
para tarefas de tracking e edição de vídeo (explicação no mesmo texto).</p>
<div class="page-header">
<h2>Início</h2>
</div>
<p>O primeiro passo foi a conversão do vídeo para uma sequência de imagens. No nosso caso, foram
utilizadas 175 frames (7 segundos), desde a frame 1 até à 175, convertidas para
Targa para não perder qualidade com compressão.</p>
<p>O segundo passo foi a importação da sequência de imagens para o Movie Clip Editor.</p>
<p>Acertámos as configurações de renderização de acordo com os ficheiros de imagem e
vídeo original (25 FPS, 1920x1080) e definimos a timeline para 175 frames (Start no 1 e End no 175)
pois vamos trabalhar com 175 frames.</p>
<p>Com o rato na janela principal, clicámos em P para fazer prefetch (transferir imagens para
a memória cache). Pode obter o mesmo efeito através do Play Animation (Alt+A).</p>
<p>Com o rato na janela principal, clicámos em F para aumentar automaticamente a imagem até que esta
ocupe toda a área disponível no Movie Clip Editor.</p>
<div class="page-header">
<h2>Exercício</h2>
</div>
<h3>Marcadores</h3>
<p>Com a sequência na memória, faça <em>scrubbing</em> (deslocar o Time Cursor - a linha verde - na Timeline) para
ver pontos que estão sempre visíveis no enquadramento.</p>
<p>Certifique-se de que está na frame 1 ou na primeira frame da sequência. Pressione o
botão Add (painel Marker) e clique na imagem gpara adicionar um marcador (atalho é CTRL+BER). Coloque o marcador no
ponto que pretende seguir (track). Escolha locais que se destacam claramente, com bom contraste.</p>
<p>No Tracking Settings, se desejar, pode altera o Motion Model para Affine. Apesar de aumentar a morosidade,
este modo permite fazer track à mudança de perspetiva, deforma o marker, obtendo maior precisão. No exemplo abaixo não
foi utilizado este Motion Model.</p>
<p>Para mover um marker, selecione-o e clique em G. Para mover com maior precisão, pressione o SHIFT
enquanto desloca o marker.</p>
<p>Na coluna das propriedades, lado direito, tem uma janela que permite ativar a visualização da área do
pattern (quadrado menor que envolve a âncora, o ponto que marca o local para fazer tracking) e de Search.
Pode aumentar as áreas com S ou inserindo os valores na barra de ferramentas (lado esquerdo), secção
Tracking Settings.</p>
<p>Ative o tracking (CTRL+T). Corrija a posição (ou dimensão, se necessário) do marker sempre que este se perder.
Caso seja necessário, ugtilize o Esc para interromper o tracking.</p>
<p>Repita o processo até obter 8 marcadores (mínimo necessário!). Neste caso, foram utilizados os pontos na mesa.
De um modo geral, dever+a tentar espalhar os markers de modo a que estes
cubram toda a frame. Mais markers com bom tracking = maior qualidade e precisão.</p>
<img src="img/img42/1.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<h3>Solve Camera Motion</h3>
<p>Depois de ter 8 trackers feitos, é altura de inserir os dados da câmara e definir as keyframes para o
cálculo do movimento. As keyframes definem dois momentos na sequência que incluem mudança de perspectiva. Estas
configurações podem ser inseridas manualmente mas também pode deixar o Blender tentar descobrir as melhores
configurações. Neste exercício iremos utilizar o método automático.</p>
<p>Na aba Solve, ative a caixa Keyframe e, no Refine, escolha Focus Length, K1. Deste modo, durante o Solve (
cálculo do movimento da câmara), o Blender irá tentar escolher as melhores keyframes e descobrir a distância
focal com que foi capturada a imagem (K1 procura resolver a distorção provocada pela lente).</p>
<p>Coloque-se na frame 1, selecione todos os trackers e clique em Solve Camera Motion.
Aguarde pelo cálculo e verifique o valor do Solve Error.
O algoritmo irá calcular o movimento da câmara e irá apresentar uma margem de erro que
permite avaliar a exatidão do tracking. No nosso caso, deu 0.4713. Acima de 1.0 é um tracking fraco, deverá ser sempre menos de 1. No entanto, quanto menor o erro, melhor é o
resultado final. Recomenda-se tentar sempre menos de 0.5, o que é bom!
</p>
<img src="img/img42/2.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>Se desejar, pode ativar a opção Info (Marker Display na barra de propriedades) para identificar os trackers que
têm maior erro.</p>
<img src="img/img42/80.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>A janela Graph permite ainda ver o percurso dos markers. As linhas vermelhas descrevem movimento em X, as
linhas verdes descrevem movimento em Y. Verifique se alguma linha "salta" em demasia e corrija. Caso corrija “saltos” existentes, volte a fazer o Solve Camera Motion.
</p>
<img src="img/img42/81.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>Pode ser útil introduzir valores da lente e câmara (painel propriedades).
Caso o seu modelo não conste na lista do Blender, introduza os valores do sensor
(especificações técnicas do dispositivo).</p>
<p>
No entanto, antes de fazer novo Solve Camera Motion, faça Clear Solution (menu Track). Neste exemplo (com este vídeo), se
quiser experimentar introduzir os valores da câmara, assegure-se que tem 35mm na lente,
câmara Canon APS-C e 0 no K1 da Lens Distortion. Na aba Solve, ative a caixa Keyframe e, no Refine, escolha Focus Length, K1.</p>
<img src="img/img42/3.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<h3>Reconstruction</h3>
<p>Divida a área de trabalho de modo a ter uma janela com o 3D View.
Coloque-se em modo de visão de câmara na janela de 3D View.</p>
<p>No Movie Clip Editor, clique em Set as Background para o clip ser visível na câmara do 3D View.
Clique em Setup Tracking Scene para criar uma cena (inclui configuração de nós) pronta a renderizar.</p>
<img src="img/img42/90.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>No Movie Clip Editor, selecione 3 trackers que estejam no chão e clique em Floor.
O Blender irá alinhar a grelha do 3D View com estes três trackers.</p>
<p>Selecione o tracker que estiver mais central e clique em Origin.
O Blender irá definir este tracker como o ponto de origem, onde os eixos X, Y e Z se cruzam na grelha do 3D View.</p>
<p>Selecione outro tracker para definir o eixo X (pode fazer o mesmo para o Y).</p>
<p>Finalmente, selecione dois trackers para definir a escala. A distância entre estes dois trackers
irá ser equivalente a 1 Blender Unit (1 quadrado da grelha). </p>
<img src="img/img42/91.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>Nesta altura, através da câmara na janela 3D View já é possível colocar
elementos e ver a sequência de imagens através do ALT+A.
</p>
<img src="img/img42/100.jpg" alt="..." class="img-responsive img-thumbnail center-block">
<p>Agora é uma questão de ajustar a cena que pretende criar, trabalhar a iluminação e materiais, trabalhar no editor de nós
e renderizar.</p>
</div>
</div>
</div>
<!-- início do footer -->
<div data-include="footer.html"></div>
<!-- fim do footer -->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/jquery.scrollTo.min.js"></script>
<script src="js/jquery.localScroll.min.js"></script>
<script src="js/csi.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("[rel=tooltip]").tooltip();
});
</script>
<script type="text/javascript">
jQuery(function( $ ){
/**
* Most jQuery.localScroll's settings, actually belong to jQuery.ScrollTo, check it's demo for an example of each option.
* @see http://flesler.demos.com/jquery/scrollTo/
* You can use EVERY single setting of jQuery.ScrollTo, in the settings hash you send to jQuery.LocalScroll.
*/
// The default axis is 'y', but in this demo, I want to scroll both
// You can modify any default like this
$.localScroll.defaults.axis = 'y';
/**
* NOTE: I use $.localScroll instead of $('#navigation').localScroll() so I
* also affect the >> and << links. I want every link in the page to scroll.
*/
$.localScroll({
target: 'body', // could be a selector or a jQuery object too.
queue:true,
duration:1000,
hash:true,
onBefore:function( e, anchor, $target ){
// The 'this' is the settings object, can be modified
},
onAfter:function( anchor, settings ){
// The 'this' contains the scrolled element (#content)
}
});
});
</script>
</body>
</html>