Home > Pamokos, Patarimai > Pasidaryk pats: kepame savo Blender

Pasidaryk pats: kepame savo Blender

Dauguma iš mūsų siuntėmės sokompiluotas naujas Blenderio versijas iš graphicall.org. Tačiau tai nėra oficialus platinimo šaltinis, tai tik vieta, kur žmonės dalinasi savo sukompiliuotomis programos versijomis, arba kitaip: “build’ais“. Bet kas tie žmonės, kaip jie tai daro? Jie paprasčiausi vartotojai kaip ir Jūs, tik sugaišo truputį laiko ir noro, norėdami išsikepti išskirtinai savo versiją. Tai padaryti nėra sunku, tik reikia atidumo, nes yra ne vienas būdas tam pačiam darbui atlikti. Šiuo atveju aš aprašysiu kaip tai padaryti Linux vartotojams (konkrečiai – Ubuntu 10.10), naudojant scons ir SVN.

Principas

Tikriausiai ne visi skaitytojai yra kompiliavę programą arba naudoję versijavimo sistemą ir nelabai įsvaizduoja kas tai yra, su kuo tai valgoma. Trumpai papasakosiu kaip vyksta darbas būtent Blender projekto atveju. Kaip tikriausiai jau žinote, Blenderio kūrime dalyvauja daug programuotojų iš viso pasaulio. Jie visi dirba vienu metu, ir naudoja versijavimo sistemą, kad nekiltų konfliktų tarp naujai parašyto kodo. Dauguma jų turi teises pridėti (commit) savo kodą į bendra projekto kodo bazę, bet visi pakeitimai turi būti patvirtinti kelių atsakingų programuotojų, arba pačio Ton. Kai pakeitimai patvirtinami, jie tampa pasiekiami visiems vartotojams, ir kodą gali parsisiųsti kiekvienas norintis. Praėjus vos kelioms minutėms po to, kai programuotojas baigė darbą. Blender projektai naudoja tiek SVN tiek GIT sistemas versijavimui valdyti.

Ką mes turime padaryti – parsisiųsti naujausią kodo versiją, sutvarkyti nustatymus ir paleisti kompiliavimo skriptą. Tam dar reikės paruošti aplinką – įdiegti reikiamas priemones į mūsų Ubuntu.

Aplinkos paruošimas

Norint įdiegti visas reikalingas programas galima vienos komandos pagalba.

sudo apt-get install subversion build-essential gettext \
 libxi-dev libsndfile1-dev \
 libpng12-dev libfftw3-dev \
 libopenexr-dev libopenjpeg-dev \
 libopenal-dev libalut-dev libvorbis-dev \
 libglu1-mesa-dev libsdl-dev libfreetype6-dev \
 libtiff4-dev libsamplerate0-dev libavdevice-dev \
 libavformat-dev libavutil-dev libavcodec-dev libjack-dev \
 libswscale-dev libx264-dev libmp3lame-dev python3.1-dev

Tiesiog nukopijuokite šią komandą į terminalą. Ją reikės patvirtinti vartotojo slaptažodžiu ir duoti sutikimą parsiuntimui ir diegimui.

Parsisiųskime išeities tekstus

Prieš tai įvykdyta komanda įdiegė SVN klientą, jo pagalba mes parsisiųsime išeities tekstus. Bet prieš tai reikia susikurti aplanką, kur viską išsaugosime. Kadangi jau pradėjome darbą terminale, tai rašome:

cd ~
mkdir naujas-blenderis

Tai sukurs aplanką “naujas-blenderis” vartotojo namų aplanke. Atidarome naują aplanką ir įvykdome SVN checkout komandą.

cd naujas-blenderis
svn co https://svn.blender.org/svnroot/bf-blender/trunk/blender

Komanda išspjaus nemažą porciją įvairaus teksto, bet nesijaudinkite, ji tik stengiasi pranešti kurį būtent failą šiuo metu siunčia. Viskam nurimus (tai gali užimti nuo kelių iki keliolikos minučių, priklausomai nuo interneto greičio), paskutinėje eilutėje turėtume pamatyti maždaug štai ką:

Čia matosi parsiųstos revizijos numeris: 34545, tai tarytum vidininė išeities teksto versija (Jums parsiuntus revizijos numeris bus didesnis). Paruoštos versijos iš graphicall.org irgi dažniausiai nurodo iš kokios revizijos buvo sukompiliuotos. Išeities tekstai parsiųsti, reikia tik paleisti reikiamą skriptą.

Kompiliavimas

cd blender
python scons/scons.py

Šiomis komandomis atidarome “blender” aplanką ir python pagalba paleidžiame scons skriptą, kuris pradeda kompiliuoti blenderį, automatiškai parinkdamas nustatymus pagal sistemą. Šis procesas trunka bene ilgiausiai. Todėl procesorių su keliais branduoliais savininkai turėtų apsvarstyti galimybę paleisti paskutinę komaną nurodydami kiek darbų vykdyti vienu metu. Tam pridedamas -j parametras ir nurodomas darbų/branduolių kiekis. Pavyzdžiui, keturių branduolių savininkams rekomenduočiau vietoj paskutinės eilutės vykdyti:

python scons/scons.py -j 4

