You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
de, yaratt›¤›n›z nesneleri görmemize<br />
olanak sa¤layan bu iki önemli ö¤eyi inceleyelim.<br />
Ifl›klar›n aç›lmas›<br />
Yukar›daki örnekteki koninin rengini<br />
k›rm›z›ya (255, 0, 0) ayarlayacak ve<br />
iki ›fl›k kayna¤›n› kald›racak olsayd›n›z,<br />
sonuçta ortaya ç›kan görüntü, beyaz<br />
artalanda siyah bir koni gösterirdi.<br />
Üzerinde bir ›fl›k kayna¤› parlamad›kça,<br />
koninin k›rm›z› yüzeyi ortaya ç›kmaz.<br />
Bu sorunu, en az bir adet ›fl›k kayna¤›<br />
ekleyerek çözebilirsiniz. Ifl›¤›n<br />
rengini en ortaya ç›karan beyaz ›fl›kt›r,<br />
bu nedenle ›fl›¤›n beyaz olmas› en uygunudur.<br />
Tek bir ›fl›k kayna¤›, alan›n›zdaki<br />
nesnenin ya da nesnelerin yaln›zca tek<br />
bir yan›n› ayd›nlatacakt›r. Karfl› tarafa<br />
baflka bir ›fl›k kayna¤› eklemeniz nesneleri<br />
daha da görünür k›lar. ‹ki beyaz<br />
›fl›k kullan›rsan›z, bunlar nesneye pek<br />
bir kiflilik katmaz, çünkü karfl›t aç›lar<br />
yaln›zca nesnenin renginin de¤iflik<br />
tonlar›n› yans›t›r.<br />
Önceden de tart›fl›ld›¤› gibi, bunun<br />
yerine, bu örneklerde beyaz renkli<br />
nesneler oluflturup onlar› renkli ›fl›klarla<br />
ayd›nlatacaks›n›z. Bu, her bir nesnenin<br />
özelliklerini ortaya ç›kacak olan<br />
daha çok ton ve renk özünün kullan›lmas›na<br />
olanak tan›r.<br />
Renklerin denetlenmesi<br />
Yukar›daki örnekte, Image_3D_Color<br />
s›n›f› kullanarak koni nesnesinin rengini<br />
belirlediniz. Yap›c›n›n ilk üç parametresi,<br />
istenen rengin RGB de¤erleridir.<br />
Burada gösterilmeyen dördüncü<br />
parametre ise, alpha transparency parametresidir.<br />
Komut dosyan›za 150<br />
de¤erini ekledi¤inizde, k›smen fleffaf<br />
bir koni oluflturursunuz.<br />
$cone->setColor(new Image_3D_<br />
Color(255, 255, 255, 150));<br />
fiekil 4 içinde, fleffafl›¤›n koni üzerindeki<br />
etkisi gösterilir.<br />
Küpler<br />
Koniler gibi, küplerin de yarat›lmas›<br />
kolayd›r. Küp oluflturmak için yaln›zca<br />
birkaç çokgen gereklidir, üstelik, bofiekil<br />
4. Üst üste<br />
yerlefltirilmifl iki adet<br />
3 boyutlu koni<br />
nesnesi, her ikisinde<br />
de 150 de¤erinde<br />
alfa fleffafl›k<br />
uygulanm›flt›r.<br />
Liste 3. 3 boyutlu nesnelere metal görüntüsünün uygulanmas›<br />
require_once('Image/3D/Color/Metal.php');<br />
$cone = $world->createObject('cone', array('detail' => 64));<br />
$metal = new Image_3D_Color_Metal (255,255,255);<br />
$metal->setMetal(1.25);<br />
$cone->setColor($metal);<br />
Krom görüntüsü verin<br />
RGB renklerine uygulanabilen bir etki<br />
daha vard›r: krom görüntüsü! Koninin<br />
rengi olarak standart Image_3D_Color<br />
nesnesini sa¤lamak yerine, yeni bir<br />
Image_3D_Color_Metal nesnesi oluflturun<br />
(Image/3D/Color/Metal.php'yi<br />
eklemeyi unutmay›n, di¤er s›n›flar gibi<br />
Image/3D.php taraf›ndan eklenmez).<br />
Bkz. Liste 3.<br />
setMetal() yöntemi, parametre olarak<br />
de¤ifliklik gösterir. Biraz deneyim<br />
kazan›ld›¤›nda, 0.5 ve 2.0 aras›ndaki<br />
de¤erlerin en iyi etkiyi ortaya ç›kard›¤›<br />
görülür. 2.0 üzerindeki bir de¤er, görüntünün<br />
tamamen parlamas›na neden<br />
olur. Koninin renk ve ›fl›¤›n›n nas›l etkilendi¤ini<br />
görmek için bu de¤erle oynayabilirsiniz.<br />
Nesnelerin ve flekillerin<br />
de¤ifltirilmesi<br />
Daha önce Adobe Photoshop program›ndaki<br />
dönüfltürme arac›n› kulland›ysan›z,<br />
büyük olas›l›kla onun tafl›ma, ölçekleme,<br />
döndürme, çevirme ve çarp›tma<br />
ö¤elerine al›fl›ks›n›zd›r. 3 boyutlu<br />
nesnelerin ve alanlar›n transform<br />
yöntemi, bu arac›nkine benzer.<br />
Dönüfltürme matrisleri<br />
Bu terim sizi korkutmas›n. Pratikte,<br />
dönüfltürme matrisi, asl›nda yaln›zca<br />
bir nesnenin tafl›nmas›n›, ölçeklenmesini<br />
ya da döndürülmesini sa¤layan bir<br />
denetimdir. Bu, ilk olarak Image_3D_Matrix<br />
yarat›p sonra onu bir<br />
transform() yöntemine geçirerek elde<br />
edilir. Sonuçta, bu pek de zor de¤ildir.<br />
Afla¤›da üç örnek verilmifltir (her<br />
bir matrisin ikinci parametre olarak üç<br />
de¤erli bir dizilim ald›¤›na dikkat edin):<br />
$obj->transform($world->createMatrix\<br />
('move', array(-50, -30, 10)));<br />
$obj->transform($world->createMatrix\<br />
('scale', array(70, 220, 70)));<br />
$obj->transform($world->createMatrix\<br />
('rotation', array(45, 0, 0)));<br />
'Move' (Tafl›) matrisinin dizilim de-<br />
¤erleri, X, Y ve Z eksenlerindeki hareketi<br />
belirtir. 'Scale' (Ölçeklendir) matrisine<br />
uygulanan de¤erler, ayn› üç eksen<br />
boyunca ölçekleme derecesini belirtir.<br />
'Rotation' (Döndürme) matrisine<br />
iliflkin de¤erler, her bir eksende 0 -<br />
360 dereceler aras›ndaki döndürme<br />
miktar›n› belirtir. fiekil 5 içinde nesnenin<br />
hangi yöne döndürüldü¤ü gösterilir<br />
(ters yöne döndürmek için eksi de¤erleri<br />
uygulayabilirsiniz).<br />
Dönüfltürmeler nerede ve<br />
fiekil 5. X, Y ve Z<br />
eksenlerinde<br />
döndürme yönleri.<br />
ne zaman uygulan›r<br />
Bu dönüfltürmelerin her biri tek bir nesneye<br />
ya da 3 boyutlu alan›n bütününe<br />
uygulanabilir. Yaratt›¤›n›z ilk örnek görüntünün<br />
alan›nda, bir koninin nas›l<br />
döndürülebilece¤ini, ölçeklendirilebilece¤ini<br />
ve tafl›nabilece¤ini gördünüz. Dönüfltürme<br />
ifllemini koni yerine $world<br />
nesnesine uygulam›fl olsayd›n›z, 3 boyutlu<br />
alandaki herfleyi etkilerdi; alandaki<br />
tüm nesneler ve ›fl›klar, büyük bir<br />
boflluk olarak, bütünüyle etkilenirdi.<br />
Dönüfltürmeler, belirtilen s›rayla<br />
her bir nesneye uygulan›r. Bu size aç›k<br />
gibi görünebilir, ancak önce, nesnelere<br />
birer birer ve sonra da alan›n bütününe<br />
olmak üzere birden çok dönüfltürme<br />
uyguluyorsan›z, dönüfltürmelerinizi<br />
eklerken s›raya dikkat etmedi¤inizde<br />
beklemedi¤iniz sonuçlarla karfl›laflabilirsiniz.<br />
Ek nesneler<br />
Koninizin ›fl›kland›r›lmas›, renklendirilmesi<br />
ve konumland›r›lmas›na iliflkin<br />
pek çok ayr›nt›y› tamamlad›n›z. fiimdi<br />
de Image_3D'de baflka hangi tip nesnelerin<br />
yarat›labilece¤ine dönelim.<br />
54 HABER LINUX