Thread overview
Grafik İşleme ve Ekrana Yansıtma
Dec 08, 2012
Salih Dinçer
Dec 08, 2012
Salih Dinçer
Dec 10, 2012
Salih Dinçer
December 08, 2012

Merhaba,

Belki bu tartışma konusu SDL'ye yakışırdı. Çünkü elde edeceğim sonuçları bu kütüphanede uygulamaya çalışacağım. Ancak herhangi bir ortamdaki geliştirmeleri de ilgilendireceğinden, bir mahsuru yok zannedersem...:)

Önce kısa bir soru:

Gelişmiş bir GUI'de (hareketli bir zemin, şeffaf pencere altları ve sürekli akan/yansıtılan veri) ekrana yansıtılmadan önce nihai haline getirilmesi mantıklı mı?

Yani demek istediğim ekrandaki (tabii ki uygulama penceresini kast ediyorum) görüntünün herhangi bir beneği (pixel) herhangi bir zamanda değişebilir. Bu klavyeden girilen harflerin yansımasıyla da olabilir, rutin olarak gerçekleşen bir animasyonun akması ile de. Her şey belli bir sırada olacağından bir görüntünün şeffaf veya %100 başka bir görüntü üzerine binmesi sorun teşkil etmiyor.

Ama peki hız?

İşte tıpkı işletim sistemlerinin grafik sunucusu gibi olayları nihai açıdan değerlendirmek gerekir diye düşünüyorum. Tıpkı Google Maps'de gezindiğimiz sırada haritanın tüm katmanları bir JPG resmi olarak bilgisayarımıza indirilmesi gibi.

Katkılarınızı bekliyorum...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 08, 2012

Tutukluk konusunda değinmen çok hoş çünkü işin temeli bu. Yani uygulama geliştikçe gecikme süreleri artıyor ve biz o tarafa doğru git gide yaklaşıyoruz. İşte bunun olmaması için başlangıçta önlemler alınması taraftarıyım...

Haklısın, ben sorunu doğru bir şekilde anlatamamış olabilirim. Ama belki Google Maps'de ısrar edersem telafisi mümkün...:)

Düşünün, uydular tarafından çekilen görüntü üzerine yol çizgileri ve metinler işleniyor. Bu veriler bizim bilgisayarımıza gelmeden evvel JPG biçiminde sunucuda resim haline getiriliyor. Aslında orada yine birden fazla ayrı katman var. Yani yarı karma (composite) bir düzen. Çünkü bir de gizlenen fotoğrafsız harita var ve HTML'de üst üste bindirilmiş. Hangisini görmek isterseni açıyorsunuz.

İşte bu karma görüntü de tıpkı diğer bileşenler gibi ayrı katmanlar halinde kullanıcı tarafında görüntülenebilirdi. Başka sebeplerden bu tercih edilmemiş olabilir. Ama aynı şekilde bir GUI uygulamasında da nihai görüntü, ekrana karma olarak verilebilir.

Verilmeyebilir de...

Örneğin beyaz bir metin kutusu (textbox) düşünün. Her tuşa bastığınızda imleçin kaldığı yere ilgili harfi yazabilir. Sanki bu yazı yazma uygulaması için en hızlı çözüm gibi görünse de işin içine başka olaylar girdiğinde içinden çıkılmaz bir yavaşlık olacağını düşünmekteyim.

Bilmiyorum derdimi anlatabildin mi?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 08, 2012

Ben soruyu yine anlamadım. :( Ekrana yansıtıldığında tabii ki nihai halinde olmalı, değil mi?

Eğer "ekran hızla kayarken daha bulanık ve az hassaslıkta mı gösterilsin" diye soruyorsan, evet, insanla etkileşen makinelerin insanın hareketlerine hemen cevap verebilmesi için kaliteden ödün vermeleri önerilir, hatta bazı durumlarda şarttır. İnsanın "herhalde tıklanmadı" sanması için geçen süre 10 mili saniyedir. O sürede bir karşılık gelmesi şarttır. Yoksa o aletin tutukluk yaptığı düşünülür.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 08, 2012

Bu çok önemli bir konu. Her gün bir çok kere tıklayıp tıklamadığımdan emin olamadığım durumlara düşüyorum. Aynı durum evdeki televizyona bağlı bir alette de var. Düğmeye basıyorum ama bir süre hiçbir şey olmuyor. Basamadım sanıyorum, tekrar basıyorum. İki kere mi algılıyor, ne oluyor? vs.

Bu konuda şanslı insanlardan sayılırım çünkü bu konu için savaş veren Jeff Johnson'ın iki konuşmasını dinledim. "GUI Bloopers" ve "Web Bloopers" kitaplarıyla ilgiliydi. Ürünlerden beklenenler listelerinde hep o ürünlerin olanaklarının yer aldıklarını ama ürünün kullanıcıya ne çabuklukta karşılık vermesi gerektiğinin hiç geçmediğinden şikayet eder. On mili saniye miktarını ondan öğrenmiştim.

Bu işi doğru yapan ürünler de var. Örneğin bir PDF okuyucu programın sayfalar hızlı geçildiğinde hiç uğraşmadan boş sayfa göstermeye karar verdiğini ve ancak kullanıcı durduğunda sayfayı çizmeye başladığını söylüyordu.

Benim genel olarak grafik arayüzlerle (veya işletim sistemleriyle) de sorunum var. :) Hiçbirisi kullanıcının kral olduğunu kabul etmiyor. Bazen bilgisayar çok meşgul oluyor ve ben pencerelerle etkileşemiyorum. Ne olursa olsun, ne kadar meşgul olursa olsun, ben tıklamışsam anında bir karşılık görmek isterim. Tabii ki istediğim işi yapamayabilir ama o düğme "tıklandı" durumuna hemen anında geçmeli. Bunları siz de yaşıyorsunuzdur... :) Belki ancak real time işletim sistemleri bunu başarabilirler. Neyse...

Google Maps de bunu doğru yapmaya çalışıyor aslında. Haritada yaklaştığım an elindeki görüntüyü hemen büyütüyor (sanırım tarayıcı tarafında) ve ancak ondan sonra sunucudan yeni görüntü gelince görüntüyü düzeltiyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 10, 2012

Belki bu aşamada Zafer'in çok sevdiği Wayland (http://en.wikipedia.org/wiki/Wayland_(display_server_protocol))'dı hatırlamamak olmaz...:)

Bilgisayarlar, her şeyi muntazaman yapma kabiliyetinde oldukları için, çok meşgul olsalar da (eğer aksi belirtilmezse) kendilerinden istenenleri gerçekleştirme gayretini gösteriyorlar. Hal böyle olunca yavaş bir bilgisayar kullanıcıların isteklerini tam karşılayamıyor.

Yavaş dediğime bakmayın!

2013 yılına giriyoruz, ekranın tıkladığımız bölümünün hala bize tepki vermesini bekliyoruz!

Bu belki bir yazılımsal sorun, belki arka planda aşırı program açtığımızdan kaynaklanıyor; ne olursa olsun işlemci gücünün eski kıyasla kat ve kat artması mazaretleri ortadan kaldırıyor. Düşünsenize, 1992 yılında da Excel ve Photoshop vardı; biz onlarla veri ve resim işlerdik, şimdi de işliyoruz. Tabii ki işlenen verinin boyutu arttı ama süslü öğelerin sayısı da abartılıyor. Herhalde eski Photoshop'daki bazı temel kısıtlamaları (max. file size) düzenleyip günümüz işlemcilerinde çalıştırsak, belki açılışı da işlemesi de ışık hızında olurdu...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]