OpenGL vs OGRE: Mana yang terbaik untuk pemula? [Tutup]

10

Saya tertarik untuk memasuki pengembangan game dan memiliki keterampilan pemrograman C / C ++ yang bagus. Saya telah mencoba OGRE sebelumnya, dan saya ingin tahu apakah saya harus belajar OGRE atau OpenGL sebagai titik awal.

Dari pemahaman saya, OGRE adalah pembungkus untuk OpenGL dan DirectX. Jadi, seandainya saya belajar OGRE, apakah saya masih perlu belajar OpenGL juga untuk mengembangkan game?

Juga, dapatkah seseorang menunjukkan saya tutorial yang bagus untuk OpenGL? Saya menemukan bahwa OGRE terdokumentasi dengan baik (bahkan disertai dengan distribusi!) Tetapi untuk OpenGL, sebagian besar tutorial yang saya ikuti sudah ketinggalan jaman.

Songbreaker
sumber
Jika Anda benar-benar baru dalam pemrograman grafik 3D, saya akan mencoba untuk merasakan bagaimana API tingkat rendah beroperasi terlebih dahulu (OpenGL atau D3D, itu tidak masalah) dan kemudian beralih ke mesin grafis yang sudah jadi seperti sebagai OGRE sehingga Anda dapat berkonsentrasi pada aplikasi / game Anda alih-alih pada rendering desain / pengembangan mesin.
drxzcl
1
Saya akan memilih 2D terlebih dahulu, bukan 3D.
Bebek Komunis
1
Sebagian besar 2D bukan hanya "3D tanpa Y" dan memiliki idiom dan teknik go-to sendiri, saya tidak begitu yakin mengambil trek sampingan ke 2D akan baik untuk seseorang dengan "c / c ++ bagus" sudah.
Patrick Hughes
Mengapa pertanyaan ini tidak konstruktif?
Songbreaker

Jawaban:

13

Ogre memang merupakan pembungkus untuk OpenGL, namun gagasan pembungkus seperti itu adalah Anda tidak perlu khawatir dengan seluk-beluk OpenGL. Tentu saja akan membantu untuk mengetahui sedikit tentang OpenGL, tetapi Ogre akan menyembunyikan banyak detail jelek untuk Anda.

Saya akan mengatakan bahwa Ogre bisa dibilang lebih mudah dipelajari daripada OpenGL, atau setidaknya itu akan memberi Anda hasil yang menarik lebih cepat. Tentu saja itu benar-benar tergantung pada apa yang ingin Anda lakukan untuk menilai jika perlu belajar OpenGL.

Tentang tutorial OpenGL, ya kebanyakan dari mereka sudah ketinggalan zaman, namun speknya belum bergerak sangat cepat sehingga banyak dari tutorial lama masih berlaku untuk sebagian besar OpenGL.

Beberapa favorit saya:

Roy T.
sumber
28
TOLONG TOLONG BERHENTI berhenti mengirim orang ke NeHe. Tutorialnya bagus, tapi sangat ketinggalan jaman. Masa-masa OpenGL 1.x sudah lama berlalu, mari kita coba untuk tidak melumpuhkan generasi berikutnya dari para programmer grafis yang keluar dari gerbang!
drxzcl
5
Lihat "Pengantar OpenGL Modern": duriansoftware.com/joe/…
drxzcl
1
@Ranieri Saya sangat, sangat setuju. Situs ini tetap sama selama bertahun-tahun, dan sekarang OpenGL telah berubah cukup drastis selama beberapa tahun terakhir, itu benar-benar perlu dihilangkan. @Songbreaker harap perhatikan hal ini dan pertimbangkan untuk menghindari tutorial NeHe, atau setidaknya membawanya dengan sebutir garam. Pipa tetap sudah lama hilang.
Ricket
1
@ Ranieri, @ Ricket Saya benar-benar, sangat tidak setuju. Pertimbangkan kurva pembelajaran untuk OpenGL 4.x untuk pemula yang benar-benar tidak terbiasa dengan pemrograman grafis dan mengambil SDK di samping dalam waktu luang mereka, tanpa instruksi. Bagaimana dokumentasi untuk OpenGL 4.x? Lihat posting saya untuk lebih jelasnya.
Andrew Rasmussen
4
@Songbreaker: Saya mencoba. Saya akan menyerahkan kepada Anda untuk memutuskan apakah mereka baik atau tidak.
Nicol Bolas
17

OpenGL! Ya saya secara terbuka tidak setuju dengan semua orang di forum ini sejauh ini.

OGRE berantakan. Kurva pembelajarannya curam. Ya mereka punya beberapa tutorial yang bagus, tetapi melangkah di luar batas tutorial dan melakukan hal Anda sendiri SANGAT sulit. Saya berharap untuk menghabiskan tiga minggu sebelum Anda dapat mengatur dan bekerja OGRE, bekerja melalui tutorial, dan mencari tahu apa yang harus dilakukan selanjutnya. Tidak ada tentang OGRE yang jauh lebih baik atau lebih sederhana daripada OpenGL. Jika Anda adalah programmer C yang baik seperti yang telah Anda klaim, dan Anda memahami pointer / array / fungsi Anda, OpenGL akan sama mudahnya, jika tidak lebih mudah.

