úloha 012: Syntetická animace

Vymyslete a implementujte animaci v rovině nebo prostoru. Animace musí být počítána po jednotlivých snímcích ("off-line rendering"), nakonec vyrobíte video-soubor např. programem ffmpeg.

Základem poslouží projekt 012animation z repository grcis. Je připravena jednoduchá aplikace, která umí opakovaně pouštět vaši metodu Animation.RenderFrame() a výsledky zapisovat do jednotlivých PNG souborů. Výpočet se provádí v separátním vlákně, takže by lze v případě potřeby zastavit tlačítkem Stop.

Náměty: nějaký pohyb v rovině, zajímavé změny barev, prolínání obrázků, apod. Fantazii se meze nekladou, pouze musíte snímky animace kompletně nakreslit vaším programem. To znamená, že mi odevzdáte zdrojový soubor, ze kterého půjde bez použití dalších nástrojů (až na encoding videa nebo doplnění zvukové stopy) animaci vyrobit.

Technicky: metoda Animation.RenderFrame() dostane údaj o čase a vrací objekt typu Bitmap, do kterého obrázek nakreslila. Metoda má dále parametry určující velikost snímku, ty můžete nebo nemusíte respektovat. Čas se udává dvěma celými čísly, celkovým počtem snímků totalFrames a pořadím aktuálního snímku currentFrame (od nuly do totalFrames-1).

Výroba video-souboru: viz např. tento návod. Binárku ffmpeg pro Windows si můžete stáhnout např. zde.

TERMÍN: do 5. 1. 2014 (aby bylo možné nejlepší výsledky ukázat na poslední přednášce 6. 1. 2014)

BODY: 6 až 20 bodů (může být 3D a počítat se do 3D kvóty)

PROJEKT: 012animation

ZDROJOVÝ SOUBOR: Animation.cs (video-soubor neposílejte mailem, někam ho vystavte, upload na YouTube např. a pošlete URL).

SOUTĚŽ: Odevzdané animace k hlasování.


[Cvičení NPGR003]  [Návody k zápočtům v C#]  [Přednášky a semináře]  [Odkazy na demonstrace]

Valid XHTML 1.1 Copyright (C) 2010-2013 J.Pelikán, last change: $Date: 2014-10-14 23:22:53 +0200 (Tue, 14 Oct 2014) $
Send comments/requests to pepca.at.cgg.mff.cuni.cz