Saya mulai belajar OpenGL dengan FreeGLUT menggunakan Superbible dan pengetahuan yang saya miliki dari grafik dasar untuk meningkatkan keterampilan saya.
Untuk mendapatkan lebih banyak dari pengalaman ini saya ingin mengintegrasikan GUI untuk menimpa yang digunakan FreeGLUT, sekarang pertanyaan saya adalah ini: apakah hal ini mungkin dan perpustakaan apa yang harus saya gunakan?
Beberapa karakteristik untuk perpustakaan:
- Sumber terbuka
- Multi-platform (Linux dan Windows)
- C / C ++
Jika Anda memiliki rekomendasi lain, silakan kirimkan bersama dengan jawaban Anda untuk masalah saya.
opengl
c++
gui
cross-platform
Cristina
sumber
sumber
Jawaban:
Saya belum mencobanya sendiri, tetapi ini terlihat sangat menarik:
librocket
EDIT: Karena Anda akan memerlukan konteks untuk di-render, saya akan merekomendasikan SFML atau SDL 1.3.
sumber
GUI Crazy Eddie (CEGUI) sangat populer, dan Anda dapat menggunakan salah satu backend renderer yang ada atau menulis sendiri penargetan Anda apa pun API yang didukung OpenGL yang Anda inginkan. Ini adalah open source, multi-platform, dan C ++. Namun, itu menghargai konsistensi, yang tidak selalu merupakan prinsip UI yang baik untuk gim, yang mungkin memiliki lusinan kontrol khusus yang digunakan tepat di satu tempat.
Pola populer saat ini adalah mode langsung GUI (IMGUI) , yang merupakan semacam "tidak ada perpustakaan GUI". Ini memiliki kelebihan dan kekurangan - sangat mudah, tetapi bisa sulit untuk dioptimalkan, dan saya belum melihat model IMGUI yang sangat bagus untuk kontrol canggih seperti kotak kombo atau tampilan pohon. Saya juga tidak melihat implementasi yang baik dari sistem windowing IMGUI (dan saya meluangkan waktu untuk mencoba menulisnya, yang tidak pernah saya sukai) - ini sangat baik untuk elemen HUD sederhana, dan mudah untuk melakukan kontrol satu kali.
sumber
Saya baru-baru ini menemukan Gwen . Ini adalah perpustakaan GUI yang ditulis oleh penulis Gary's Mod. Ini dilisensikan sebagai MIT sebagai pustaka game yang bagus.
Perpustakaan memiliki beberapa hal untuk itu.
Gwen, telah dikembangkan selama beberapa tahun dan ini menunjukkan.
Ini adalah yang besar. Perpustakaan dilengkapi dengan perender OpenGL yang dibangun kembali. Tetapi membuat renderer cukup sederhana sehingga Anda mungkin ingin membuat renderer khusus untuk sistem render game Anda.
Gwen tampaknya berada di sisi yang lebih ringan dari GUI game. Tidak ada XML, tidak ada renderer HTML, hanya C ++ sederhana. Gwen juga tidak mengirim dengan pemuat gambar. Ia mengharapkan backend renderer untuk menangani pemuatan. Saya suka fitur ini karena menjaga perpustakaan tetap kecil dan sistem render permainan saya sudah mengelola tekstur.
Bukan hal pertama dalam tonggak Anda tetapi akhirnya Anda harus menyesuaikan GUI Anda dengan gim Anda.
Saya bukan pengembang web dan menemukan hUI css centric GUI sulit.
Ini besar untuk gim. Selalu merepotkan untuk menggunakan sistem GUI yang ingin memiliki polling input.
Perpustakaan berusaha untuk menjadi lintas platform tetapi mereka mengakui bahwa Anda mungkin menemukan masalah pada platform yang kurang digunakan.
Lebih jauh, ini lebih kecil dari CEGUI atau MyGUI sehingga meretasnya atau mengirimkan tambalan jauh lebih praktis.
Namun, berikut adalah kekurangannya:
sumber
Maaf atas jawaban yang terlambat, tetapi Anda mungkin ingin melihat kerangka kerja OpenGL UI yang disebut GG . GG dikembangkan sebagai bagian dari proyek FreeOrion dan termasuk dalam repositori SVN mereka (dan SDK yang dapat diunduh). Tampaknya cukup mampu. Saya telah menyertakan tangkapan layar di bawah ini; Anda dapat mengklik gambar untuk melihat versi lengkap.
sumber
MyGUI adalah solusi yang agak bagus untuk DirectX dan OpenGL.
sumber
Lihat AntTweakBar , sedang digunakan oleh Cinder . Ada juga perpustakaan GUI baru yang dikembangkan untuk Cinder dalam karya-karya: SimpleGUI .
Jika Anda ingin menggunakan HTML + CSS ada Awesomium (digunakan oleh Wolfire Games dalam permainan Overgrowth mereka ) dan alternatif gratis yang disebut Berkelium .
sumber
Saya telah mengutak-atik QuickGUI dan MyGUI . Mereka berdua perpustakaan GUI Ogre yang baru-baru ini membatalkan persyaratan raksasa. Saya belum memiliki terlalu banyak pengalaman dengan baik, tetapi sepertinya saya akan tetap dengan QuickGUI, karena jauh lebih kecil dan lebih sederhana.
Saya tidak yakin apakah wiki QuickGUI telah diperbarui untuk menunjukkan versi bebas-Ogre terbaru. Inilah rilis terbaru.
http://www.stormsonggames.com/downloads/QuickGUI_10_8.zip
Di sana repo telah melihat beberapa pembaruan lintas platform, jadi Anda akan lebih baik menggunakan svn secara langsung.
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUI
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOgreDemo
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOgrePlatform
Nama
Pengguna: Kata Sandi Anonim : QuickGUI
Terakhir di sini adalah wiki singkat tentang cara menambahkan backend rendering yang berbeda. http://www.ogre3d.org/tikiwiki/QuickGUI+Integration+Tutorial
MyGUI tampaknya memiliki lebih banyak fitur dengan biaya semakin membengkak. Dan jujur jika kesederhanaan bukanlah persyaratan CEGUI menghembuskan MyGUI keluar dari air.
sumber
Saya akan merekomendasikan QT, karena ini lintas platform, C ++ dan Anda bisa mendapatkan versi Open Source dengan lisensi LGPL. Ini juga mudah digunakan dan memiliki banyak komponen pra-dibuat yang dapat Anda gunakan.
sumber
Pembuatnya mungkin menembak saya karena mengatakannya, tetapi saya menemukan GLFW hanya luar biasa dalam membuat kerangka kerja GUI lintas platform. Orang-orang pengembangan GLFW terus-menerus tentang GLFW tidak menangani GUI. Ini tidak namun melakukan pekerjaan yang baik, sederhana, bersih dan benar-benar portabel menangani grafis, peristiwa dan tugas mouse / keyboard / joystick.
Yang menyenangkan tentang GLFW bagi saya adalah bahwa itu cukup kecil, tidak memerlukan kode sistem khusus, tidak ada GLUT dan terpelihara dengan baik. Sejauh ini stabil untuk digunakan pada proyek OpenGL 4.1. Dibandingkan dengan sesuatu seperti SDL, saya suka overhead yang kecil dan mudah untuk menulis kelas handler GUI.
Atau, lihat FLTK . Ini dapat digunakan untuk segala macam hal dan dirancang ulang dengan sangat sederhana. Ini benar-benar digunakan untuk membangun aplikasi tetapi sangat mampu menangani objek 3D dan dibangun di atas OpenGL. Sangat kecil, didukung dengan baik dan sementara saya tidak melihat banyak orang membuat antarmuka khusus pada tingkat desain game, ada beberapa yang tampaknya bekerja dengan baik.
sumber