Home    Решения    Услуги    Download    Публикации    Работа    Продукти    Документи
 

 

 
Print this page/Отпечатай тази страница  

 

Всичко, което ви е нужно е идея

по материали от Интернет и невероятните есета на Scott Manley




   Компютърната графика и анимация са вече навсякъде в наши дни - те са в основата на киноиндустрията за специални ефекти. Можете да правите всичко в компютърната графика. Ограничени сте единствено от артистичността на въображението си и търпението си. Както разбира се и от способността на публиката Ви да осъзнае и възприеме Вашата моделирана виртуална действителност.
   Първите компютърни изображения бяха рендвани (създавани, обработвани, изчислени - от англ. render) от мощни суперкомпютри като Cray YMP, единствени способни да изчислят движението на 250 хиляди многоъгълника. Много от съвремените графични ускорители вече могат да правят това в детайли и в реално време. Именно тази нарастнала изчислителна мощ ни гарантира забавлението от компютърното видео и дори кара някои от нас да се изживяват като кино-режисьори.
   Както и да е аз не съм eдинственият Linux фен, щъпуркащ в плитчините на това изкуство - киното. Всъщност любимата ми операционна система вече се използва съвсем на професионално ниво в това велико изкуство. Digital собственоръчно навързаха около стотина Alpha-и (чували сте за клъстери, нали?) за да рендват водните ефекти на Titanic. (Всъщност аз съм все още силно впечатлен от броя на хората, които казват: 'Компютърните специални ефекти са тъпотия, вижте 'Titanic' - просто е очевидно, че този кораб е компютърно генериран' - Стоп, да се изцвиля от удоволствие! Корабът си беше съвсем реално моделче, дълго 14 метра, a водата беше това дето не е истинско... пък ти си мислеше, че си много умен, нали?)
   Е, не е необходимо да започваме от 'Titanic' за да доказваме на света, колко сме велики в уменията си на кино-магьосници. Като за начало да вземем да направим някое анимирано GIF-че за собствената си страница, просто така, да не скучаем докато чакаме да ни ангажират за някой голям проект.
   От какво всъщност се нуждаем?
   Ами я да погледнем назад... Киното са движещи се картинки, евентуално с някакви звуци около тях. Сигурен съм, че вече знаете за онзи трик, с който баламосват човешкото зрение като му показват множество статични изображения със съвсем малка разлика между тях. Значи за да направим филм ни трябват много изображения, които да нанижем заедно. Обикновено изображенията се комбинират в един файл, който ги компресира на база времеви и пространствени корелации за да изхвърли излишния обем данни или иначе казано компресията работи като обозначава някак различията от един кадър до друг. Преобразуването на многото кадри в един компресиран файл става с помощта на програма, която се нарича енкодер.
   Значи за да си направим филмче ни трябва:
    1. Последователност от изображения
    2. Звуков файл (само ако искате озвучаване)
    3. Енкодер
   Енкодерът обикновено определя формата на файла, който получаваме като краен резултат. Някои формати не се нуждаят или въобще не са в състояние да се обвържат с аудио - например анимираните GIF-ове, а за други формати енкодерът преминава през няколко стъпки за да комбинира всичко. След като ползваме Linux като, че ли естествено е да се опитаме да правим дългите видеоклипове в MPEG фомат. MPEG е съкращение от Moving Pictures Expert Group и всъщност е фамилия от стандарти, проектирани за различни специфични задачи.
  MPEG 1 и MPEG 2 са най-добре установени. MPEG1 е кодиране за видео, докато MPEG2 е на практика MPEG1 с някои разширения, които го оптимизират за цифров броадкастинг. MPEG 4 е голяма крачка напред и все още е в развитие.
  MPEG 1 сам по себе си се дели на три части - видео потоци, аудио потоци и системни потоци, т.е. изображенията се преобразуват във видеопоток, звуците в аудиопоследователност, а двата потока са мултиплицирани и капсулирани в един единствен системен поток. Не се спичайте - това ще го разясняваме малко по-късно, сега само го споменавам за да си имаме наум с какво се захващаме. Ако искате да научите повече за всичко това хвърлете едно око на www.mpeg.org - можете да си вземете и няколко добри безплатни нещица.

   Taka... Хайде сега да се върнем в правия път и да си спомним какво казахме, че ни трябва най-напред - изображения - тук моите технически съвети са далеч по-маловажни от Вашия артистичен талант. Следователно трябва да си изберем софтуер, с който да генерираме изображенията си. Много хора ще искат да работят с тримерни изображения като мен, а на други и традиционните софтуерни пакети за двумерна графика ще им свършат работа. Някои пакети имат специални инструменти за анимация, а други изискват повече или по-малко намеса от Ваша страна, всички обаче без изключение си искат да им отделите необходимото време и усилия да ги поразучите. Не е страшно ако първите 10 минути не можете нищо да раберете, но ако след седмица още тъпчете на едно място по-добре сменете програмата и си потърсете нещо друго.
   Кадрите на нашето видео трябва да удовлетворяват следните правила:
   1. Трябва да са в един и същ формат - jpeg, tiff, gif - ако не намерете си добра версия на ImageMagick за да ги преобразувате.
   2. Трябва всички да са в една и съща разделителна способност - да смените разделителната способност по средата на клипа съвсем не е добра идея.
   3. Отношението на ширината към височината на кадрите трябва да е около 4:3 за да нямате проблеми с изобразяването им на повечето системи. Широкоекранната телевизия ползва съотношение 16:9 - може би си струва да опитате...
   4. Размера на изображението трябва да е съобразен с медията за която сме го предназначили - 160x120 е възможно най-ниската резолюция, която трябва да използвате, 360x288 е разделителната способност при Video CD, докато при DVD е 720x576. Мерната единица разбира се е пиксели. Имайте едно на ум, че много видеокарти, които имат хардуерен MPEG декодер не харесват резолюции, които не отговарят на VCD или DVD - веднъж правих филмче за една конференция и машината, която се използваше за плейър умря, когато пуснах филмчето си - беше с ATI карта и естествено с Windows'95, така че не бях много изненадан от това...
   5. Номерирайте кадрите последователно и по еднакъв начин, като съблюдавате да има проста линейна корелация между времето и поредицата.
   6. Огледайте си дисковото пространство преди да започнете - пакети като POVRay правят TGA или PNG файлове, които се нуждаят от дисково пространство, конвертирането до JPEG (използвайки примерно cjpeg) е добра идея. Ако обаче ще правите анимация може би GIF е по-добрият избор.
   7. Възможно е да промените резолюцията когато генерирате mpeg потока - така, че можете да получите различни нива на детайлност от един и същ набор изображения.
   Казано с две думи - ако искате да направите 10 минутно филмче за летене около Слънчевата система Вие се нуждаете от петдесет 720x576 изображения за всяка секунда или общо 30 хиляди изображения. Ако ще го правите с POVRay ще ви отнеме няколко часа - затова правете всичко както трябва за да на трябва да започвате отначало заради невнимание или немарливост.
   Инструменти за създаване на изображения
