Forum: Diğer Konular RSS
Yerli (Native) Kullanıcı Arayüzünün OpenGL / OpenGL ES'den Daha İyi Olması İddiası
İbrahim #1
Üye Eki 2015 tarihinden beri · 162 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Yerli (Native) Kullanıcı Arayüzünün OpenGL / OpenGL ES'den Daha İyi Olması İddiası
Selamün Aleyküm;

Genellikle insanlar işletim sisteminin yerli (native) kullanıcı arayüzünün (UI) OpenGL veya OpenGL ES ile geliştirilmiş çapraz platform kullanıcı arayüzlerinden daha iyi olduğunu ve daha hızlı olduğunu iddaa ederler. Fakat bunun gerçek olup olmadığını bilmediğim için iddaa demek zorunda kaldım. Mesela Windows'da geliştiriciler her zaman Win API'deki yerli kullanıcı arayüzünün her zaman daha iyi ve hızlı olacağını söylerler ama programlaması diğer araçlara göre daha zor olması sebebiyle ve gelişmiş donanımlar sebebiyle Qt, Gtk+, WPF vs. başka arayüzler kullanırlar. Diğer bir örnek olarak da Android'in yerli kullanıcı arayüzünün ve iOS'in yerli arayüzünün (ki iOS yerli arayüzü Cocoa Touch ile geliştirilmiş) OpenGL ES ile geliştirilmiş diğer kullanıcı arayüzlerinden daha iyi olduğunu savunurlar.

Böyle olmasının sebebi sizce nedir? Gerçekten de yerli UI çok daha mı kullanışlı oluyor? Eğer öyleyse çapraz platform olan OpenGL / ES veya başka birşeyle geliştirimiş kullanıcı arayüzleri neden daha iyi olamıyor? Yerli kullanıcı arayüzü neden daha iyi oluyor? Her zaman daha iyi geliştirilmesinden mi, yoksa sadece işletim sisteminin resmi kullanıcı arayüzü diye mi?

Teşekkürler.
kerdemdemir #2
Üye Eyl 2013 tarihinden beri · 123 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ibrahim merhaba,

Ekmegini GL den kazanan biri olarak cevaplamaya calisayim.

OpenGL'in arayuzu bence son derece guzel.  Ama soz konusu arayuzden dahada ote GL"in ne icin tasarladigi. GL GPU kullanimi icin ozellistirilmistir. GL arayuzu tabi daha karisiktir cunku GL in yaptigi is bir piksel yakma isi degildir. GL"in arkasinda buyuk bir grafik pipeline'i denen mekanizma vardi(Ornegin 6 kere clipping uygulanilir). GL bu pipeline'in icinde bir cok algoritmalar icerir(clipping, kamera transformlari, shading, stensil bufferlari, aydinlatma, golgeler, kesisim ) ve bir cok algoritma. Bu algoritmalar 1960'dan beri universite makeleleri ile olusmus 1980-1990 larda artik dogruluna karar verilmis ve gl'in olusmasi ile sonuclanmistir. Bu neden GL'in arayuzu fonksiyonlara bakarak degil kitaplar okuyarak anlasilir cunku GL' i anlamak programlamadan daha cok bilgisayar grafiklerini anlamaktir.

Saygilarimla
Erdem
İbrahim #3
Üye Eki 2015 tarihinden beri · 162 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Cevabınız için teşekkürler kerdemdemir. OpenGL'in oyun geliştirmede de kullanıldığını biliyorum ama  oyun geliştiricileri tavsiye etmiyordu. OpenGL hakkında bilgim sınırlı.  Acaba OpenGL'i Vulkan, DirectX ve Cocoa'dan ayıran özellikler nelerdir? Ben oyun geliştirme değil de masaüstü ve gömülü sistemler (mesela mobil) için gui ve gui animasyonları yapmayı merak ediyorum. Mesela OpenGL'de Android'de ve iOS 8+'de olan widget isimli, pencereden bağımsız gui'leri platform bağımsız oluşturabilir miyiz?
Kullanıcı arayüzleri tasarlamak için OpenGL'den başka araçlar var mı?
Son olarak da OpenGL ve OpenGL ES hakkında Türkçe / İngilizce başlangıç ve ileri düzey kaynaklar nelerdir? Teşekkürler.
kerdemdemir #4
Üye Eyl 2013 tarihinden beri · 123 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ben daha cok soru sormaya alisigim ama umarim cevaplarim yardimci oluyordur.

Evet oyun gelistirmek icin gl kullanmamani oneririm. GL ornegin "golge", "yansima", "kamera" gibi seyleri direk implemente etmez bunun sebebi bunlari implemente etmek icin birden fazla method olmasi ve kullaniciya birakmaktir. Ornegin isik kaynagin gunes gibi noktasal olabiilir , fener gibi alansal olablir veya bir lamba gibi her tarafi esit sayilacak sekilde olabilir. Bunlarin hepsini guzel bir sekilde secebliecek ve istedigin gibi manipule edecek sekilde design edilmistir.

