123

Uwaga! Ta wi­try­na wy­ko­rzy­stu­je pli­ki cook­ies w ce­lu umoż­li­wie­nia dzia­ła­nia nie­któ­rych fun­kcji ser­wi­su (np. zmia­ny ko­lo­ru tła, wy­glą­du in­ter­fej­su, itp.) oraz w ce­lu zli­cza­nia li­czby odwie­dzin. Wię­cej in­for­ma­cji znaj­dziesz w Po­li­ty­ce pry­wat­no­ści. Ak­tual­nie Two­ja przeg­lą­dar­ka ma wy­łą­czo­ną ob­słu­gę pli­ków co­o­kies dla tej wi­try­ny. Ten ko­mu­ni­kat bę­dzie wy­świet­la­ny, do­pó­ki nie za­ak­cep­tu­jesz pli­ków cook­ies dla tej wi­try­ny w swo­jej przeg­lą­dar­ce. Kliknięcie ikony * (w prawym górnym narożniku strony) oznacza, że akceptujesz pliki cookies na tej stronie. Ro­zu­miem, ak­cep­tu­ję pli­ki cook­ies!
*
:
/
o
[
]
Z
U

Wpro­wa­dze­nie

Pro­jek­tor K3D, to na­rzę­dzie umoż­li­wia­ją­ce rzu­to­wa­nie gra­fi­ki ra­stro­wej oraz wek­to­ro­wej na trój­wy­mia­ro­we po­wie­rzchnie ste­ru­ją­ce. Two­rząc ten pro­gram sta­ra­liś­my się za­cho­wać rów­no­wa­gę mię­dzy moż­li­wo­ścia­mi tech­nicz­ny­mi pro­gra­mu, a stop­niem skom­pli­ko­wa­nia je­go ob­słu­gi. Zda­je­my so­bie spra­wę z fak­tu, że na ryn­ku jest wie­le pro­gra­mów do ob­rób­ki 3D, ale wie­my też, że ich moż­li­wo­ści czę­sto przy­po­mi­na­ją moż­li­wo­ści ar­ma­ty, któ­rą mu­si­my za­sto­so­wać, by unie­szkod­li­wić przy­sło­wio­wą mu­chę.