Ох! Това е толкова огромна област, че трябва да съм много внимателен да не се издъня и да кажа, че някой пакет е по-добър от друг и с това да засегна някого. Затова приемете долния списък като ревю на нещата, които използвам аз и вероятно в него липсват много неща, които си струват вниманието, но са ми убягнали.
  2D графика - използва се за обработка на кадрите или за създаването им
    The GIMP - това е един наистина фантастичен пакет, ако сте достатъчно търпеливи да преплувате огромното море от скриптове, опции и всичко, което ви се оставя в ръцете ви.
    XPaint - един стар, но златен пакет.
  3D графика - светът е тримерен, затова и вашият виртуален свят трябва да е такъв. Проверете http://linux3d.netpedia.net/ за повече препратки.
    POVRay - може би най-добрата 3D рендваща машина достъпна безплатно - макар и не най-бързата. Абсолютно коректна по отношение на математическия алгоритъм - например, когато дефинирате сфера, ще получите сфера, а не набор многоъгълници. Вземете си го от http://www.povray.org.
    SCED - ako предпочитате по-интерактивна конструкторска система това е за вас. Работи по същите основни геометрични правила като POVRay, но може да записва моделите ви в различни формати и те няма да носят толкова привкуса на POVRay. Е - за сметка на това пък нямате всичките възможности на POVRay и SCED ще дефинира обектните ви трансформации чрез трансформации на матрици, които хич не са лесни за четене (не се шашкайте POVRay потребителите знаят какво е това :-) Има експериментална версия на SCED, която се справя и с анимация, но никога не съм я ползвал. Можете да си намерите SCED от http://http.cs.berkeley.edu/~schenney/sced/sced.html и SCEDa от http://home.on.rogers.wave.ca/mbeast/scedamain.html.
    LibMesa - това не е инструмент сам по себе си, а безценна библиотека, която се ползва от други програмки. Вземете си я от http://www.mesa3d.org/.
    Blender - това е нещо съвсем ново - цялостена среда за моделиране, конструиране и рендване на тримерни изображения. Използва Mesa. Вижте http://www.blender.nl/.
    Blue Moon Rendering Tools - http://www.bmrt.org/.
  Обработка на изображения - след като сте заредили изображенията си трябва с нещо да ги пипнете преди да ги хвърлите на енкодера.     ImageMagick - великолепен е за трансформиране на дълга последователност от изображения, конвертиране от един формат в друг, изсветляване, потъмняване, замъгляване и т.н. Безценнен инструмент за филмчета, но си вземете пълната версия, много Linux дистрибуции предлагат версии, компилирани примерно без GIF компресия. Източника е http://www.wizards.dupont.com/cristy/ImageMagick.html.
    XV - Xview e друг всеобщоизвестен пакет за обработка и на единични кадри, но аз го харесвам заради опцията wait 0, с която мога да му кажа да дисплейва поредица от кадри възможно с най-бърза скорост, което е много полезно preview без да губите време с енкодера.
    Jpeglib - cjpeg, djpeg - бързо jpeg преобразуване - много полезно за скриптове и много, много, много, много, много по-бързо от ImageMagick.
  Разни други неща
    Конвертори на модели - най-добрите модели никога не са в необходимия ви формат, така че ако ще се борите с 3D събирайте всякакви конвертори дето ви се изпречат на пътя. ftp://avalon.viewpoint.com/avalon/utils/converters/ e една добра отправна точка от където да започнете.
    Скриптов език - TCL/TK или Perl са страшно важни ако знаете да ги ползвате, но не е необходимо да сте програмисти за да правите 3D - добре е обаче поне да разбирате как работят скриптовете, които ползвате дори да не сте ги писали вие.
   Какво не ви трябва
    Видеокарти с 3D ускорители - колкото и кощунствено да ви звучи - примерно Voodoo не е добра карта за нашите занимания просто защото тя така се заема да контролира всичко, че никаква работа няма да свършите.
    Големи и мощни машини - но няма к'во да си кривим душата - ако ги имате нещата стават по-бързо.
    Артистичен талант - винаги можете да си откраднете модел от нечия друга сцена - хвърлете едно око на ftp://avalon.viewpoint.com/avalon/. Разбира се повечето ще са в крив формат ама пък има толкова много конвертори, които подпомагат вашето плагиатство.
    TV/Video карти - трябват ви само ако ще сваляте на видео лента.

И сега к'во...

Ами в следващата статия се захващаме за работа... Ама вземете си поне един POVRay ако не друго и вижте там как работи 'щото иначе четенето на следващия материал ще е мъничко безсмислено. Разбира се можете да игнорирате напълно моите препоръки и да си намерите нещо съвсем различно..., а защо не и по-добро.

Следва...

Превод и адаптация на текста: Йовко Ламбрев