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:
GL.Begin(BeginMode.Points);
GL.Color3(Color.Yellow);
GL.Vertex3(Vector3.Up);
sebagai lawan dari Tao yang hanya mencerminkan C API:
Gl.glBegin(Gl.GL_POINTS); // double "gl" prefix
Gl.glColor3ub(255, 255, 0); // have to pass RGB values as separate args
Gl.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.
Menurut saya yang dimaksud @korona adalah karena ini hanya C API, Anda dapat mengkonsumsinya dari C # secara langsung dengan banyak mengetik seperti ini:
[DllImport("opengl32")]
public static extern void glVertex3f(float x, float y, float z);
Anda sayangnya perlu melakukan ini untuk setiap fungsi OpenGL yang Anda panggil, dan pada dasarnya apa yang telah dilakukan Tao untuk Anda.
Tao seharusnya menjadi kerangka kerja yang bagus.
Dari situs mereka:
Tao Framework for .NET adalah kumpulan binding untuk memfasilitasi pengembangan aplikasi media lintas platform yang memanfaatkan platform .NET dan Mono.
SharpGL adalah proyek yang memungkinkan Anda menggunakan OpenGL di Windows Forms atau aplikasi WPF.
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.
Saya juga akan merekomendasikan Kerangka Tao . Tapi satu catatan tambahan:
Lihatlah tutorial ini: http://www.taumuon.co.uk/jabuka/
Apa yang Anda ingin pustaka dukungan ini lakukan? Hanya menggunakan OpenGL dari C # cukup sederhana dan tidak memerlukan pustaka tambahan afaik.
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.