• Sonuç bulunamadı

Mobil Telefonlar için Kar¸sıla¸stırmalı Ölçüm Ya-

Sunucu veya masaüstü platformlarında oldu˘gu gibi mobil ortamlarda da geli¸stirilen yazılımların, kullanıcı gereksinimlerini eksiksiz kar¸sılamaları-nın yanı sıra; performanslı bir çözüm ortaya koymaları önemlidir. Geli¸s-tiriciler açısından örne˘gin; a˘gırlıklı olarak veri transferi yapılan bir mobil uygulamada a˘ga ba˘glanma ve birim zamandaki veri alıp-gönderme hızının ölçeklenebilmesi önem kazanırken, grafik a˘gırlıklı üç boyutlu mobil

oyun-5http://jcp.org/en/jsr/detail?id=239

larda ise kullanıcıya, detay yo˘gunla¸stıkça saniyede kaç adet sahne (’FPS’) gösterimi yapıldı˘gının bilinmesi önem kazanmaktadır.

Günümüzde en popüler kar¸sıla¸stırma yazılımlarından biri JBench-mark’dır. Bu ürün ’Kishonti Informatics’ adlı ¸sirket tarafından geli¸stiril-mektedir. Ürün kendi içerisinde barındırdı˘gı özel mobil uygulamalar ile,

• Kullanıcı deneyimi (Uygulama kullanı¸s ¸sekli)

• Gerçek Dünya uygulama performansı

• Yüksek ve dü¸sük seviye grafik performansı

• ˙I¸slemci ve mantık problemleri çözme performansı

• Genel sistem analizi

gibi genel ba¸slıklar altında mobil telefonunuzu sınayabilmenizi sa˘glamak-tadır.6

JBenchmark ürününün; M3G (JSR 184), OpenGL ES, JSR 239 gibi farklı üç boyutlu mobil grafik kütüphaneleri için özelle¸smi¸s sürümleri bu-lunmaktadır. Ayrıca mobil telefonun a˘g ba˘glantı hızını test eden JB Net, donanım seviyesinde üç boyutlu grafiklerin görüntülenme kalitesini test eden JBenchmark HD ve ARM i¸slemci özellik bilgileri ile çalı¸sma frekan-sını sunabilen JB ACE adlı farklı mobil uygulamalar da kullanılabilmekte-dir.7

Akademik Dünya’da ise mobil telefonlar için geli¸stirilmi¸s ilk kar¸sıla¸stırma ortamlarından biri GraalBench’dir. Geli¸stirilme a¸samasında

6http://www.jbenchmark.com/tools.jsp?benchmark=pro

7http://www.jbenchmark.com/download.jsp

OpenGL kütüphanesinde yapılan herhangi bir ça˘grıyı arka planda metin tabanlı tutup, izlenmesini sa˘glayan GLTrace8 harici uygulamasından fay-dalanılmı¸stır. Ancak GLTrace’deki metin tabanlı izlemenin yava¸slı˘gı, mo-bil platformlarda daha çok hissedilemo-bilece˘ginden, GraalBench geli¸stirici-leri, ikili (binary) veri formatında ça˘grıları izleyebilecek ¸sekilde GLTrace’e katkıda bulunarak uygulamalarında kullanmı¸slardır. GraalBench’de daha çok mobil uygulamalarda farklı miktardaki i¸s yüklerinin kar¸sıla¸stırılması deste˘ginin verilmesi dü¸sünülmü¸s ve buna yönelik olarak; görüntü çözünür-lü˘gü, saniyede gösterilen kare sayısı (FPS), ortalama üçgen sayısı, desen ölçüsü, maksimum üçgen sayısı gibi parametrelerin farklı de˘gerleri ile öl-çümleme yapılarak istatistiki sonuçların elde edilmesi yoluna gidilmi¸stir (Antochi et al., 2004).

4.3 3D Mobil API Tasarım Amaçları

M3G ve OpenGL ES gibi API’lerin ortaya çıkarılmasındaki ana amaç, gra-fiksel etki yaratacak donanım olmasa ve ondalıklı sayı aritmeti˘gine izin verilmese de, masaüstü makinalarda elde edilen etkilere yakın, verimli ça-lı¸san ve görsel yönden tatmin edici sonuçlar sunabilen kütüphaneler geli¸s-tirmektir (Mahmoud, 2004).

Bunlar ¸söyle toparlanabilir:

• Performans

• Alt seviyedeki motorda olabildi˘gince basit çözümlerin kullanımı

• Uygulama büyüklü˘günün minimum tutulması

8http://www.hawksoft.com/gltrace/

• Donanım deste˘gi

• Uyumlandırmanın kolay olması

• Üretkenlik

• Özelliklerin sürekli geli¸sebilmesi

• Esnek tasarım

• Grafiksel etkilerin verilmesinde i¸s bölümlendirmenin azaltılması

Pratikte, OpenGL ES ortak profili alt seviyede dönü¸süm, ı¸sıklandırma ve görselle¸stirilmenin sunulmasını M3G için sa˘glarken; M3G, sahne çizgesi ve animasyon kullanımını bunun üzerine eklemektedir. Ancak, M3G üze-rinde sunulan ani parlama, patlama efekti kullanımını sa˘glayan ’Sprite’ ile arka plan görüntüsünü olu¸sturan ’Background’ sınıfları gibi bazı grafik-sel etkilerin OpenGL ES tarafında direk kar¸sılı˘gı bulunmayabilmektedir.

