Saya tahu ini adalah utas yang sangat lama, tetapi Unity mungkin menarik bagi Anda
clabe45
Jawaban:
129
OpenTK adalah peningkatan dari Tao API, karena menggunakan gaya idiomatik C # dengan kelebihan beban, enum yang diketik dengan kuat, pengecualian, dan tipe standar .NET:
sebagai lawan dari Tao yang hanya mencerminkan C API:
Gl.glBegin(Gl.GL_POINTS);// double "gl" prefixGl.glColor3ub(255,255,0);// have to pass RGB values as separate argsGl.glVertex3f(0,1,0);// explicit "f" qualifier
Hal ini membuat port lebih sulit tetapi sangat bagus untuk digunakan.
Sebagai bonus, ia menyediakan rendering font, pemuatan tekstur, penanganan input, audio, matematika ...
Pembaruan 18 Januari 2016 : Hari ini pengelola OpenTK telah menjauh dari proyek , meninggalkan masa depannya yang tidak pasti. Forum dipenuhi dengan spam. Pemelihara merekomendasikan pindah ke MonoGame atau SDL2 #.
Pembaruan 30 Juni 2020 : OpenTK telah memiliki pengelola baru untuk sementara waktu sekarang dan memiliki komunitas perselisihan yang aktif. Jadi rekomendasi sebelumnya untuk menggunakan library lain belum tentu benar.
Saya rasa fungsi ini tidak terlalu representatif, karena semuanya sudah usang dan dihapus dari profil inti OpenGl.
Arne
6
Benar, fungsi tersebut dihapus dari profil inti. Tapi dalilnya tetap valid. "OpenTK adalah peningkatan dari API Tao, karena menggunakan gaya C # idiomatik dengan kelebihan beban, enum yang diketik dengan kuat, pengecualian, dan jenis .NET standar"
Syaiful Nizam Yahya
1
Situs web yang ditautkan tidak valid untuk posting ini sekarang.
Sonny Childs
16
Menurut saya yang dimaksud @korona adalah karena ini hanya C API, Anda dapat mengkonsumsinya dari C # secara langsung dengan banyak mengetik seperti ini:
Tao Framework for .NET adalah kumpulan binding untuk memfasilitasi pengembangan aplikasi media lintas platform yang memanfaatkan platform .NET dan Mono.
Anda dapat OpenGL tanpa pembungkus dan menggunakannya secara native di C #. Seperti yang dikatakan Jeff Mc, Anda harus mengimpor semua fungsi yang Anda butuhkan dengan DllImport.
Apa yang dia tinggalkan adalah harus membuat konteks sebelum Anda dapat menggunakan salah satu fungsi OpenGL. Ini tidak sulit, tetapi ada beberapa DllImports lain yang tidak terlalu intuitif yang perlu dilakukan.
Saya telah membuat contoh proyek C # di VS2012 dengan hampir minimal yang diperlukan untuk menjalankan OpenGL di kotak Windows. Ini hanya mengecat jendela dengan warna biru, tetapi seharusnya cukup untuk membantu Anda memulai. Contohnya dapat ditemukan di http://www.glinos-labs.org/?q=programming-opengl-csharp . Cari contoh Tanpa Pembungkus di bagian bawah.
@MegaByte Mereka harus diakses melalui pemanggilan platform.
Penebusan Terbatas
2
Mengenai pilihan (agak di luar topik yang saya tahu, tetapi karena telah dibahas sebelumnya) pilihan XNA vs OpenGL, mungkin bermanfaat dalam beberapa kasus untuk menggunakan OpenGL daripada XNA (dan di XNA lain daripada OpenGL ...).
Jika Anda akan menjalankan aplikasi di Linux atau Mac menggunakan Mono, ini mungkin pilihan yang baik untuk menggunakan OpenGL. Juga, yang menurut saya tidak begitu banyak diketahui, jika Anda memiliki pelanggan yang akan menjalankan aplikasi Anda di lingkungan Citrix, maka DirectX / Direct3D / XNA tidak akan menjadi pilihan yang ekonomis seperti OpenGL. Alasannya adalah bahwa aplikasi OpenGL dapat dihosting bersama pada jumlah server yang lebih sedikit (karena masalah kinerja, server tunggal tidak dapat menghosting jumlah instans aplikasi yang tidak terbatas) daripada aplikasi DirectX / XNA yang menuntut server virtual khusus untuk dijalankan di perangkat keras. mode akselerasi. Persyaratan lain ada seperti kartu grafis yang didukung dll, tetapi saya akan tetap membahas masalah XNA vs OpenGL. Sebagai Arsitek TI, Pengembang perangkat lunak, dll. Ini harus dipertimbangkan sebelum memilih antara OpenGL dan DirectX / XNA ...
Catatan tambahan adalah bahwa WebGL didasarkan pada OpenGL ES3 afaik ...
Sebagai catatan lebih lanjut, ini bukan satu-satunya pertimbangan, tetapi mereka mungkin membuat pilihan lebih mudah bagi beberapa ...
XNA 2.0 membutuhkan minimal kartu shader 1.1. Meskipun teknologi lama, tidak semua orang memilikinya. Beberapa laptop baru (menurut pengalaman kami, tablet Toshiba dengan grafis Intel) tidak memiliki dukungan shader 1.1. XNA tidak akan berjalan di mesin ini.
Ini adalah masalah penting bagi kami dan kami telah beralih ke Tao dan OpenGL. Ditambah dengan Tao kami memiliki binding untuk dukungan audio & Lua.
Jawaban:
OpenTK adalah peningkatan dari Tao API, karena menggunakan gaya idiomatik C # dengan kelebihan beban, enum yang diketik dengan kuat, pengecualian, dan tipe standar .NET:
sebagai lawan dari Tao yang hanya mencerminkan C API:
Hal ini membuat port lebih sulit tetapi sangat bagus untuk digunakan.
Sebagai bonus, ia menyediakan rendering font, pemuatan tekstur, penanganan input, audio, matematika ...
Pembaruan 18 Januari 2016 : Hari ini pengelola OpenTK telah menjauh dari proyek , meninggalkan masa depannya yang tidak pasti. Forum dipenuhi dengan spam. Pemelihara merekomendasikan pindah ke MonoGame atau SDL2 #.
Pembaruan 30 Juni 2020 : OpenTK telah memiliki pengelola baru untuk sementara waktu sekarang dan memiliki komunitas perselisihan yang aktif. Jadi rekomendasi sebelumnya untuk menggunakan library lain belum tentu benar.
sumber
Menurut saya yang dimaksud @korona adalah karena ini hanya C API, Anda dapat mengkonsumsinya dari C # secara langsung dengan banyak mengetik seperti ini:
Anda sayangnya perlu melakukan ini untuk setiap fungsi OpenGL yang Anda panggil, dan pada dasarnya apa yang telah dilakukan Tao untuk Anda.
sumber
Tao seharusnya menjadi kerangka kerja yang bagus.
Dari situs mereka:
sumber
SharpGL adalah proyek yang memungkinkan Anda menggunakan OpenGL di Windows Forms atau aplikasi WPF.
sumber
Anda dapat OpenGL tanpa pembungkus dan menggunakannya secara native di C #. Seperti yang dikatakan Jeff Mc, Anda harus mengimpor semua fungsi yang Anda butuhkan dengan DllImport.
Apa yang dia tinggalkan adalah harus membuat konteks sebelum Anda dapat menggunakan salah satu fungsi OpenGL. Ini tidak sulit, tetapi ada beberapa DllImports lain yang tidak terlalu intuitif yang perlu dilakukan.
Saya telah membuat contoh proyek C # di VS2012 dengan hampir minimal yang diperlukan untuk menjalankan OpenGL di kotak Windows. Ini hanya mengecat jendela dengan warna biru, tetapi seharusnya cukup untuk membantu Anda memulai. Contohnya dapat ditemukan di http://www.glinos-labs.org/?q=programming-opengl-csharp . Cari contoh Tanpa Pembungkus di bagian bawah.
sumber
Saya juga akan merekomendasikan Kerangka Tao . Tapi satu catatan tambahan:
Lihatlah tutorial ini: http://www.taumuon.co.uk/jabuka/
sumber
Apa yang Anda ingin pustaka dukungan ini lakukan? Hanya menggunakan OpenGL dari C # cukup sederhana dan tidak memerlukan pustaka tambahan afaik.
sumber
Mengenai pilihan (agak di luar topik yang saya tahu, tetapi karena telah dibahas sebelumnya) pilihan XNA vs OpenGL, mungkin bermanfaat dalam beberapa kasus untuk menggunakan OpenGL daripada XNA (dan di XNA lain daripada OpenGL ...).
Jika Anda akan menjalankan aplikasi di Linux atau Mac menggunakan Mono, ini mungkin pilihan yang baik untuk menggunakan OpenGL. Juga, yang menurut saya tidak begitu banyak diketahui, jika Anda memiliki pelanggan yang akan menjalankan aplikasi Anda di lingkungan Citrix, maka DirectX / Direct3D / XNA tidak akan menjadi pilihan yang ekonomis seperti OpenGL. Alasannya adalah bahwa aplikasi OpenGL dapat dihosting bersama pada jumlah server yang lebih sedikit (karena masalah kinerja, server tunggal tidak dapat menghosting jumlah instans aplikasi yang tidak terbatas) daripada aplikasi DirectX / XNA yang menuntut server virtual khusus untuk dijalankan di perangkat keras. mode akselerasi. Persyaratan lain ada seperti kartu grafis yang didukung dll, tetapi saya akan tetap membahas masalah XNA vs OpenGL. Sebagai Arsitek TI, Pengembang perangkat lunak, dll. Ini harus dipertimbangkan sebelum memilih antara OpenGL dan DirectX / XNA ...
Catatan tambahan adalah bahwa WebGL didasarkan pada OpenGL ES3 afaik ...
Sebagai catatan lebih lanjut, ini bukan satu-satunya pertimbangan, tetapi mereka mungkin membuat pilihan lebih mudah bagi beberapa ...
sumber
XNA 2.0 membutuhkan minimal kartu shader 1.1. Meskipun teknologi lama, tidak semua orang memilikinya. Beberapa laptop baru (menurut pengalaman kami, tablet Toshiba dengan grafis Intel) tidak memiliki dukungan shader 1.1. XNA tidak akan berjalan di mesin ini.
Ini adalah masalah penting bagi kami dan kami telah beralih ke Tao dan OpenGL. Ditambah dengan Tao kami memiliki binding untuk dukungan audio & Lua.
sumber