home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #7
/
amigamamagazinepolishissue1998.iso
/
magazyn_amiga
/
0896
/
013_kanty
< prev
next >
Wrap
Text File
|
1998-03-26
|
7KB
|
132 lines
KANTY
<lead>ImageFX jest bardzo wszechstronnym programem graficznym.
Jednak w pogoni za "uprzestrzennianiem" pîaskich obrazków
zabrnâîem w ôlepy zauîek. Wszystko przez to, ûe chciaîem trochë
POKANTOWAÊ. Oczywiôcie nie jakieô bliskie mi osoby, ale...
brushe.
<a>Tadeusz Talar
<txt>W jëzyku osób zajmujâcych sië grafikâ komputerowâ angielskie
sîowo BEVEL pojawia sië doôê czësto. Opisuje ono, zwîaszcza w
programach 3D, wynik specyficznych operacji, polegajâcych na
dodaniu róûnego typu "szlifów" do krawëdzi obiektów. Podnosi to z
reguîy walory estetyczne wygenerowanej sceny przez dodatkowâ grë
"ôwiatîa" na tak "oszlifowanych" krawëdziach. W programach 2D
opcjë BEVEL moûna spotkaê rzadziej, niemniej wystëpuje ona w
palecie efektów niektórych aplikacji. Wdziëcznie brzmiâce sîowo
BEVEL to w jëzyku polskim swojski KANT, i wîaônie takich kantów
zachciaîo mi sië podczas pracy z ImageFX-em. Niestety, w
programie tym nie mogîem znaleúê podobnej opcji (tak jak zresztâ
i w innych znanych mi graficznych aplikacjach dla Amigi). I juû
rozczarowany miaîem zaprzestaê swoich dziaîaï, gdy po dokîadnym
przejrzeniu makrodefinicji, umieszczonych w katalogu REXX
ImageFX-a, gdzie znalazîem jedynie makro do robienia ramki wokóî
obrazka, przyszîa mi do gîowy myôl, ûe wîaônie tëdy wiedzie droga
do zrealizowania potrzebnej operacji "kantowania". Potem wszystko
potoczyîo sië juû doôê sprawnie. Do wymyôlonego naprëdce
algorytmu wystarczyîo dobraê odpowiednie rozkazy ARexxa z bogatej
listy, jakâ oferuje ImageFX, caîoôci nadaê postaê makrodefinicji
przy uûyciu CED-a, a potem to juû tylko testy i sprawdzanie
efektu koïcowego. Wynik dziaîania takiej, roboczej jeszcze, ale w
peîni juû funkcjonalnej, makrodefinicji przedstawia rys. 1.
Oczywiôcie w caîej sprawie kluczem byî algorytm. Zaîoûeniem moim
byîo potraktowanie BEVEL-em brushy. Po wczytaniu takiego brusha z
dysku lub "wyciëciu go" z obrazka uznaîem, ûe wystarczy
"pocieniowaê" odpowiednio cztery jego boki na gruboôê KANTU (rys.
2.) i da to poûâdany efekt. Wybraîem w tym celu opcjë rysowania
(DRAWING MODE) w trybie DARKEN lub LIGHTEN trapezowatych figur.
Oczywiôcie stopieï opcji LIGHTEN czy DARKEN determinowaî to, czy
rysowana figura odpowiednio rozjaôniaîa lub przyciemniaîa
fragment brusha. Dla najczëôciej spotykanego "oôwietlenia" z
lewego górnego rogu ekranu kolejnoôê rozjaônieï czy przyciemnieï
wyglâdaîa nastëpujâco: górny obszar brusha -- najjaôniejszy, lewa
strona rozjaôniona o 1/4 wartoôci góry, dóî brusha --
najciemniejszy i prawa strona przyciemniona o poîowë wartoôci
przyciemnienia doîu. Rysowanie rëkâ trapezów rozjaôniajâcych i
przyciemniajâcych wspomniane obszary brusha nie wchodziîo w
rachubë. Nie sposób bowiem na dîuûszâ metë okreôlaê tak
precyzyjnie pasujâcych ksztaîtów przy uûyciu myszki. To kolejna
zaleta ARexxa, który raz zaprogramowany zawsze bëdzie realizowaî
powierzone mu zadania z naleûytâ precyzjâ.
Juû po pierwszej próbie brush z nowo powstaîymi kantami wydaî mi
sië jednak nieco nienaturalny. Skoro BEVEL ma sugerowaê
powierzchnie "zeszlifowane", to przydaîoby sië je nieco
"zmatowiê". W tym celu postanowiîem zaprzâc do pracy opcjë MOTION
BLUR z panelu CONVOLVE ImageFX-a. Powoduje ona przesuniëcie
pikseli w zdefiniowanym kierunku o okreôlonâ wartoôê (offset),
przy okazji "rozmywajâc", jak na BLUR przystaîo, poddany mu
obszar obrazka. Zazwyczaj MOTION BLUR ôwietnie wprowadza do
statycznego obrazka klimat ruchu. W moim wypadku miaî on
zasymulowaê efekt "zeszlifowania" powierzchni brzegu brusha pod
zadanym kâtem. Poniewaû w ImageFX-ie nie ma trybu, w którym
moûna rysowaê opcjâ MOTION BLUR, powstaî problem technicznej
realizacji tego zadania. Postanowiîem w tym celu wykorzystaê
moûliwoôci okreôlania do dalszej obróbki tylko wybranych obszarów
(regions) obrazka. Po ustawieniu selektora obszarów na BOX
zaznaczyîem obszar o wymiarach caîego brusha pomniejszony z
kaûdej strony o wartoôê okreôlajâcâ "gruboôê" kantu, a nastëpnie
przez wciôniëcie klawiszy [Ctrl][I] zanegowaîem obszar
podlegajâcy selekcji, przeznaczajâc w ten sposób do dalszej
obróbki tylko brzegi obrazka (rys. 3). I tu znowu okazaîo sië, ûe
z poziomu ARexxa moûna to zrobiê duûo proôciej i dokîadniej.
Nastëpnie zaaplikowaîem do zdefiniowanego obszaru opcjë MOTION
BLUR i kolejno rozjaôniîem lub przyciemniîem brzegi brusha. Efekt
mnie usatysfakcjonowaî, ale w gîowie zaôwitaîa jednoczeônie
kolejna myôl: "A moûe by tak przed ostatecznym cieniowaniem boków
brusha potraktowaê wspomniany obszar nie tylko MOTION BLUR, ale i
innymi opcjami ImageFX-a, a nawet ich kombinacjâ?", i w ten
sposób spróbowaîem oprócz MOTION BLUR dodaê jeszcze ROUGHEN i
APPLY TEXTURE z panelu EFFECT ImageFX-a, i to w róûnej
kolejnoôci. Skutki tego dziaîania byîy czasem bardzo ciekawe, ale
innym razem do "kitu", niemniej moûliwoôê "deformowania"
powierzchni kantu przy uûyciu praktycznie dowolnego efektu
ImageFX-a jest na tyle kuszâca, ûe warto poeksperymentowaê.
Zawarte w powyûszych zdaniach moje dziaîania znalazîy swe
"ucieleônienie" w makrodefinicji (patrz Listing 1.). Po
przepisaniu jej przy uûyciu dowolnego edytora tekstu (np.
systemowego ED-a czy komercyjnego CED-a) wystarczy zapisaê jâ pod
nazwâ, np. BEVEL.IFX w katalogu REXX ImageFX-a. Nastëpnie w
ImageFX-ie naleûy wczytaê z dysku lub wyciâê z obrazka,
znajdujâcego sië w buforze MAIN, brush, po czym kliknâê na
gadûecie REXX i z listy makrodefinicji wybraê BEVEL.IFX. Makro
zgîosi sië wîasnym okienkiem (rys. 4.), sîuûâcym do definicji
"gruboôci" kantu oraz ewentualnych efektów, majâcych za zadanie
modyfikacjë powierzchni kantu. Wystarczy w tym celu kliknâê na
gadûecie obok nazwy efektu (co spowoduje ustawienie na nim
charakterystycznego "ptaszka"), w skrajnym wypadku moûna
jednoczeônie zaznaczyê wszystkie trzy gadûety, co spowoduje
wykonanie wszystkich efektów na krawëdzi brusha, lub teû nie
zaznaczaê ûadnego, co z kolei spowoduje jedynie odpowiednie
przyciemnienie/rozjaônienie brzegów brusha.
Gdy juû jesteômy zadowoleni z poczynionych ustawieï tak gruboôci
kantów, jak i efektów, wystarczy kliknâê na OKAY i w zaleûnoôci
od szybkoôci posiadanego komputera odczekaê krótszâ lub dîuûszâ
chwilë, kiedy to nasz "wyciëty" lub wczytany z dysku brush
zostanie zastâpiony przez jego "okantowanâ" postaê. Tu maîa
uwaga. Jak juû zapewne zauwaûyliôcie, przyglâdajâc sië Listingowi
1., w trakcie realizowania makra ImageFX korzysta z bufora SWAP,
dlatego teû przed poddaniem brusha "okantowaniu" upewnijcie sië,
czy przypadkiem w buforze SWAP nie znajduje sië jakiô potrzebny
Wam obrazek. Poza tym, przyjëte w makrodefinicji "na sztywno"
parametry, okreôlajâce wartoôê rozjaôniania/przyciemniania, dane
dla MOTION BLUR oraz ROUGHEN nie stanowiâ "jedynie sîusznego" ich
ustawienia. Moûna z nimi dowolnie eksperymentowaê, podobnie
zresztâ jak z doîâczaniem innych efektów wykonywanych, zanim
nastâpi koïcowe rozjaônienie/przyciemnienie boków brusha. Mam
nadziejë, ûe taki rodzaj "kantowania" spodoba sië Wam i
jednoczeônie zachëci do szukania wîasnych sposobów wyjôcia z
róûnych innych sytuacji, w których wydaje sië, ûe ImageFX nas
ogranicza. Makrodefinicje i specyficzne dla tego programu rozkazy
ARexxa mogâ byê ôwietnâ pomocâ w odnalezieniu wîaôciwej drogi do
celu.