जवाबों:
OpenTK ताओ एपीआई पर एक सुधार है, क्योंकि इसमें मुहावरेदार सी # शैली का उपयोग ओवरलोडिंग, जोरदार-टाइप किए गए एनम, अपवाद और मानक .NET प्रकारों के साथ किया जाता है:
GL.Begin(BeginMode.Points);
GL.Color3(Color.Yellow);
GL.Vertex3(Vector3.Up);
ताओ के विपरीत जो केवल सी एपीआई को प्रतिबिंबित करता है:
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
यह कठिन पोर्टिंग के लिए बनाता है लेकिन उपयोग करने के लिए अविश्वसनीय रूप से अच्छा है।
एक बोनस के रूप में यह फ़ॉन्ट रेंडरिंग, बनावट लोडिंग, इनपुट हैंडलिंग, ऑडियो, गणित प्रदान करता है ...
18 जनवरी 2016 को अपडेट करें : आज OpenTK अनुरक्षक ने अपने भविष्य की अनिश्चितता को छोड़ते हुए इस परियोजना से दूर हट गए । फोरम स्पैम से भरे हुए हैं। अनुचर मोनूगैम या SDL2 # में जाने की सलाह देता है।
30 जून 2020 तक अपडेट करें : OpenTK में अभी कुछ समय के लिए नए अनुरक्षक हैं और एक सक्रिय कलह समुदाय है। इसलिए किसी अन्य पुस्तकालय का उपयोग करने की पिछली सिफारिश जरूरी नहीं है।
मुझे लगता है कि @korona का क्या मतलब था क्योंकि यह सिर्फ एक C API था, आप इसे C # से सीधे उपभोग कर सकते हैं, इस प्रकार की बहुत सारी टाइपिंग के साथ।
[DllImport("opengl32")]
public static extern void glVertex3f(float x, float y, float z);
दुर्भाग्यवश आपको अपने द्वारा कॉल किए जाने वाले प्रत्येक सिंगल ओपन कार्यक्रम के लिए ऐसा करने की आवश्यकता होगी, और मूल रूप से ताओ ने आपके लिए क्या किया है।
ताओ एक अच्छा ढांचा माना जाता है।
उनकी साइट से:
.NET के लिए ताओ फ्रेमवर्क .NET और मोनो प्लेटफार्मों का उपयोग कर क्रॉस-प्लेटफ़ॉर्म मीडिया अनुप्रयोग विकास की सुविधा के लिए बाइंडिंग का एक संग्रह है।
SharpGL एक ऐसी परियोजना है, जो आपको अपने Windows प्रपत्र या WPF अनुप्रयोगों में OpenGL का उपयोग करने देती है।
आप बिना रैपर के OpenGL का उपयोग कर सकते हैं और इसे C # में मूल रूप से उपयोग कर सकते हैं। जैसा कि जेफ मैक ने कहा, आपको DllImport के साथ सभी कार्यों को आयात करना होगा।
आपके द्वारा छोड़े गए किसी भी कार्य को खोलने से पहले उसका संदर्भ बनाना होगा। यह मुश्किल नहीं है, लेकिन कुछ अन्य नहीं-तो-सहज ज्ञान युक्त DllImports है कि किया जाना चाहिए।
मैंने VS2012 में एक उदाहरण C # प्रोजेक्ट बनाया है जिसमें विंडोज बॉक्स पर ओपनजीएल को चलाने के लिए लगभग न्यूनतम न्यूनतम आवश्यक है। यह केवल खिड़की के नीले रंग को पेंट करता है, लेकिन यह आपको शुरू करने के लिए पर्याप्त होना चाहिए। इसका उदाहरण http://www.glinos-labs.org/?q=programming-opengl-csharp पर मिल सकता है । के लिए देखो कोई आवरण तल पर उदाहरण।
मैं ताओ फ्रेमवर्क की भी सिफारिश करूंगा । लेकिन एक अतिरिक्त नोट:
इन ट्यूटोरियल पर एक नज़र डालें: http://www.taumuon.co.uk/jabuka/
आप इन समर्थन पुस्तकालयों को क्या करना चाहेंगे? बस C # से OpenGL का उपयोग करना काफी सरल है और इसके लिए किसी अतिरिक्त लाइब्रेरी की आवश्यकता नहीं है।
के विषय में (कुछ ऐसा विषय जिसे मैं जानता हूं, लेकिन चूंकि यह पहले लाया गया था) XNA बनाम ओपनजीएल पसंद, XNA के बजाय ओपनजीएल (और ओपनजीएल के बजाय अन्य XNA में) के साथ जाने के लिए कई मामलों में फायदेमंद हो सकता है।
यदि आप मोनो का उपयोग करके लिनक्स या मैक पर एप्लिकेशन चलाने जा रहे हैं, तो ओपनगेल के साथ जाना एक अच्छा विकल्प हो सकता है। इसके अलावा, जो मुझे लगता है कि व्यापक रूप से ज्ञात नहीं है, अगर आपके पास ग्राहक हैं जो आपके एप्लिकेशन को Citrix वातावरण में चलाने जा रहे हैं, तो DirectX / Direct3D / XNA आर्थिक रूप से OpenGL के रूप में पसंद नहीं होगा। इसका कारण यह है कि OpenGL अनुप्रयोगों को सर्वर की कम संख्या पर सह-होस्ट किया जा सकता है (प्रदर्शन समस्याओं के कारण एकल सर्वर अनुप्रयोग इंस्टेंस की अनंत संख्या की मेजबानी नहीं कर सकता है) DirectX / XNA अनुप्रयोगों की तुलना में जो हार्डवेयर में चलाने के लिए समर्पित वर्चुअल सर्वर की मांग करता है त्वरित मोड। अन्य आवश्यकताएं समर्थित ग्राफिक्स कार्ड आदि की तरह मौजूद हैं, लेकिन मैं XNA बनाम ओपनजीएल मुद्दे पर रखूंगा। एक आईटी वास्तुकार, सॉफ्टवेयर डेवलपर आदि के रूप में इस पर OpenGL और DirectX / XNA के बीच चयन करने से पहले विचार करना होगा ...
एक ओर ध्यान दें कि WebGL OpenGL ES3 afaik पर आधारित है ...
एक और नोट के रूप में, ये केवल विचार नहीं हैं, लेकिन वे कुछ के लिए चुनाव को आसान बना सकते हैं ...
XNA 2.0 को न्यूनतम shader 1.1 कार्ड की आवश्यकता होती है। जबकि पुरानी तकनीक, हर किसी के पास नहीं है। कुछ नए लैपटॉप (इंटेल ग्राफिक्स के साथ हमारे अनुभव तोशिबा टैबलेट में) का कोई शेडर 1.1 सपोर्ट नहीं है। XNA बस इन मशीनों पर नहीं चलेगा।
यह हमारे लिए एक महत्वपूर्ण मुद्दा है और हम ताओ और ओपनजीएल में स्थानांतरित हो गए हैं। इसके अलावा ताओ के साथ हमारे पास ऑडियो और लुआ समर्थन के लिए बाइंडिंग है।