Šį kartą kompiliavimas turėtų trukti žymiai trumpiau (mano atveju – net tris kartus), bet sistemos apkrovimas taip pat bus didesnis. Baigus kompiliuoti matome pranešimą “scons: done building targets.“. Tai reiškia, kad mes jau turime veikiančią versiją, belieka tik ją paleisti. Pagal nutylėjimą kompiliavimo rezultatai išsaugomi “install” aplanke. Pleidimo komanda:

../install/linux2/blender

Štai ir viskas, paleista šviežia versija, kurioje jaučiamos dar šiltos, šiandien suprogramuotos naujos galimybės 🙂 Taip pat matome naują revizijos numerį “splash” skydelyje.

Kitą kartą norint atnaujinti versiją reikia vėl įvykdyti visas komandas, esančias po aplanko sukūrimo.

Pagreitinimas

Kadangi kiekvieną kartą ganėtinai nepatogu rinkti rankomis visas komandas iš eilės, siūlau pasidaryti skriptą, kuris atnaujina, sukompiliuoja ir paleidžia naują Blenderio versiją. Sukurkite failą namų aplanke, pavyzdžiui:

touch naujas.sh

suteikite jam vykdomo failo atributą:

chmod +x naujas.sh

Naudodami savo mėgstamą teksto redaktorių nukopijuokite šia veiksmų seką į naujas.sh:

#!/bin/bash
cd naujas-blenderis
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/blender
cd blender
python scons/scons.py -j 4
../install/linux2/blender

Išsaugokite. Dabar iš namų aplanko užtenka surinkti

./naujas.sh

ir visas procesas įvyks automatiškai. O jei norite tik paleisti blenderį, neatnaujinant, iš namų aplanko surinkite:

./naujas-blenderis/install/linux2/blender

Labai tingūs gali ir šiai komandai sukurti skriptą ar trumpinį (alias).  Tiesa, dabar mes sukompiliavome blenderį su standartiniais nustatymais ir standartiniu galimybių rinkiniu. O kompiliuodami patys turime galimybę pritaikyti programą grynai savo sistemai. Kompiliavimo optimizavimas konkrečiam procesoriui daromas siekiant paspartinti programos darbą ir sutrumpinti renderinimo laikus. Bet tai jau kito, kiek sudėtingesnio įrašo tema. Sėkmės bandant šviežias blenderio galimybes!

Papildoma informacija

Jei susidūrėte su problemomis, ir negalite sukompiliuoti Blender’io savo sistemai, tai gali būti dėl senos python versijos. Oficialiame problemos sprendimo puslapyje aprašyta kaip tai sutvarkyti (dėja angliškai).

Nuorodos

Oficialus Blender Wiki aprašymas kaip sukompiliuoti Blender visoms palaikomoms sistemoms.

Categories: Pamokos, Patarimai Tags:
  1. January 29th, 2011 at 12:45 | #1

    O štai vieno paprasti vartotojai, kaip aš, tikrai nesupranta: ką reiškia tas “išskirtinai savo versiją”? Jei esu vartotojas, nieko nežinau programos kodo ir jo negaliu patobulinti, mano sukompiliuota programa bus lygiai tokia pati, kaip ir kitų, tik būsiu sugaišęs daugiau laiko.

    Programuojantys vartotojai gal kartais ir turi geresnių techninių idėjų nei visa blender foundation bendruomenė, bet tada, sekant atviro kodo dvasia, jais turėtų ir dalintis – blenderio wikyje, graphicall.org ar kur kitur…

  2. January 29th, 2011 at 14:34 | #2

    dū komentarą galima perfrazuoti į klausimą “o kam kompiliuoti savo blenderį?”. Atsakymas paprastas:
    1) Ne visada graphicall.org galima rasti naujausią versiją, kai jos kodas jau pasiekiamas.
    2) Pilnas graphicall įviauriausių versijų, kurios nebūtinai gerai arba apskritai veikia jūsų sistemoje. Susikompiliuodami patys žinote, kad turite naujausią standartinės komplektacijos versiją.
    3) Optimizacija. Tik pats vartotojas žino kokia pas jį kompiuterio komponentų komplektacija, ir programą galima idealiai priderinti prie geležies. Nors tai suėtingas punktas, bet atnešantis daugiausiai naudos.

  3. Tomas
    February 2nd, 2011 at 11:23 | #3

    čia toks klausimas neįtemą bet ar jums nneatrodo keista kodėl nįdeda GI renderio į naujausias versijas blennderio jug sintel jau renderino su globaliu apšvietimu

  4. Tomas
    February 9th, 2011 at 21:38 | #4

    Sėkmingai susikompiliavau su šia pamoka, dėkui. Kada galėtų laukt kito spamokos kaip specialiai savo procesoriui pritaikyt?

  5. Tomas
    February 16th, 2011 at 16:25 | #5

    pastebimi privalumai lyginant su graphicall.org buildais naujausia versija daug greičiau renderina ir daugiau fps gražina su dūmais taip kad tikrai verta kas naudoja vien internal renderį.

  6. Tomas
    March 22nd, 2011 at 23:33 | #6

    kaip susiinstaliuot 3.2 python dev?

  7. March 24th, 2011 at 00:50 | #7

    Tomai, žinau apie kokias problemas kalba eina. Pažiūrėk čia:
    http://wiki.blender.org/index.php?title=Dev:2.5/Doc/Building_Blender/Linux/Troubleshooting#Python

  8. Tomas
    March 28th, 2011 at 02:22 | #8

    ačiū, labai padėjo pagaliau naują blenderį galės susikompiliuot

  1. No trackbacks yet.