Professional Documents
Culture Documents
29 Mart
29 Mart
<<
recek frameseti kullanacak olan sayfa (frame.html), dier ikisi ise ekrann solunda ve sanda iki ayr frame olarak grnecek olan iki ayr HTML sayfas (sol.html ve sag.html).
frame.html <html> <head> <title>frame</title> </head> <frameset cols="170,*"> <frame src="sol.html" name="soldaki"> <frame src="sag.html" name="sagdaki"> </frameset> <noframes> <body bgcolor="#ffffff"> </body> </noframes> </html>
</body> </html>
sag.html <html>
<head> <title>sag</title>
>>
</head> <body bgcolor="#cccccc"> <h2>Sadaki sayfa</h2> </body> </html>
Web Programcl
nelerine ulaabilmemiz ve bu nesnelerin zelliklerini deitirebilmemizdir. Bu bakmdan DOM tablosunu doru kullanmak hayati nem tar.
sag.html <html> <head> <title>sag</title> </head> <body bgcolor="#cccccc"> <h2>Sadaki sayfa</h2> <form name="formum"> <input name="tepki"> </form> </body> </html>
sol.html <html>
DOM Tablosu
Eer bir taraycnn DOM (Document Object Model) tablosuna bakacak olursak frame objesinin hiyerarik olarak frame iinde gsterilen HTML sayfalarndan daha st pozisyonda olduunu grrz. Zira bir frameset, altnda birden fazla HTML sayfasn barndrabilir. JavaScript ile alrken ayn frameset iindeki farkl frameleri ifade etmek iin frameset ierisinde tanmlandklar referans isimleri kullanlr. Yani rneimizde soldaki ve sagdaki diye adlandrlan isimler. Zira frameler iinde grnecek sayfalarn isimleri deiebilir ama framelerin kendine ait isimleri olmaldr. JavaScript asndan dnecek olursanz, gznzde canlanmas gereken sahne u ekilde olmaldr: Frameset (ya da framesetin bulunduu sayfa) st obje iken framelerde gsterilen sayfalar alt obje olarak kabul edilir. st obje top ya da parent anahtar kelimeleri ile tanmlanrken alt objeler child ya da frameset iinde alm olduklar referans isimleri ile tannr. Yani frameset rneimizdeki st obje iki adet alt objeye sahip, soldaki ve sagdaki. Burada bizim iin en nemli nokta, DOM model tablosunu kullanarak bir frameset iinde bulunan sayfalara ve ilgili sayfalarn nes< CHIP Workshop 167 <
function tepkiVer() { parent.sagdaki.document.formum.tepki.value="Merhaba!"; } </script> </head> <body bgcolor="#ac0000"> <h2>Soldaki sayfa</h2> <form> <input type="button" value="Tepki ver!" onClick="tepkiVer()"> </form> </body> </html>
Web Programcl
<<
sayfalara aktarabilmek iin framesette bir dier framede tanml deikende saklayabilirsiniz. imdiki rneimiz framesetteki bir sayfada tanmlanm JavaScript fonksiyonunu arp kullanacak. Grelim.
frame.html <html> <head> <title>frame</title> </head> <frameset cols="170,*"> <frame src="sol.html" name="soldaki"> <frame src="sag.html" name="sagdaki"> </frameset> <noframes> <body bgcolor="#ffffff"> </body> </noframes> </html>
imdi frame.html sayfasn web taraycnzda an. Sol framedeki dmeye tklayn. Sa framedeki sayfada bulunan form girdi alannda bir mesajla karlaacaksnz. Bu u anlama geliyor: JavaScript kullanarak frame iindeki bir sayfadan bir dierinin zelliklerini kontrol edebiliyorsunuz! imdi kodumuzu biraz inceleyelim. frame.html sayfasnda dikkat edilecek tek nokta frameset ierisinde kullanlan framelerin referans isimleri (soldaki ve sagdaki). Asl ilem ise sol.html sayfasndaki kodda gerekleiyor. Kullanc dmeye bast anda JavaScript tepkiVer() fonksiyonunu aryor. Bu fonksiyonun ierdii koda bir bakalm imdi.
parent.sagdaki.document.formum.tepki.value="Merhaba!";
<html> <head> <title>sol</title> <script language="javascript"> function tepkiVer() { parent.sagdaki.document.formum.tepki.value="Merhaba!"; } </script> </head> <body bgcolor="#ac0000"> <h2>Soldaki sayfa</h2> </body> </html>
Satrnn yapt i sa framedeki form girdi alannn iinde grnecek bilgiyi Merhaba! metni olarak belirlemek. Peki ama bu girdi alann JavaScripte nasl ifade ediyoruz? Cevap: Eitliin sol tarafndaki ifade ile. Burada parent ile nce st obje olan frameseti, sagdaki ile de bu framesete ait olan sadaki framei ifade ediyoruz. Document bu framedeki sayfay, formum sayfadaki formu, tepki ise formdaki girdi alann ifade ediyor. Value ise ifade edilen objenin ilgili deerini belirten zellik. Elbette sayfanza farkl elemanlar ekleyip bu elemanlarn zelliklerini deitirmeyi deneyebilirsiniz.
>>
Web Programcl
rnek iin herhangi basit bir frameset kullanabilirsiniz, mesela bu blmdeki ilk rnek framesetmizi kullanalm yine. Sadece sag.html sayfasnn kodunu aadaki gibi deitirin.
sag.html <html> <head> <title>sag</title> <script language="JavaScript"> if (top.location!= self.location){
sol framede tanmlanm bir JavaScript fonksiyonunu sa frame ierisinden ararak kullanyoruz.
<h2>Sadaki sayfa</h2> <form name="formum"> <input name="tepki"><br><br> <input type="button" value="Buradan da tepki ver!" onClick="parent.soldaki.tepkiVer()"> </form> </body> </html>
frame.html sayfasn altrdnzda, sadaki sayfadaki dmeye basnca yine ayn sayfada mesajn grndn gzlemleyeceksiniz. lk bakta ok nemli bir ilem deilmi gibi dnebilirsiniz. Ama burada gerekleen asl olay mesaj gsteren scriptin soldaki sayfada olduu ve sadaki sayfann bu scripte ait tepkiVer() fonksiyonunu arp kullanabilmesi! sag.html sayfasnn koduna bakacak olursanz JavaScript kodu olmadn greceksiniz! arma taktiimiz aa yukar ayn temele dayanyor. DOM modelini kullanarak ilgili sayfaya oradan da ilgili fonksiyona ulamak burada da iin temeli.
parent.soldaki.tepkiVer();
framedeki sag.html sayfas iindeki JavaScript kodu tarayc tarafndan okunduu anda sag.html sayfas frame.html sayfasnn yerini alr.
Web Programcl
<<
<html> <head> <title>sag</title> <script language="JavaScript"> if (top.location == self.location){ top.location.href = "index.html?sag.html" } </script> </head> <body bgcolor="#aaaaaa"> <h2>Frame'de grnmeye zorlanacak ierik sayfalarnzdan herhangi biri</h2>
satrlarndaki art ile JavaScript kodumuzun bulunduu sayfamzn yerinin tarayc penceresindeki en st frameset objesinin yeri ile ayn olup olmadn sorguluyoruz. Eer ayn deilse
top.location = self.location
</body> </html>
Ayrca ierii nemli olmayan iki adet daha sayfamz olmal. Menmz ieren sol.html ile her zaman ierik frameinde ilk olarak grnecek home.html. Evvela index.html sayfanz an. Greceiniz sitenizin olaan hali olacaktr. Daha sonra herhangi bir ierik sayfamz temsil eden sag.html isimli sayfanz amaya teebbs edin. Sayfanzn olmas gerektii gibi framesetinizde aldn greceksiniz.
satrndaki art bulunduunuz sayfa bir frameset iinde deilse salanm oluyor. Bu durumda
top.location.href = "index.html?sag.html"
Her zaman frameset iinde grnmesi gereken herhangi bir ierik sayfamz.
sag.html
satr ekrana index.html?sag.html url adresli dosyay yklyor. Bu url sayesinde index.html sayfasn yklemekle kalmayp geldiimiz sayfann ismi olan sag.html bilgisini de parametre olarak bir sonraki sayfaya tayoruz. Bu bilgi birazdan index.html sayfasndaki
170 CHIP Workshop > >
>>
Web Programcl
Satrlarnda nce url adres ubuunda bir parametre olup olmadn sorguluyor. Eer varsa bu parametre deerini ierik frameinde gsterilecek sayfa ad olarak kullanmak zere sayfa isimli deikene kaydediyor. Eer yoksa olaan deer olarak home.html sayfasnn framede ilk sayfa olarak grnmesini salyor (Dorudan olarak anasayfa.html sayfasn atnzda bu yzden home sayfasn gryorsunuz).
var blok = ""; blok += '<frameset cols="130,*">'; blok += blok += '<frame src="sol.html">'; '<frame src="' + sayfa + '">';
blok += '</frameset>';
satrlar elde edilen sayfa deiken deerine gre sayfaya yazdrlacak frameset kurgusunu blok isimli bir deikende toplayp
document.write(blok);
sayfaya yazdryor. Sonu olarak bu kurguya gre sitenizde frame iinde almasn istediiniz sayfalarn bana script tarafndan alglanacak ve framesette ierik frameinde bu sayfay grntleyecek.
ndex.html sayfasndaki scriptimiz if (location.search) { var sayfa = location.search.substring(1) } else { </script> <script language="JavaScript"> if (top.location == self.location){ top.location.href = "index.html?sag.html" }
blounu eklemeniz yeterli. Tabii sayfanzn adn dzeltmeyi unutmayn. Eer bu ekilde ok sayda sayfanz var ve de her birinin adn yazmak zor geliyorsa, sabit olarak
<script language="JavaScript"> if (top.location == self.location){ top.location.href = "index.html?" + self.location.pathname; } </script>
blounu yazmay deneyebilirsiniz. Not:: Bu ayki atlyemizde yer alan rneklerin kaynak kodlarn CDdeki StudioWeb+ blmnde bulabilirsiniz. Numan Pekgz numanpekgoz@chip.com.tr
< CHIP Workshop 171 <
Linux
<<
ir sre ncesine kadar Linux kullanclarnn ektikleri en byk zorluk, eski sistemlerinde kullandklar baz uygulamalarn elerinin bulunmamas idi. Oysa u sralar baktmzda, dier iletim sistemleri iin tek bir yazlm pazara hakimken, Linux iin de her i iin bir, hatta birden fazla popler yazlm bulunabilir oldu. Linux ortamnda en ok sknts ekilen konulardan biri elence ve sohbet servisleridir desek yanl olmayacaktr. Bunun nedeni, bu servisleri salayanlarn Linux ortamndaki kullanc tabann yeterli grmemeleri olduu sanlmakla beraber, salayclarn bazlarnn Linux iletim sistemini kendi rnleri ile rakip olarak deerlendirmelerinde de yatmaktadr. Bu servisleri salayanlarn, yukarda anlattmz eitli nedenlerden dolay Linux ortam iin bir istemci yazlm salamamalarndan dolay, bamsz yazlm gelitiriciler tarafndan bu protokoller tersten mhendislik (reverse engineering) yaplarak uygun yazlmlar gelitirmilerdir. ncelikle, bu yazlmlarn avantajlarn ve dezavantajlarn inceleyelim. Avantajlar: 1 Bu yazlmlar, bamsz yazlm gelitiriciler tarafndan gelitirildiklerinden, kullanc tarafndan grsel olarak rahatsz edici, istenmeyen unsurlar (reklam vb.) bulunmamaktadr. 2 Finansal bir ama gtmediinden, dola-
ysyla reklam ve bunun gibi sistemi devaml megul eden paralardan yoksun olduundan performans asndan daha tatmin edici olabilirler. 3 Bu yazlmlar genelde birden fazla protokol desteklemektedirler. Tek bir program aarak, birden fazla balant kurulabilir, bylece programlar aras gidip gelmekten kurtulabilirsiniz. 4 Baz durumlarda bu yazlmlar birden fazla ortam iin yazlm olabilir. Bylece
hem Windows ortamnda, hem Linux ortamnda ayn programn kullanlabilmesi mmkn olmaktadr. Dezavantajlar: 1 Yazlm gelitiren kii bu projesinden vazgeebilir (Popler ve zgr yazlmlarda, genelde bu olay takiben bir baka programc devralmaktadr). 2 Sohbet servisinin salaycs protokolde nceden uyarmakszn bir deiiklik yaparak bu programlar almaz hale getirebilir
Resim 1
>>
Linux
(Ksa srede gncellemesi kmaktadr). 3 Tersten mhendislik sreci henz protokoln tm iin tamamlanmam olabilir (rnein program balanmay, mesaj gndermeyi destekliyor ama sesli mesaj gndermeyi desteklemiyor olabilir). Her ne kadar Linux ortam zerinde bu konuda birok yazlm bulunsa da (licq, gaim, kmess gibi), zerinde duracamz yazlm, en ok kullanlan drt protokol de destekledii (ICQ, MSN, Yahoo, AIM) ve KDE ile entegre olarak alt iin Kopete olacak. Kopete (http://kopete.sf.net) Kopete, KDE datm ile beraber sunulmaya balanm bir annda mesajlama (instant messaging) yazlmdr. Eklenti (plugin)
destei olduundan dolay, her trl protokol kullanabilir. Menmzde hali hazrda kurulu bulunduu iin problemsiz bir biimde Kopeteyi bulup altrabilirsiniz. Karmza kan pencere ile ilk olarak bizden hesap tanmlamamz istenecektir (Resim 1). Burada Yeni tuuna basarak yeni bir hesap ekleyebiliriz. rneimizde bir ICQ hesab, bir de MSN hesab ekleyeceiz. lk nce ICQ hesabmz ekleyeResim 2 lim. (Resim 2) Kopete'de her protokoln kendine ait hesap tanm ekranlar vardr. Burada ICQ protokol iin olan hesap tanm ekrann gryoruz (Resim 3). ICQ numaramz ve tercihen (kaydedilmesini istiyorsak) ifremizi de girelim. ifremizi kaydetmezsek, yazlm her balantda bize tekrar tekrar soracaktr. Bu yntem daha gvenli olsa da, bazen can sknts yaratabilir. Kopete'nin en ho zelliklerinden biri ise, tantlan her hesap iin bir renk seimi yapmamza izin vermesi. ki ICQ, iki MSN adresi olan bir kii, Kopete'ye drdn de ekleyip hepsine deiik renkler atayarak bu hesaplar birbirinden kolayca ayrabilir. Bu zelliin kullanlabilecei belli bal noktalar hobi ile ilgili olabilecei gibi, biri i biri kiisel olan hesaplar iin de ok byk pratiklik salamaktadr. rneimizde, eklediimiz ilk ICQ hesabna mavi renk atadk. (Resim 4) Ayn ekilde, bir de MSN hesab ekleyelim. Bunun iin ilk ekrana dnerek (Resim 1) tekrar Yeni tuuna basalm, bu sefer protokol olarak MSN'i seelim. Hesap bilgisi alanlarn doldurduktan sonra Kopete kullanma hazr demektir. Hesap ekleme ilemleri bittiinde tekrar yaplandrma ekranna dnm olacaz. (Resim 5) Burada grld gibi ICQ hesabmz mavi renkte, MSN hesabmz da pembe renkte tanmladk. ki ayn tr hesap tanmladResim 3 mzda bu renk ayrm ok da-
Resim 4
ha ie yarar hale gelmekte ve hesaplar kartrp yanl hesaptan yanl kiiler ile mesajlama durumlarna engel olmakta. Bu menden Tamam tuuna tklayarak ayrldmzda ise Kopete'nin balanmaya hazr ama bo ekranna (Resim 6) dnm oluyoruz. Bu ekranda dikkat etmemiz gereken baz noktalar mevcut.
1 Kopete aldnda zamanda durum ubuu denilen sa alttaki ksma kk bir simgesini yerletirir. Kopete kapatldnda kendini buraya minimize edecektir. Kopete'den tamamen kmak iin Dosya mensnden k seeneini iaretlemeliyiz. lk altan sonraki allarda da sa alta yerleip simge durumunda kaldndan, Kopete altnda almad hissini verebilir. 2 Tek tu ile tm hesaplarmza balanabilir ya da teker teker hangi hesaplarmza balanmak istiyorsak onlar seebiliriz. Kopete penceresinin sa altnda henz silik duran ICQ ve MSN simgelerine sa tklarsak (Resim 7 ve 8) kan menlerden o hesap iin bulunacamz durumu (Bal, megul, vb.) seebiliriz. Hesaplardan birine ya da bir kana balandmzda (eer varolan bir hesabmz tanttysak) balant listemiz sunucudan yklenecek ve ekrana gelecektir. Burada, bir balantnn zerine ift tkladmzda sohbete balayabilir, sa tkladmzda ise bir men aracl ile dier seeneklere ulaabiliriz. (Resim 9) Sohbet ekran, bu programlarda alagel-
Linux
<<
sim 10). Ayrca ayn ekranda bulunan Grnm sekmesinde de, Kopete'yi kiiletirmek iin birok ayar bulunmaktadr. Sohbet penceresi (Resim 11) benzeri yazlmlara nazaran ok fazla zellik barndrmakta ve bu zellikler eklentilerle (plugin) daha da gelitirilebilmektedir. rnein Resim 5 Ayarlar / Eklentiler (Plugin) mensnden ulaacamz ekran zerinde (Resim 12), standart kurulum ile gelen eklentilerden bazlarn inceleyelim. Buradaki eklentileri, yanndaki kutucuklara onay iareti koyarak kolayca etkinletirebiliriz. lk bakta gzmze arpan baz zellikler:
Resim 8
Resim 6
diimiz ekilde ikiye blnm bir ekran olmasna ramen, Ayarlar / Kopete'yi Yaplandr / Davran / Sohbet / Arayz zellikleri ksmndan tm ayrntlar ayarlanabilir (Re-
1 Auto Replace: Devaml yazdmz szleri ksaltmamza yarar. rnein metin ksmna mbn, yedek ksmna merhaba, bugn naslsn? yazp Ekle tuuna basarsak, artk sohbet srasnda mbn yazdmzda bu Kopete tarafndan otomatik olarak dntrlecektir. 2 Cryptography: Eer tanml bir PGP anahtarmz var ise, Kopete'yi kullanarak bu anahtar zerinden ifreli iletiim yapabiliriz (Tabii ki kar tarafta da bizim ak (public) anahtarmzn bulunmas gerekmektedir). 3 Highlight: Belli bir filtre tanmladmzda, o filtreye uyan mesajlar geldiinde Kopete'nin bizi uyarmasn salayabiliriz. 4 Kopetex: LaTeX dokman sistemi formatnda mesajlama salar. Bylece bilim-
sel formlleri mesajlarda kullanabiliriz. 5 Metin Efekti: Bu ekrandan, mesajlarmz istediimiz ekilde metin efekti vererek gnderebiliriz. 6 evirmen: Desteklenen dillerde eviri yapmaya yarar. Altavista'nin Babelfish ya da Google'n eviri hizmetini kullanabilir. Bu eklentinin en byk zellii, eviriyi annda yapmas. Diyelim ki bir Alman ile konuuyoruz ama Almanca bilmiyoruz ve bu eklentiyi aktif hale getirdik. Biz ngilizce yazdmzda, mesaj ona otomatik olarak Almancaya evrilerek gidecektir. Onun yazd Almanca mesajlar da bize otomatik olarak ngilizceye evrilerek gelecektir. Kopete, dier tm KDE uygulamalarnn yolunu izleyerek hem Trke, hem de kulla-
Resim 7
Resim 9
Resim 10
nm rahat ve kolay bir arabirim salamtr. KDE'ye deinmiken, Linux ortamnda kullanlan en yaygn, kolay ve ho grnml masast ortam olan KDE'nin yeni srm olan 3.4'n yakn bir zamanda kmas bekleniyor. u sralarda Beta 2 durumunda olan KDE 3.4, birok enteresan ve yeni zellik getiriyor. Bu yeniliklere ve yeniliklerin getirildii yazlmlara ksacak bir gz atalm:
1 KDM: KDE'nin kullanc oturumu kontrol yazlm olan KDM, artk ayn anda birden fazla kullanc ile oturum amaya izin veriyor. Daha nceki srmlerde de bulunmasna ramen kulland yntem yeniden tanmlanm olan KDM, bylece programlar kapatmadan baka bir kullanc adyla KDE masast ortam amay salyor. 2 KPDF: KDE'nin PDF yazlm olan KPDF'in, Adobe Reader'dan dahi daha gzel ve kullanl hale getirildiini sylesek, yan-
l olmayacaktr. Yaz arama, seilen blgeleri yaz ya da resim olarak kopyalama gibi zelliklerin de kazandrld KPDF, performans asndan da gayet tatmin edici bir dzeye getirilmi. PDF dosyalarn slayt gsterisi olarak sunmaya yarayan bir de slide show zellii eklenmi. 3 Kopete: Yeni KDE ile birlikte gelecek olan yeni Kopete de yenilikler ieriyor. (Bu Kopete'yi yeni KDE'yi yklemeden de http://kopete.sf.net/ adresinden indirebilirsiniz) Kopete'yi, zellikle protokol destekleri ok ilerlemi ve dosya aktarmlar daha ilevsel hale gelmi ekilde greceiz. Grsel olarak da daha tatminkar olan Kopete, Linux ortamnda rakipsiz sohbet yazlm olma yolunda ilerliyor. Kopeteyi ve daha birok yararl KDE yazlmn http://www.kde-apps.org adresinden cretsiz indirebilirsiniz. Eer sisteminizi bozmadan yeni KDE'nin beta srmn denemek istiyorsak, Klax isimli Linux datmn deneyebiliriz. Klax; Slax, Knoppix, Movix gibi CD'den alan bir Linux datm olduu iin, internetten ekerek CD'ye yazdmzda ve bilgisayar bu CD'den atmzda, sabit diskimize hibir kurulum yapmadan bu yeni masast ortamn deneme frsat yakalam oluyoruz. Bu datmlar indirebileceimiz adresler:
Klax: http://ktown.kde.org /~binner/klax/ Slax: http://slax.linux-live.org/ Ayrca, konu KDE'den almken, baz KDE kullanclarnn Windows ortamlarnda da KDE kullanmak istediklerini duyuyorum. Bu isteklerini Cygwin isimli ortam Windows iletim sistemi kullanan bilgisayarlarna ykleyerek (http://www.cygwin.com) gerekletirebilirler. Cygwin, Windows ortamlarna UNIX sistem arlarn yantlama yeteneini kazandrarak Linux programlarmz Windows altnda tekrar derleyerek altrma imkann salamaktadr (Windows iin en son derlenmi KDE srm u an iin 3.1.4). Kurulum konusunda gerekli bilgileri: http://ptweber.home.comcast.net/kde/ adresinden edinmek mmkn. Gelecek iki yazmz, Windows uygulamalarn Linux ortamnda altrmaya ayracaz. Bu yazlmlar altrmann bir ok yolunu inceleyecek, bunlar teker teker sistemimize kuracak ve ok kullanlan Windows yazlmlarn bunlar zerinde deneyeceiz. Bu yazy, bir dahaki yazda ileyeceimiz konular aratrmak isteyenler iin bir ka adres vererek bitirmeyi uygun buldum. Bu yazlmlarn kurulumlar hakknda ekinmeden e-posta atarak sorularnz sorabilirsiniz. Win4Lin: http://www.win4lin.com/ Wine: http://www.winehq.com/ Crossover Office: http://www.codeweavers.com/ WineX: http://www.transgaming.com/ Problemsiz ve keyifli kullanmlar dileklerimle. Doa enol dogac@masterz.com
Resim 12 Resim 11
3D
<<
tan ktr. Dolgu ise objemizin anahtar k tarafndan aydnlatlamayan blmlerini aydnlatr, k deeri anahtar ktan daha kk tutulur. Arka k ise objemizi arkadan aydnlatarak obje zerinde bir kontur oluturur. Bylece sahnedeki objemiz en temel klandrma tekniiyle her ynden aydnlatlm olur (ekil-1). Fakat genellikle sahnemiz ierisinde onlarca farkl deerlerde k bulunur. Aydnlatmann kalitesi render ilemi sonrasnda alacamz sonuca dorudan yansr. Sahnemiz ierisinde ne kadar iyi bir aydnlatma kullanrsak sahnemizde o kadar gzel ve doru grnecektir. Tabii ki birok aydnlatma yntemi vardr ve bu yntemlere kendi yntemlerimizi ve aydnlatma tekniklerimizi de katabiliriz. Ba-
zen sahnemizde zel ruh durumlarn yanstmak iin ok farkl yntemler ve farkl renklerde klar kullanrz. Bu nemlidir, nk kullandmz klarn renkleri ve deerleri sahnemizin ruh halini de belirler. Burada gerek bir fotoraf veya bir sinemac gibi almamz ve scak-souk renklerin insanlar zerindeki etkilerini bilmemiz gerekir. Doay gzlemlediimizde, gnn her farkl saatinde, hatta yln her farkl mevsiminde n farkl etkiler yarattn grrz. Yaz mevsiminde gne dorudan geldiinden renkler daha parlak ve sararm olarak grnr. Fakat kn bulutlarn etkisiyle renkler parlak etkilerini yitirir. lk bakta, 3ds Maxin aydnlatma yntemi gerek dnyadaki aydnlatma ilkeleriy17 CHIP Workshop > >
>>
3D
1 2
le benzer grnr fakat 3ds maxin klar ile gerek klar ayn ilkelerle aydnlatmaz. Bunun en byk sebebi, yansyan klarn 3ds Maxin default render motorunda bulunmamas ve default render motorunun ikincil klar (bounce lights) hesaplamada kullanmamasdr. rnek olarak, gerek dnyada bir oday tek bir kla aydnlatabiliriz fakat 3ds maxte modellediimiz bir oday tek bir k kaynayla aydnlatamayz. Gerek dnyada k nesneler zerinden yansr ve ulaabildii her yere ular, halbuki Maxte k kesildii yerde durur. Maxteki bir nesnenin glgesi tam karanlktr fakat gerekte glgeler kendi ierilerinde deerlere sahiptir. Tabiatta tam karanlk glgeye rastlayamayz. Bu sebeple bazen renderlarda yapay grnen sonularla karlaabiliriz. Bu gibi sorunlar sadece Global Illumination yntemi ile render hesaplamas yapan render motorlaryla engelleyebiliriz. 3ds maxin 5.0 srmne kendi ierisine bir global illumination (genel aydnlatma) hesaplamas yapan render motoru eklenmitir ve piyasaya daha ncesinden eitli global illumination hesaplamas yapan ikinci parti render motorlar srlmtr. Global Illumination render motorlarnn en ok kullanlanlar Brazil, Final render, Vray ve Mental raydir. Global Illumination hesaplamas yapabilen render motorlar ile yansyan klardan daha fazlas da hesaplanabilir ve her geen gn zelliklerine yenileri eklenmektedir. Biz bu ay Splutterfishin Brazil render motorunu kullanacaz ve aydnlatma iin eitli alternatifler deneyeceiz. Brazilin deneme srmn www.splutterfish.com adresinden edinebilirsiniz. Daha sonra .hdr uzantl arka plan resimlerini kullanacaz. .hdr uzantl resimleri internette birok adresten temin edebilirsiniz (rnein www.debevec.org). Max 5 sonras srmler .hdr uzantl resim dosyalarn problemsiz olarak kullanabilirler fakat daha eski bir max srm kullanyorsanz, .hdr uzantl
< CHIP Workshop 18 <
4
z:112 konumuna tayalm. Target da x:0 y:-33 z:23 konumuna tayalm. Perspektif gr penceresinde klavyemizden [c] tuuna basarak kamerann grne geelim..
resimler iin hdr eklentisini www.maxplugins.deden cretsiz olarak bilgisayarnza indirebilirsiniz. .hdr uzantl resimler kendi ierilerinde klandrma bilgilerine sahiptirler ve .hdr uzantl resimlerle daha fotogereki sonulara ularz. Tm bunlarn en byk dezavantaj zamandr, nk global illumination hesaplamas yapan render motorlar render ilemini ok uzun srelerde gerekletirirler
4 Ksayol [m] ile material editoru aalm ve ilk slottaki malzemeyi planee ve krelerimize uygulayalm. 5 Sahnemiz ksz olarak render edildiinde ekil-4teki gibi gzkr. Henz aydnlatma ile ilgili hibir ilem yapmadmz iin sahnemiz maxin varsaylan klar ile aydnlatlyor. 6 imdi Rendering mensnden Rendera tklayarak Render Scene iletiim panelini aalm. Paneli aaya doru kaydrarak Current Renderers blmn geniletelim ve Production blmnn yanndaki Assign butonuna tklayalm. (ekil-5) Karmza kan seim penceresinden Brazilr.syi seelim. (ekil-6) Bylece geerli render motorumuzu Brazil ile deitirmi olduk. Eer [F9]a basarsak render ileminin daha ncekilerden farkl bir biimde gerekletiini
1 lk olarak maxi resetleyerek balayalm. Sahnemizin tam ortasnda bir plane oluturalm. Length:239, width:325. Plani xyz:0.0.0a alalm. 2 Daha sonra radius deeri 20 olan bir
sphere oluturalm. Spherei x: -42,704 y: -35,056 z: 20,867 konumuna tayalm ve front gr penceresinde x ekseninde yatay olarak iki defa kopyalayalm. Sahnemiz top grnmnde ekil-3e benzemeli.
3 imdi sahnemize bir adet target kamera ekleyelim. Kameramz x:0 y:-205 ve
3D
<<
nemizde hi k yok, fakat sahnemizi render ettiimizde Sky Lightn objelerimizi st taraftan aydnlattn grrz.(ekil-8)
9 imdi sahnemizdeki her bir kreyi farkl renklerle dokulandralm. Birbirine kontrast renkleri semeye zen gsterelim. Sahnemizi tekrar render edelim. (ekil-9) Render grntsnde krelerin kenarlarnda eitli przler olduunu gryoruz. Render Scene panelindeki Image Sampling blmn geniletip Min Samples deerini 2 ye karalm. imdi render ilemi daha uzun fakat daha temiz olarak gerekleir.
10 Gerekte birbirine yakn objelerin renk-
8
modelleme ve kapal mekan aydnlatmasnda sahnedeki nesneler birbirlerini etkileyerek daha gereki grneceklerdir.
11 Luma Server blmndeki sky lightn
6
grrz.
7 Eer tekrar Rendering mensnden Rendera tklarsak Render Scene panelinin alt ksmnda Brazil rsnin ayarlarn grrz. Bu panellerde Brazile ait parametreler bulunur ve bu parametrelerin her biri hassas ve nemlidir. 8 Render Scene panelini kaydrarak Luma Server alann bulup geniletelim. Bu blmde Brazilin global illumination ile ilgili baz ayarlar bulunur. Direct Illumination blmndeki Sky Light onay kutusunu iaretleyelim. (ekil-7) Bylece sky light denilen gkyz n etkinletirmi olduk. Bu k deerinin younluunu ve rengini ayn panelin alt ksmndan ayarlayabiliriz. Sah-
leri birbirlerini etkilerler. Fakat sahnemizdeki objelerin renkleri birbirlerine halen yansmamakta; imdi bunu gerekletirmek iin baz deiiklikler yapacaz. ncelikle Luma Server blmndeki Indirect Illumination altndan Enable onay kutusunu iaretleyelim. Sampling blmndeki Bounces deerini 2ye karalm (ekil-11). imdi sahnemizdeki objelerin renkleri birbiri zerine yansyarak daha fotogereki bir render sonucu alacaz. lk bakta bu zellik nemsiz grnebilir fakat karmak sahnelerde bu zellik kendisini gsterir. zellikle mimari
Color deerini 0,6 olarak deitirelim. Sahnemize top gr penceresinden bir adet Brazil light yerletirelim. Brazil lighta Create lights blmnn sekmesini Brazile getirerek ulaabilirsiniz. Brazil lightn targetn ortadaki krenin tam ortasna tayalm ve Brazil light da krelerin sa st tarafna tayalm.Brazil lightn glgelerini aktif hale getirelim. Sahnemiz Left panelinden ekil12deki gibi grnmeli. imdi bir deneme render alalm. Krelerin glgelerinin eitli tonlarla daldn grrz. Eer default render motorunu kullanyor olsaydk ya onlarca a ihtiyacmz olacakt yada glgelerimiz tam karanlk olacakt. Bu da istemediimiz bir sonu.
9
19 CHIP Workshop > >
>>
3D
10
11
zil Basic Material olarak deitirelim. Reflect zelliinin yanndaki siyah rengi gri olarak deitirelim. R:92 G:92 B:92 imdi Render Scene panelini tekrar aalm. Luma Server blmnden Sky Light alanndaki Use Environment Settings onay kutucuunu iaretleyelim. Bylelikle sahnemiz arka plana atadmz .hdr uzantl resimden alaca bilgilerle aydnlanacak. Eer deneme renderlar sonucunda karanlk veya fazla aydnlanm sonularla karlarsanz, bu durum .hdr uzantl resminizin ayarlarndan kaynaklanyor olabilir, Material Editorde resmin ayarlarn deitirerek doru sonuca ulaabilirsiniz. Her .hdr uzantl resim ayn deerlerle ayn sonucu veremez nk her .hdr uzantl resmin ierisindeki k deerleri farkldr.
17 imdi Luma Server blmnn Indirect Illumination alanndaki Sky Light onay kutusunu iaretleyelim. Bylece hdr uzantl res16
ve az nce drdmz Skylight Color deerini tekrar 1e ykseltelim. Material Editor aalm ve planei istediimiz ekilde dokulandralm. Rendering Environment mensnden .hdr uzantl bir resim ile bir environment map oluturalm. .hdr uzantl resimlerini maxe yklerken alan ayar penceresinde imdilik hibir deiiklik yapmayalm. Kameramz arkaplanda kullandmz resmi grmeyecek ekilde yukarya ve sahnemizin ortasna doru tayalm.
14 Material Editor aalm ve ilk kremizin dokusunu Standart butonuna tklayarak Brazil Chrome olarak deitirelim. Ortadaki kremizin dokusunu da Brazil glass olarak deitirelim. 15 En sondaki kremizin dokusunu ise Bra13