Itu sebabnya saya sangat menyarankan memulai dengan OpenGL. OpenGL akan memaksa Anda untuk mempelajari semua dasar-dasar grafis. Ini jauh lebih menarik karena Anda akan benar-benar menyadari apa yang sedang terjadi di latar belakang. Dan YA mulai dengan tutorial NeHe. Ya mereka 1.x yang sangat ketinggalan jaman (ini untuk Anda, Ranieri), tetapi melompat ke OpenGL 4.x terlalu curam kurva belajar.

Mulailah dengan mode langsung di 1.x (glBegin, glEnd), kemudian pelajari tentang Array Vertex. Jika Anda mau, mainkan daftar tampilan hanya untuk belajar. Kemudian pindah ke objek vertex buffer. Kemudian pelajari tentang shader. Masing-masing transisi ini sangat mudah, dan ada banyak tutorial online yang bagus. VBO berada di inti 4.1, jadi pada saat Anda membuatnya di sana, Anda tidak lagi belajar materi yang sudah ketinggalan zaman, dan jauh lebih mudah untuk sampai di sana dengan mulai dengan barang-barang 1.x.

Juga, jika Anda menginginkan karir pengembangan game, tidak ada yang akan mempekerjakan Anda karena Anda dapat membuat putaran kubus di beberapa rak perpustakaan. Mereka akan mempekerjakan Anda karena Anda memahami apa yang sedang terjadi di level terendah dan Anda dapat membuat keputusan desain berdasarkan pengetahuan yang berharga itu.

Referensi: Saya di mana Anda berada. Saya menghabiskan sebulan di OGRE, seminggu mencoba Irrlicht, seminggu mencoba Horde3d, dua hari bermain dengan DirectX, dan sebulan bermain dengan OpenGL. Setelah sebulan dengan OGRE saya hampir tidak bisa melampaui ruang lingkup tutorial. Setelah satu bulan dengan OpenGL saya memiliki karakter berjalan di sekitar dunia minecraftian, membuat 260.000 kubus bertekstur per bingkai dengan 700+ framerate.

Andrew Rasmussen
sumber
Saya tidak setuju dengan pernyataan Anda dan saya juga tidak berpikir pengalaman yang Anda paparkan memiliki arti. Baik Ogre dan OGL mengharuskan Anda memiliki pengetahuan dasar tentang cara berbicara dengan kartu grafis, yang tidak berarti Anda harus tahu OGL atau DX tetapi pada dasarnya Anda harus tahu apa yang bisa mereka lakukan. Pada titik ini, Ogre menambahkan lapisan yang membutuhkan waktu berbulan-bulan untuk dipasang oleh pemula dan Anda tidak dapat melihat dengan contoh yang telah Anda siapkan dalam sebulan. Selalu baik untuk mengenal OGL, tetapi mengabaikan Ogre karena pengalaman Anda tidak berarti apa-apa.
Klaim
1
Tidak, OGRE tidak benar-benar mengharuskan Anda untuk mengetahui cara berbicara dengan kartu grafis - itu intinya. Selain itu, OGRE bukan hanya pembungkus API grafis, tetapi juga manajer adegan, pemuat model, dll.
Jarrett
5

Jawaban singkat? RAKSASA.

Jawaban gondrong? OGRE adalah pembungkus OpenGL, jadi karena itu Anda harus melakukan lebih sedikit pekerjaan. Anda tidak perlu terlalu khawatir tentang pengiriman data ke GPU atau shader terikat, atau memilah simpul pada tingkat rendah. Jauh lebih cepat menggunakan OGRE daripada menggunakan OpenGL untuk produksi, dan kemungkinan kode Anda akan (sangat sedikit) lebih cepat juga.

Jika Anda tertarik dengan pengembangan mesin, gunakan GL. Lain, gunakan OGRE. Dan saya mungkin akan mulai dengan OGRE.

Bebek Komunis
sumber
3

Mengetahui perangkat keras komputer grafis tidak diperlukan untuk pengembangan game. Diperlukan untuk menjadi programmer grafis atau bagian dari tim pengembang render dalam sebuah perusahaan game (Catatan pribadi: yang merupakan kesenangan terbaik dalam pengembangan seluruh game :)).

Jika Anda tidak ingin menjadi insinyur render, Anda mungkin tidak perlu mempelajari seluruh OpenGL atau DX untuk mengembangkan game.

Notabene
sumber
2

Saya berpendapat tidak ada yang terbaik untuk pemula, tetapi kemudian "terbaik" adalah istilah relatif yang tergantung pada apa yang ingin Anda dapatkan. Misalnya, jika yang Anda inginkan adalah mempelajari pemrograman grafis 3D untuk mendapatkan keterampilan yang dapat Anda gunakan untuk mendapatkan pekerjaan sebagai programmer grafis 3D untuk perusahaan game maka pilihan itu masuk akal. Dengan tujuan ini, Anda mungkin juga melihat DirectX.

Namun jika Anda memiliki tujuan lain dalam pikiran maka saya akan merekomendasikan mencari opsi lain. Sebagai permulaan, sementara dari pertanyaan Anda orang akan menganggap Anda ingin terlibat dalam pengembangan game sebagai programmer, Anda tidak benar-benar menentukan itu. Baik menulis mesin grafis di OpenGL dan membangun di atas Ogre jelas untuk programmer hard-core.

jhocking
sumber