Sadece isik secimi bile basli basina bir konudur("shading", diffuse, spacular gibi matematiksel formullerle cozulur) .Bunlarla oyun gelistiriciler ugrasmak istemez istese bile o zaman oyunu gelistiremez. Bunun icin oyun motorlari gelistirilmistir. Cocoa'da bu oyun motorlarindan biridir. Normal golgeleri implemente etmek icin pipeline'i cok iyi bilmen ve stencil buffer veya shadow map algoritmasi filan bilmen gerekir(bunlari anlamak icinde cok iyi linear cebir ve geometry bilgisi gerektirir). Ama oyun motoru kullanarak kitaplari okumaktan ve bir suru algoritma impelemente etmekten kurtulursun. Ve oyununa odaklanabilirsin.

DirectX microsoft bu grafik konseplerini implemente ettigi OpenGL'le ayni seyi hedefleyen kutuphanesidir. DirectX hic kullanmadim ama kullanan arkadaslarim vardi cok begeniyorlardi.

Yerli arayuzlerden arkadaslarin ifade ettigi seyler bence OpenGL sarmalayan yuksek seyive kutuphaneler. Daha yuksek seviye olduklari icin kullanimlari daha kolay. Boylece algoritmalari kendin implemente etmek zorunda kalmiyorsun ve bir suru kitap okumak zorunda kalmiyorsun.

Ne yazikki Turkce kitap bilmiyorum guzel. Ingilizce "[Eric_Lengyel]_Mathematics_for_3D_Game_Programming" kitabini cok oneririm.
kitabini oneririm.

Saygilar
Erdemdem
Bu mesaj kerdemdemir tarafından değiştirildi; zaman: 2017-08-07, 06:42.
İbrahim #5
Üye Eki 2015 tarihinden beri · 162 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Teşekkürler, lakin bir üst iletimde dediğim gibi ben oyun veya oyun motoru geliştirmekle uğraşmıyorum. OpenGL'i sadece kullanıcı arayüzleri ve bu arayüzlere animasyonlar oluşturmak için kullanmak istiyordum. Misal bir GTK, Qt UI FLTK vs. oluşturmak için OpenGL yeterli mi? Bunun için bir kaynak var mı? Bir de OpenGL ile şu şekilde pencereden bağımsız olan arayüzleri (yani Android'de ve iOS'de Widget diye geçiyor) işletim sisteminden bağımsız olarak yapmak mümkün müdür? :

Windows için Widget:

[Resim: http://www.windows10turk.com/wp-content/uploads/2016/06/bring-desktop-gadgets-windows-10.w654.jpg]

Linux için Widget:
[Resim: http://lh4.ggpht.com/_FJH0hYZmVtc/SreYAiom0DI/AAAAAAAADIA/60unvLKpPUw/screenshot_010_thumb%5B2%5D.png?imgmax=800]

Android için Widget:
[Resim: http://i-cdn.phonearena.com/images/articles/135589-image/Beautiful-Widgets-Free.jpg]

iOS için Widget:
[Resim: http://cdn.ihelplounge.com/wp-content/uploads/2014/06/ios-8-concept-ios-block-widget-1.jpg]

Yani bu tür şeyleri OpenGL kullanarak sistem bağımsız olarak yapmak istiyorum.
kerdemdemir #6
Üye Eyl 2013 tarihinden beri · 123 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
GL uygulama programlama icin kullanilmaz. Sana direk button, radio box, pencere verecek fonksiyonlari yoktur,  Opengl daha genis kullanimlar icindir sadece uygulama programlamaya ozellestirilmemistir. Evet GTK, Qt, FLTK altta GL kullanirlar. Ama buttonlarini filan kendileri tasarlarlar. Tasarim  blender, maya gibi programlarda yapilir veya biraz sanatsal beceri gerektirir yani bambaska bir konudur.
O yuzden arkadaslarininda onerdigi gibi bu gibi konular icin GL kullanmamani oneririm. Application gelistirmek icin Qt quick,QML filan tavsiye ederim, Guzel animasyonlari filanda var sanki.
İbrahim #7
Üye Eki 2015 tarihinden beri · 162 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Qt'u kullanıyorum zaten. Lakin benim yapmak istediğim bu tür kütüphanelerden falan buton, textbox vs. almak değil de GTK gibi bir GUI  aracı oluşturmak. Fakat bu araç mobil sistemler için olacak. Anlattıklarınıza göre OpenGL ile bunu yapabilirim. Umarım OpenGL ile dediğim widget sistemini de yapabilirim.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-12-16, 10:53:54 (UTC -08:00)