كتابة تطبيق جافا المحمولة باستخدام JOGL والروبوت برنامج OpenGL

StackOverflow https://stackoverflow.com/questions/1617524

سؤال

وأنوي الكتابة لعبة جافا 3D التي من شأنها العمل على حد سواء على جهاز الكمبيوتر والروبوت. للأسف يبدو أن هناك أي API برنامج OpenGL مشترك لكل المنابر.

هل واجهات برمجة التطبيقات تختلف اختلافا كبيرا؟ هل هناك طريقة أتمكن من استخدام نفس الرمز 3D في كلا الإصدارين؟ هل هي فكرة جيدة؟

هل كانت مفيدة؟

المحلول

والروبوت يدعم برنامج OpenGL ES 1.0 التي تتداخل مع برنامج OpenGL 1.3 هذا ما ينبغي أن يكون من الممكن، ولكنها ليست بهذه البساطة لمجرد استبدال الملفات جرة في وقت التشغيل.

وإنها فكرة جيدة لمحاولة لإعادة أكبر قدر ممكن منكم تطبيق عبر كل المنابر. على أي حال فإنه هو ممارسة جيدة عموما لعزل بقية لكم رمز من الاعتماد على الخارج مثل برنامج OpenGL حتى لو كنت لا تحتاج على وجه التحديد دعم برنامج OpenGL ES. أنت لا تعرف أبدا ما API / منصة قد ترغب في ميناء التطبيق الخاص بك لفي المستقبل.

وهناك 2 الخيارات المتوفرة.

والأول هو لإخفاء تنفيذ برنامج OpenGL وراء واجهة بقية الاستخدامات التطبيق الخاص بك ومن ثم توفر Jogl وAndroide تطبيقات منفصلة. يمكن اعتمادا على أي منصة تشغيل عليك بعد ذلك اختيار instanciate وimplemenation الصحيح في وقت التشغيل باستخدام نمط المصنع.

وأما برنامج OpenGL ES و OpenGL متشابهة جدا من الجهد المطلوب للحفاظ على هذا لا ينبغي أن تكون مرتفعة للغاية مما يوفر لك التمسك المهام المشتركة.

والخيار الآخر هو محاولة استخدام Jogl2 التي لديها دعم التشكيلات. هذه تظهر لتوفير ما تحتاج إليه بالتحديد ولكن Jogl2 لا يزال في مرحلة تجريبية.

والجزء السفلي هذه الصفحة يتحدث قليلا عن الشخصية: http://kenai.com/projects/ jogl / صفحة / أسئلة وأجوبة

<اقتباس فقرة>   تسمح

وملفات تطبيقات جافا لتكون مكتوبة بطريقة تسمح التوافق مع الإصدارات برنامج OpenGL متعددة في نفس الوقت. منذ برنامج OpenGL ES (GL للأنظمة المدمجة) وتداخل الوظائف مع برنامج OpenGL نفسها أنها فتحت الفرصة لإضافة حتى الملامح التي جسر سطح المكتب والتطبيقات المضمنة.

وقد ترغب في قراءة هذا http://michael-bien.com/mbien/entry/ jogl_2_opengl_profiles_explained لمزيد من المعلومات حول الملفات الشخصية.

نصائح أخرى

والانتهاء من المشروع. واتضح واجهات برمجة التطبيقات تختلف إلى حد ما، ولكن وظيفيا هناك جزء مشترك. لقد انتهى من كتابة المعالج بسيط هو أن تحويل كود JOGL إلى الإصدار ES، وآلية تحويل مع الكسوف.

وهناك في الواقع قدرا كبيرا من الفرق بين JAVA3D والمعهد برنامج OpenGL الروبوت. JAVA3D الأولى هي التجريد مستوى أعلى في 3D. وحتى لو كنت لاستخدام شيء من هذا القبيل JOGL أن يكون هناك بعض الاختلافات في واجهة برمجة التطبيقات. وأفضل رهان ستكون مجردة من تنفيذ الرسم 3D الواقع في قاعدة الرمز، هل يمكن أن تتقاسم بقية المنطق، ولكن بعد أن يكون منبرا مدونة محددة للتعامل مع برنامج OpenGL / الرسم 3D.

وكما تم دمج JOGL-ES إلى JOGL الإصدار 2.x منذ عدة سنوات، يمكنك الآن استخدام JOGL سواء في سطح المكتب والبيئات المتنقلة (الروبوت).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top