Bu yakla¸sım, API içerisindeki yazılımda bunlara kar¸sılık gelen optimize edilmi¸s sonuçların yer alınarak, grafiksel donanım tarafından onun anla-yaca˘gı ¸sekilde (’Quadrilateral’ – Üzeri desen kaplanmı¸s dörtgenlerin kul-lanımı) dönü¸sümü yapıldıktan sonra görüntülenebilmesini sa˘glamaktadır.

OpenGL ES saf kod düzeyinde (C/C++) performans ve esnekli˘gi sunarken, M3G etkin çalı¸sması gereken Java uygulamalarında grafiksel özelliklerin arttırılmasını sa˘glamaktadır.

4.4 Neden 3 Boyutlu Grafik? Ondalıklı Artimeti˘gin Gücü!

Modern 3 boyutlu grafik programlama ondalıklı sayı (’float point’) aritme-ti˘gi üzerine kurulmu¸stur. Uygulamalar, ara katman olarak tasarlanmı¸s ya-pılar ve nokta kümeleri yüksek seviye diller kullanılana kadar bu aritme-ti˘gin üzerinde tasarlanırken, günümüzde grafiksel sahne bilgileri ve renk düzeyinde dahi ondalıklı sayı aritmeti˘ginin kullanımı desteklenmektedir.

Ondalıklı sayı gösteriminin tercih edilmesinin en büyük sebebi di-namik olarak yüksek hassasiyet derecesindeki de˘gi¸sikliklere duyarlı olma-sıdır. Kesinlik tam olarak belirlenemeyen bir unsurdur ancak tam sayılar kendi sistemlerinde daha kesin sonuçlar verseler de; zaman zaman a¸sa˘gı ve yukarı yuvarlamaların yapılması nedeniyle yeterli sonuca ula¸sılmasını sa˘glayamamaktadırlar. Tamsayı sistemi, maalesef 3 boyutlu grafiksel he-saplamalar için yeterli sınırlara sahip de˘gildir. En iyi ihtimalle yuvarlama-nın yapıldı˘gı bir alanda görsel yönden küçük bir kayıp ya¸sanırken, tama-men kesilmi¸s ve birbirine geçmi¸s bir sahne elde edilebilece˘gi de en kötü sonuç olarak zihnimizde tutulmalıdır.

Günümüzdeki mobil cihazlarda en büyük problem, onların dona-nım düzeyinde ondalıklı sayı aritmeti˘gi deste˘gi vermeyi¸sleridir. Bir mo-bil grafik uygulaması geli¸stirmeden önce, hızlı görüntüleme imkanı sunan tamsayıların kullanımı ile grafiksel ö˘gelerin daha kolay ve kesin elde edil-melerini etkinlikten az da olsa feragat ederek sa˘glayan ondalıklı

aritmeti-˘gin kullanımı arasında seçim yapabilmek çok önemlidir.

OpenGL ES bu sorunu 16.16 tipinde (16 tam, 16 virgülden sonra

olacak ¸sekilde) kendine özgü bir ondalıklı sayı türü kullanarak çözmek-tedir. Parametre olarak verilen tüm tipleri ondalıklı tipe çevirerek, ilk 16 bitin i¸saretli olmak üzere 2’nin kuvvetleri ¸seklinde tam kısmı ve noktadan sonraki 16 bitin de ondalıklı kısmı tutaca˘gı ¸sekilde düzenleme yapmakta-dır. Benzer ¸sekilde, OpenGL tarafında nokta kümeleri üzerinden yapılan dönü¸süm i¸slemlerinde de ondalıklı aritmeti˘gin kullanımı zorlandı˘gından, elde edilen sonuçlarda herhangi bir ta¸sma veya yuvarlama söz konusu ol-mamaktadır.

M3G ise nokta dizileri hariç tüm i¸slemlerde girdi ve çıktı olarak ondalıklı sayıları kullanmaktadır. Nokta dizilerinde tamsayılar tutulurken;

bunların, ondalıklı aritmeti˘ge uygun olarak bire bir dönü¸sümü, ölçeklen-dirme katsayıları ve model – görünüm matrislerinin kullanımı ile yapıl-maktadır. Bu yakla¸sım esas alınırken hata payının en çok nokta dönü¸süm i¸slemlerinde oldu˘gu dü¸sünülerek, yuvarlanan tam de˘gere yakın de˘gerlerin ondalıklı aritmetik ile dönü¸süm i¸slemlerinde kullanımı sa˘glanmı¸s, böylece olabildi˘gince etkin çalı¸san ve görsel yönden do˘gru sonuç veren grafiksel ö˘gelerin elde edilmesi sa˘glanmı¸stır. Java’da üretken yapıların elde edilmesi için bu tip performans arttırıcı etkenleri kullanmak çok önemlidir. Java ile geli¸stirilen Midlet’lerin daha yaygın bir ¸sekilde kullanılaca˘gı

dü¸sünüldü-˘günde, bunların çalı¸sma hızı bakımından C/C++ uygulamalarından çok da geri kalmamaları gerekmektedir.

4.5 Di˘ger Mobil Grafik Teknolojileri ve Yapılan

Benzer Belgeler