14.01.2015 Views

yönet‹m

yönet‹m

yönet‹m

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Liste 1. 3 boyutlu alanda bir koni oluflturulmas›<br />

setColor(new Image_3D_Color(255, 255, 255));<br />

// A blue light from the left<br />

$light1 = $world->createLight(-300, 0, -300);<br />

$light1->setColor(new Image_3D_Color(100, 100, 255));<br />

// A green light from the upper-right<br />

$light2 = $world->createLight(300, -300, -300);<br />

$light2->setColor(new Image_3D_Color(100, 255, 100));<br />

// Build the cone object<br />

$cone = $world->createObject('cone', array('detail' => 64));<br />

$cone->setColor(new Image_3D_Color(255, 255, 255));<br />

$cone->transform($world->createMatrix\<br />

('scale', array(70, 220, 70)));<br />

$cone->transform($world->createMatrix('rotation',<br />

array(-45, -120, -10)));<br />

$cone->transform($world->createMatrix\<br />

('move', array(-50, -30, 10)));<br />

// Render and save the 2-D image<br />

$world->createRenderer('perspectively');<br />

$world->createDriver('gd');<br />

$world->render(400, 400, 'object.png');<br />

><br />

Koniye üç dönüflüm uygulan›r. Önce,<br />

nesnenin ölçe¤i yükseltilir. Koni<br />

nesnesi, oluflturulurken boyutu atanmayan<br />

tek nesnedir. Temelde 1x1x1 boyutlar›nda<br />

bir alanda oluflturulur ve<br />

boyutlar›n›n yeniden belirlenmesi gerekir.<br />

Sonra, koniyi, ›fl›¤› iyi olarak yakalayabilmesi<br />

için döndürün. Bu, biraz<br />

deneme yan›lma sürecidir. Ard›ndan,<br />

koniyi tafl›yarak görüntünün ortas›na<br />

yerlefltirin.<br />

Komut dosyan›z›n son ad›m›, 3 boyutlu<br />

alan›n 2 boyutluya dönüfltürülmesidir.<br />

Örneklerin tümünde "perspectively"<br />

(perspektif olarak) dönüfltürme<br />

motoru kullanacaks›n›z (di¤er<br />

seçenek, "isometric"dir (eflit ölçekte)).<br />

PNG görüntüsünü oluflturacak<br />

olan gd ç›k›fl sürücüsü seçilir. Görüntünün<br />

boyutunu 400x400 piksel olarak<br />

seçin; görüntü, flu dosya ad› ile kaydedilecektir:<br />

object.png.<br />

Görüntüyü oluflturmak için, komut<br />

dosyas› komut sat›r›ndan çal›flt›r›lmal›-<br />

d›r:<br />

php -f build_cone.php<br />

Oluflturulan görüntü dosyas› afla¤›-<br />

da gösterildi¤i gibi görünmelidir:<br />

fiekil 2. Image_3D paketi kullan›larak<br />

oluflturulmufl 3 boyutlu koni<br />

Ayr›nt›lar›n denetlenmesi<br />

ve gerçekleme (rendering)<br />

süresi<br />

Verdi¤im örne¤in yeterince aç›klay›-<br />

c› oldu¤unu umar›m. Image_3D ile<br />

birlikte gönderilen di¤er yerleflik<br />

nesne tiplerini göstermek için birkaç<br />

ek örnekte de ayn› alan›, ›fl›kland›rmay›<br />

ve gerçeklemeyi kullanacaks›-<br />

n›z.<br />

Devam etmeden önce, ilk komut<br />

dosyan›zla ilgili belirtmemiz gereken<br />

iki nokta var. Koni nesnesini örnekle<br />

desteklerken, ikinci ba¤›ms›z<br />

de¤iflken olarak bir dizilimi [array('detail'<br />

=> 64)] geçirdiniz ; bu dizilim,<br />

koniyi oluflturmak için kullan›-<br />

lan çokgenlerin say›s›n› belirler. Bu<br />

çokgenlerin say›s›n›n az olmas›, görüntünün<br />

daha aç›l› olmas›na neden<br />

olurken, bu say›n›n yüksek olmas›<br />

görüntünün yüzeyini düzgünlefltirir<br />

(bkz. fiekil 3).<br />

fiekil 3. 3 boyutlu konilerde<br />

farkl› ayr›nt›<br />

düzeyleri. Gösterilen<br />

ayr›nt› düzeyleri 8,<br />

16, 32 ve 64'tür<br />

Ayr›nt› düzeyi yükseldikçe, Image_3D'nin<br />

görüntüyü oluflturmas› o<br />

kadar uzun sürer. Konilerin oluflturulmas›<br />

oldukça basittir, bu nedenle<br />

etkisi korkunç de¤ildir. Kürelere ve<br />

daha karmafl›k flekillere geçti¤inizde,<br />

gerçekleme h›z›n›n kolayca denetiminizden<br />

ç›kabilece¤ini göreceksiniz.<br />

Görüntünün nas›l oluflturuldu¤una<br />

iliflkin bilgi sa¤layacak olan Image_3D<br />

nesnesi için yerleflik bir istatistik<br />

yöntemi vard›r. Afla¤›daki sat›-<br />

r› bir önceki komut sat›r›n›n sonuna<br />

koyun.<br />

echo $world->stats();<br />

Komut dosyas› yeniden çal›flt›r›ld›¤›nda,<br />

Liste 2 içindeki ç›k›fl görüntülenmelidir.<br />

Liste 2. Koni nesnesinin oluflturulmas›<br />

için istatistikler<br />

Image 3D<br />

Objects: 1<br />

Lights: 2<br />

Polygons: 130<br />

Points: 67<br />

Bu basit ayr›nt›lar bir yana, komutlar›n›z<br />

daha ayr›nt›l› 3 boyutlu görüntüler<br />

oluflturdukça, komut dosyalar›n›-<br />

z›n yürütülme süresini ölçmek için PE-<br />

AR::Benchmark paketini kullanmay›<br />

düflünebilirsiniz (bkz Kaynaklar).<br />

Ifl›k kaynaklar› ve renk<br />

Renk ya da ›fl›k olmazsa, 3 boyutlu alan›n›zda<br />

nesneleri göremezsiniz. fiimdi<br />

HABER LINUX 53

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!