Z te­go też wzglę­du przy­ję­liś­my na­stę­pu­ją­ce za­ło­że­nia tech­nicz­ne pod­czas pro­jek­to­wa­nia te­go pro­gra­mu:

  1. Pro­gram ma na sta­łe przy­pi­sa­ne dwie (i tyl­ko dwie) po­wie­rzchnie ste­ru­ją­ce (dwa obiek­ty). Je­dna z nich sta­no­wi wła­ści­wy obiekt, któ­rych chce­my zob­ra­zo­wać, a dru­ga sta­no­wi op­cjo­nal­ne tło (wy­świet­la­nie tej po­wie­rzchni moż­na wy­łą­czyć).

  2. Każ­da (z dwóch) po­wie­rzchni (brył) w pro­gra­mie ma swo­je nie­za­leż­ne źród­ło oświet­le­nia i dwie stro­ny (przód i tył). Każ­da ze stron mo­że być oświet­lo­na in­nym ko­lo­rem.

  3. Pro­gram ma ogra­ni­czo­ne moż­li­wo­ści mo­de­lo­wa­nia po­wie­rzchni i brył. Za­kła­da się ko­rzy­sta­nie z go­to­wych po­wie­rzchni i brył przy­go­to­wa­nych przez pro­du­cen­ta oraz moż­li­wość ge­ne­ro­wa­nia po­wie­rzchni za po­mo­cą wzo­rów ma­te­ma­tycz­nych, któ­re są ob­li­cza­ne przez wbu­do­wa­ny kal­ku­la­tor (oczy­wi­ście pro­du­cent do­star­cza wzo­ry for­mu­ją­ce pod­sta­wo­we bry­ły). Roz­wią­za­nie to jest wy­star­cza­ją­ce do zob­ra­zo­wa­nia wie­lu stan­dar­do­wych obiek­tów 3D, jak pu­deł­ka (książ­ki, opa­ko­wa­nia, pro­sto­pa­dło­ścia­ny, itp.), pusz­ki (tu­by, wal­ce), bu­tel­ki (nie­co zmo­dy­fi­ko­wa­ne wal­ce), ku­le (pla­ne­ty, pił­ki), fa­lu­ją­ce po­wie­rzchnie (np. fla­gi), itp., jak np.:

    Vi­deo 1.
    Fa­lu­ją­ca fla­ga w Pro­jek­to­rze K3D.

    (Wszyst­kie po­ka­za­ne na tej stro­nie przy­kła­dy do­stęp­ne są w po­sta­ci do­ku­men­tów pro­jek­to­ra. Mo­żesz po­brać te przy­kła­dy i sa­mo­dziel­nie z ni­mi po­eks­pe­ry­men­to­wać).

  4. Przy­ję­liś­my sze­reg upro­szczeń co z je­dnej stro­ny ułat­wia ob­słu­gę pro­gra­mu, z dru­giej przy­spie­sza je­go dzia­ła­nie. Ta­kim upro­szcze­niem jest np. to, że tło jest zaw­sze wy­świet­la­ne za obiek­tem pier­wszo­pla­no­wym. Nie jest więc moż­li­we ta­kie usta­wie­nie obiek­tów, aby tło przy­sło­ni­ło obiekt pier­wszo­pla­no­wy, ale z dru­giej stro­ny pro­gram nie mu­si ob­li­czać wza­jem­ne­go prze­sła­nia­nia się tych obiek­tów.

  5. Ko­lej­nym upro­szcze­niem jest przy­ję­cie za­ło­że­nia, że każ­dy (z dwóch) obiek­tów skła­da się z pro­sto­kąt­nej siat­ki czwo­ro­ką­tów. Ta­kie roz­wią­za­nie umoż­li­wi­ło pro­stą i szyb­kę im­ple­men­ta­cję mor­fin­gu 3D.

    Vi­deo 2.
    Mor­fing 3D w Pro­jek­to­rze K3D.

    W związ­ku z ta­kim za­ło­że­niem, nie mo­żesz usu­wać (do­da­wać) do siat­ki po­je­dyn­czych ele­men­tów, mo­żesz je­dy­nie usu­wać lub do­da­wać wier­sze lub rzę­dy. Mo­żesz za to wy­łą­czać wy­świet­la­nie po­szcze­gól­nym ele­men­tów siat­ki, co po­zwo­li Ci uzys­kać cie­ka­we efek­ty.

  6. Choć mog­ło­by się wy­da­wać, że po­wyż­sze upro­szcze­nie zbyt moc­no ogra­ni­czy moż­li­wo­ści pro­gra­mu, to za­sto­so­wa­no tu in­ne roz­wią­za­nie, w zna­cznym stop­niu re­kom­pen­su­ją­ce wspo­mnia­ne upro­szcze­nie, a w nie­któ­rych wy­pad­kach zde­cy­do­wa­nie przy­spie­sza­ją­ce pra­cę.

    Otóż mo­żesz na siat­kę na­ło­żyć obiekt wek­to­ro­wy, któ­ry wy­tnie z siat­ki po­trzeb­ny kształt. Je­śli do­da­my do te­go w spo­sób au­to­ma­tycz­ny gru­bość obiek­tu, to ma­my w błys­ka­wicz­nym tem­pie ren­de­ro­wa­ne np. li­te­ry 3D:

    Vi­deo 3.
    Li­te­ry 3D wy­ren­de­ro­wa­ne w Pro­jek­to­rze K3D.

    Oczy­wi­ście mo­żesz do­wol­nie usta­wić i obiekt (je­go po­ło­że­nie, prze­su­wa­nie, ob­ro­ty, itp.) i świat­ło (je­go prze­su­wa­nie, śred­ni­cę, ko­lor, kon­trast), tem­po ani­ma­cji, itp. pod­czas ru­chu.

  7. Ge­ne­ral­nie pro­gram pra­cu­je na tek­stu­rach ra­stro­wych (tzn. na wy­mo­de­lo­wa­ną siat­kę moż­na na­ło­żyć bit­ma­pę). W ta­kiej sy­tua­cji wy­ren­de­ro­wa­ny ob­raz mo­że być za­pi­sa­ny ja­ko plik ra­stro­wy (ty­pu: *.bmp, *.jpg lub *.png).

    Pro­gram mo­że ró­wnież pra­co­wać na tek­stu­rach wek­to­ro­wych (tzn. moż­na rzu­to­wać gra­fi­kę wek­to­ro­wą na po­wie­rzchnię 3D). W tym wy­pad­ku ja­ko wy­jście (po­za pli­kiem ra­stro­wym) moż­na ró­wnież wska­zać plik wek­to­ro­wy (*.eps). W tym roz­wią­za­niu cie­nio­wa­nia są ge­ne­ro­wa­ne w po­sta­ci sze­re­gu ra­mek wek­to­ro­wych.

  8. Mo­żesz też na­ło­żyć na siat­kę bit­ma­pę, a na to wek­to­ro­wy kształt, któ­ry wy­tnie bit­ma­pę i siat­kę.

    Fot. 1.
    Bit­ma­pa wy­cię­ta kształ­tem wek­to­ro­wym i oświet­lo­na w Pro­jek­to­rze K3D.

  1. Pro­gram po­zwa­la ani­mo­wać wszyst­kie pa­ra­me­try opi­su­ją­ce wy­gląd obiek­tów. Ani­mo­wa­nie po­le­ga na wsta­wia­niu na osi cza­su kla­tek ba­zo­wych, dla któ­rych okreś­lasz właś­nie wspo­mnia­ne wcześ­niej pa­ra­me­try.

    Je­śli np. dla któ­rejś z kla­tek okreś­lisz ko­lor oświet­le­nia (skła­do­we RGB ko­lo­ru), a w in­nej klat­ce skła­do­we te bę­dą in­ne, to pro­gram in­ter­po­lu­je war­to­ści dla po­szcze­gól­nych kla­tek le­żą­cych mię­dzy ty­mi, któ­re ma­ją te skła­do­we okreś­lo­ne. In­ter­po­la­cja mo­że być li­nio­wa lub opar­ta o krzy­we Bézie­ra.

    Vi­deo 4.
    Ani­ma­cja ko­lo­ru w Pro­jek­to­rze K3D.

    Tak wy­glą­da oś cza­su dla ani­ma­cji przed­sta­wio­nej po­wy­żej:

    Fot. 2.
    In­ter­fejs pro­gra­mu z po­ka­za­ną osią cza­su dla ani­ma­cji ko­lo­ru.

    Na tej sa­mej za­sa­dzie ani­mu­jesz wszyst­kie in­ne pa­ra­me­try opi­su­ją­ce po­ło­że­nie, ką­ty, per­spek­ty­wę, itp. nie­za­leż­nie dla pierw­sze­go pla­nu i dla tła.

  2. Pro­gram udo­stęp­nia tyl­ko je­dną ka­me­rę, ale do­stęp­ny jest wie­lo­po­zy­cyj­ny scho­wek na da­ne, w któ­rym mo­żesz prze­cho­wy­wać róż­ne po­ło­że­nia ka­me­ry (schow­ki te są op­cjo­nal­nie za­pi­sy­wa­ne na dys­ku wraz z do­ku­men­tem).

    Ka­me­rę moż­na umie­ścić w do­wol­nym pun­kcie prze­strze­ni i ob­ra­ca­jąc ją uzys­ki­wać efekt „roz­glą­da­nia się”. Je­śli je­dnak ka­me­rę umie­ści­my w pun­kcie XYZ rów­nym 0, 0, 0 (w środ­ku ukła­du współ­rzę­dnych), to w świe­cie rze­czy­wi­stym obiekt nie był­by wi­do­czny (po­nie­waż by­li­byś­my w je­go wnę­trzu). Pro­gram upra­szcza w tym pun­kcie rze­czy­wi­stość (ale prze­cież to w koń­cu tyl­ko wzo­ry ma­te­ma­tycz­ne, któ­re mo­że­my do­sto­so­wać do na­szych po­trzeb :-)).

    Upro­szcze­nie to po­le­ga na tym, że ka­me­ra w pun­kcie 0, 0, 0, wi­dzi ca­ły obiekt, a jej ob­ra­ca­nie w tym pun­kcie da­je efekt ob­ro­tu obiek­tu (ta­ki, jak­by ka­me­ra krą­ży­ła wo­kół środ­ka ukła­du współ­rzę­dnych po okrę­gu o za­da­nym pro­mie­niu. Pro­mień ten mo­że­my oczy­wi­ście edy­to­wać. Po­nad­to mo­że­my edy­to­wać „og­nis­ko­wą” ka­me­ry uzys­ku­jąc cie­ka­we efek­ty per­spek­ty­wy):

    Vi­deo 5.
    Ani­ma­cja po­przez ob­rót ka­me­ry umie­szczo­nej w środ­ku sce­ny z je­dno­czes­nym prze­su­wa­niem źród­ła świat­ła.

  3. Po­nie­waż obiekt skła­da się tyl­ko z je­dnej siat­ki, więc moż­na mu przy­pi­sać tyl­ko je­dna tek­stu­rę, ale po­przez od­po­wie­dnie spre­pa­ro­wa­nie tej tek­stu­ry moż­na uzys­kać np. ta­ki efekt:

    Vi­deo 6.
    Ani­ma­cja sze­ścia­nu z róż­ny­mi ob­ra­za­mi na każ­dej ścian­ce. W ta­ki sam spo­sób moż­na wy­ren­de­ro­wać do­wol­ny pro­sto­pa­dło­ścian (np. pu­deł­ko, opakowanie, itp.).

  4. Fil­my są ren­de­ro­wa­ne w po­sta­ci po­je­dyn­czych kla­tek do wska­za­ne­go ka­ta­lo­gu. Aby tak uzys­ka­ne klat­ki po­łą­czyć w film na­le­ży użyć do­dat­ko­we­go pro­gra­mu (np. bez­płat­ne­go Vir­tual­Dub). Dzię­ki przy­ję­tym upro­szcze­niom i opty­ma­li­za­cji ko­du pro­gra­mu, film ta­ki jak wy­żej w roz­dziel­czo­ści 1280 x 720 pik­seli ren­de­ru­je się w tem­pie ok. 4 s na klat­kę na kom­pu­te­rze Pen­tium Dual Core z ze­ga­rem 3,2GHz (dla po­ró­wna­nia ta­ki sam sze­ścian w pro­gra­mie blen­der 2.76 na tym sa­mym sprzę­cie ren­de­ru­je się w tem­pie oko­ło 9,5 se­kun­dy na klat­kę).

  5. Pro­gram ma wbu­do­wa­ną ob­słu­gę fil­trów (dok­ła­dnie ta­ką sa­mą, jak pro­gram Kom­bi). Fil­try mo­gą być sto­so­wa­ne za­ró­wno na na­kła­da­nych tek­stu­rach jak i na wy­ren­de­ro­wa­nym ob­ra­zie.

  6. Pro­gram mo­że pra­co­wać zu­peł­nie sa­mo­dziel­nie, ale za­wie­ra wbu­do­wa­ne me­cha­niz­my umoż­li­wia­ją­ce mu po­łą­cze­nie się pod­czas pra­cy z pro­gra­mem Kom­bi. Je­śli ta­kie po­łą­cze­nie na­stą­pi (tzn. jest w sy­ste­mie uru­cho­mio­ny pro­gram Kom­bi), to moż­li­wa jest bez­po­śre­dnia wy­mia­na da­nych mię­dzy ram­ką w do­ku­men­cie Kom­bi, a pro­gra­mem. W kon­sek­wen­cji moż­li­we jest ren­de­ro­wa­nie ob­ra­zów wprost do ram­ki w Kom­bi, a do­ku­ment Kom­bi za­pi­sa­ny z ta­ką ram­ką za­wie­ra kom­plet in­for­ma­cji nie­zbę­dnych do po­no­wne­go ot­war­cia ta­kiej ram­ki w Pro­jek­to­rze i po­no­wne­go jej wy­ren­de­ro­wa­nia np. z in­ny­mi pa­ra­me­tra­mi rzu­to­wa­nia.

  7. In­ter­fejs pro­gra­mu za­wie­ra ok­no głó­wne oraz dwa ok­na po­moc­ni­cze, tj., ok­no z wi­do­kiem oraz z osią cza­su. Oba ok­na po­moc­ni­cze mo­gą być „wto­pio­ne” w ok­no głó­wne. Ok­no głó­wne za­wie­ra po­nad­to me­nu z za­kład­ka­mi, na któ­rych po­gru­po­wa­no na­rzę­dzia wg kry­te­rium te­ma­tycz­ne­go. Na ko­lej­nych stro­nach tej po­mo­cy oma­wia­my te za­kład­ki. Uży­cie kla­wi­sza F1 w pro­gra­mie ot­wo­rzy tę po­moc na od­po­wie­dniej stro­nie.