Tutorial

Jak vyrobit video pomocí programů VMD, POV-Ray a Sony Vegas video

V tomto návodu bych chtěl vysvětlit a krok za krokem ukázat, jak lze vyrobit video podobné následujícímu:

Stručný postup

V některé internetové databázi (např. na www.pdb.org) si stáhneme .pdb soubor, který obsahuje strukturu molekuly, kterou chceme zobrazovat. Tento soubor si zobrazíme ve VMD. Nastavíme si, jakým způsobem (barva, povrch, ...) vykreslovat atomy, vazby mezi atomy, vodíkové můstky, ... Když jsme se vzhledem spokojeni, použijeme plug-in Movie Maker k vygenerování souborů .pov, kterým rozumí POV-Ray. V POV-Ray můžeme nastavit pohyb kamery a následně vygenerovat sérii obrázků. Z těchto obrázků pak v programu Vegas Movie Studio vyrobíme video, přidáme titulky, přechody a další efekty.

Internetové databáze (bio)molekul

Na internetu existuje několik desítek databází. Na anglické wikipedii existují jejich seznamy, např. databáze s proteinovými strukturami, krystalografické databáze (dole), či obecně biologické databáze. Já jsem si vybral na www.pdb.org/ strukturu s PDB ID 103D. Zpětně musím přiznat, že trochu nešťastně. Už nadpis THE UNUSUAL STRUCTURE OF THE HUMAN CENTROMERE (GGA)2 MOTIF mě mohl varovat, že nepůjde o běžnou DNA sekvenci. Naštěstí se to ve videu ztratilo. Strukturu jsem si stáhnul (nápis Download files vedle identifikace 103D) ve formátu .pdb.

VMD a práce v něm

Jen popis základního ovládání VMD by vydal na několik článků. Navíc bych dělal zbytečnou práci, protože v tutorial je celkem přehledný a podrobný. Zde bych uvedl spíše několik rad, čeho se vyvarovat a co je naopak vhodné. První dvě rady jsou obecné, další souvisí s následným exportem obrázků do .pov souborů k dalšímu zpracování:

Export scény z VMD do .pov souboru

Pokud už máme nastaveno, co chceme zachytit, použijeme plug-in Movie Maker (Extensions->Visualisation->Movie Maker). Zde máme dvě možnosti. Buď přímo vygenerujeme obrázky, které ale později už nebudeme moci upravovat nebo vyrobíme .pov soubor a dále s ním budeme pracovat v POV-Ray. Budu popisovat druhou možnost. Nastavte Renderer->POV-Ray (Ray Tracer). V Movie Setting vyberte Trajectory. (Pokud máte nataženu kromě .pdb i trajektorii, vygeneruje se pro každý frame trajektorie jeden soubor.) Nastavte cestu, kam se má uložit vygenerovaný .pov soubor a stlačte Make Movie tlačítko. Pravděpodobně budete požádání o zadání cesty k vykreslovacímu jádru POV-Ray. Mě se POV-Ray nainstaloval do adresáře c:\Users\Jindra\AppData\Roaming\POV-Ray\v3.6\bin\, soubor s vykreslovacím jádrem se jmenuje pvengine64.exe (Windows 7). Soubor .pov se vygeneruje tam, kde jste si určili.

(Já měl problém s tím, že Movie Maker tvrdil, že nemá oprávnění zapisovat na C: . Myslím, že pomohlo, když jsem v POV-Ray nastavil Option->Script I/O Restriction->No restrictions. Možná tam byl ještě nějaký problém, který jsem pomocí googlení rychle vyřešil.)

Struktura souboru .pov

Na začátku souboru jsou makra definující, jak se budou vykreslovat koule, válce, ... Ty nás zatím nezajímají. Následuje sekce camera (viz sekce 2.3.1 z dokumentace), která definuje, z jaké pozice a jakým směrem se budeme na scénu dívat. Tuto část budeme později editovat. Následuje sekce light_source, kde definujeme, z jakých směrů a jakým způsobem budeme osvětlovat objekty na scéně. Defaultně jsou nastaveny dvě světla, jejichž pozice je převzatá z VMD (VMD: Dispay->Light 0, Light 1). Z mých zkušeností to na kvalitní osvětlení scény nestačí a je potřeba přidat ještě aspoň dvě světla, aby některé části atomů nebyly ve stínu. V poslední části souboru jsou vypsány polohy všech atomů a vazeb na scéně včetně barev, kterými budou vykresleny.

Plynulý pohyb kamery

Nyní předpokládejme, že máme jeden soubor .pov, v němž jsou uloženy informace o nějaké molekule. Pokud spustíme program POV-Ray, otevřeme si soubor .pov a cvakneme na tlačítko Run, vytvoří se obrázek scény s aktuálním nastavením. Zkuste si změnit pozici kamery a vygenerovat další obrázek. Zkuste se zorientovat v souřadném systému, který používá POV-Ray. Pokud bychom chtěli udělat sérii snímků, při nichž by se hýbala kamera, použijeme systémovou proměnnou clock a vytvoříme si další soubor (.ini), ve kterém specifikujeme, kolik snímků budeme chtít. soubor .ini bude vypadat přibližně takhle:

Initial_Frame = 1                             
Final_Frame = 200                             // chceme 200 obrázků
Input_File_Name = K:\DNA2\DNA2.0000.pov       // zdrojový soubor
Output_File_Name = K:\DNA2\bmp\DNA2a.bmp      // jaký název má mít výsledný soubor

Když spustíme v POV-Ray tento .ini soubor, vezme soubor .pov (v tomto případě DNA2.0000.pov) a vygeneruje 200 snímků s tím, že průběžně rovnoměrně zvyšuje proměnnou clock od 0 do 1. Pokud tuto proměnnou použijeme v .pov souboru, v každém snímku bude mít jinou hodnotu. Tímto způsobem můžeme pohybovat kamerou například takto:

camera {
  orthographic
  location <3.5000*sin(2*pi*clock), 0.0000, -3.5000*cos(2*pi*clock)> //poloha kamery opíše kružnici
  look_at <0.0000, 0.0000, 0.0000>                                   //kamera se bude pořád dívat do "nuly"                     
  up <0.0000, 1.0000, 0.0000>
  right <1.2618, 0.0000, 0.0000>
}

Závěr

Nyní už víme vše potřebné. Umíme vygenerovat .pov soubor a z něho můžeme vytvořit sérii obrázků. Nyní je čas vygenerovat z obrázků video a nějak hezky ho ozdobit titulky, přechody a dalšími efekty.

Video s trajektorií

Zatím jsme vždy předpokládali, že máme pouze .pdb soubor. Z molekulárně-dynamických simulací můžeme mít ale i trajektorie (pohyb atomů molekuly). V tomto případě se situaci mírně liší. Movie Maker nevytvoří jen jeden .pov soubor, ale více - jeden za každý frame trajektorie. Během generování nehýbejte se scénou. Snaha o jemné natočení většinou skončí katastrofálním rozhašením pohledu.

Vygenerované soubory je potřeba hromadně upravit (hodí se linuxové příkazy), potřebujeme změnit pohled kamery na každém snímku. Následně využijeme v programu POV-Ray frontu (Render->File queue, bohužel má jen délku 512 souborů) a vygenerujeme obrázky ze všech .pov souborů.

Tipy a triky