2013-06-05 8 views
14

मैं एक बहुत ही सरल जावा 3 डी संपादक (प्रयोग के लिए) लिखना चाहता हूं। मुझे मूल जावाएफएक्स उपयोग पता है, और मुझे पर्याप्त ओपनजीएल ज्ञान पता है। लेकिन मेरा सभी ओपनजीएल अनुभव सी/सी ++ के साथ काम करने से है।JavaFX में OpenGL का उपयोग कैसे करें?

क्या मैं जावाएफएक्स एप्लिकेशन में 'कैनवास' बना सकता हूं और उस पर ओपनजीएल व्यूपोर्ट मैप कर सकता हूं?

+0

इंटरनेट पर कई उदाहरण नहीं हैं, लेकिन यहां एक कार्यान्वयन देखा जा सकता है: http://www.java-gaming.org/topics/lwjgl-javafx-integration/27801/view.html – Appleshell

+0

आप इसका उपयोग कर सकते हैं एक आधार के रूप में प्रोजेक्ट: https://github.com/Spasi/LWJGL-FX –

उत्तर

14

आंतरिक रूप से, जावाएफएक्स ओपनजीएल को प्रतिपादन पाइपलाइन के रूप में उपयोग कर सकता है, इसलिए संघर्षों से बचने के लिए दोनों के बीच एकीकरण पर कुछ देखभाल की आवश्यकता है। JavaFX में

OpenGLNode

रिचर्ड बेयर, JavaFX टीम का नेतृत्व openjfx development mailing list पर पोस्ट:

एक बात मैं 8 अद्यतन के लिए किया देखने के लिए (उदाहरण के लिए) चाहते हैं एक OpenGLNode है या मूल SurfaceNode या उन पंक्तियों के साथ कुछ ऐसा है कि यदि आप अपना स्वयं का डी 3 डी/ओपनजीएल कर रहे हैं तो आपके पास उन कच्चे आदेशों को ग्राफिक्स कार्ड पर भेजने का एक तरीका हो सकता है लेकिन फिर भी दृश्य नोड में आपका नोड कंपोजिट किया गया है।

तो भविष्य में जावाएफएक्स रिलीज अपडेट में ओपनजीएलएनोड शामिल हो सकता है। प्रारंभिक जावा 8 रिलीज के बाद अगली जावाएफएक्स फीचर रिलीज होने तक इस तरह की सुविधा को जावाएफएक्स सामान्य उपलब्धता रिलीज में शामिल नहीं किया जाएगा (मेरा अनुमान है कि इसे सितंबर 2014 में रखा जाएगा)।

3 पार्टी ओपन/JavaFX एकीकरण

आप इतने लंबे समय तक इंतजार करना JavaFX और ओपन एकीकृत शुरू करने की आवश्यकता नहीं है। कार्यान्वयन शुरू करने के लिए सभी आवश्यक स्रोत कोड OpenJFX repository में खुले हैं, इसलिए आप lwjgl या jogl जैसी लाइब्रेरी के साथ उस कोड का कस्टम एकीकरण बनाने का प्रयास कर सकते हैं।

यह उत्तर दिनांकित होगा क्योंकि डेवलपर्स ओपनजीएल एपिस के लिए मौजूदा जावा रैपर के साथ जावाएफएक्स के एकीकरण को निष्पादित करना शुरू कर देंगे। कुछ डेवलपर्स ने पहले से ही ऐसा काम शुरू कर दिया है - मौजूदा एकीकरण परियोजनाओं और उनकी स्थिति के बारे में जानने के लिए lwjgl javafx या jogl javafx की Google खोज चलाएं।

सरल एकीकरण शायद एक 3 पार्टी पुस्तकालय एक ऑफ स्क्रीन बफर करने के लिए प्रस्तुत करना तो एक JavaFX WritableImage या Canvas के रूप में ओपन गाया ग्राफिक्स JavaFX दृश्य ग्राफ में सम्मिश्रित प्राप्त करने के लिए आवश्यक करने के लिए बफर से पिक्सल हस्तांतरण है।

JavaFX 3 डी एपीआई वैकल्पिक

JavaFX अपनी ही हल्के 3D API कि समग्र फोंग JavaFX दृश्य ग्राफ में 3 डी मॉडल छायांकित करने की क्षमता प्रदान करता है। जावाएफएक्स 3 डी एपीआई एक पूर्ण ओपनजीएल एपीआई एकीकरण की सभी शक्ति प्रदान नहीं करेगा, हालांकि जावाएफएक्स 3 डी एपीआई का उपयोग अपेक्षाकृत सरल है। 3D features in Java 8 is on the open-jfx wiki के कोड उदाहरणों के साथ एक विवरण।

इंटरेक्टिव मेष एक निःशुल्क 3D model importer for JavaFX प्रदान करता है, जो आपको जटिल छायांकित और बनावट 3 डी मॉडल को जावाएफएक्स दृश्य ग्राफ में लाने की अनुमति देता है।

में है कि आप अपने प्रस्तावित जावाएफएक्स आधारित 3 डी संपादक के लिए आधार बनाने के लिए फोर्क कर सकते हैं।

नाशर्न जावास्क्रिप्ट इंजन में एक स्विच है जो आपको use JavaFX and its 3D features from JavaScript पर अनुमति देता है, ताकि आप चाहें तो जावाएफएक्स 3 डी फीचर्स तक पहुंचने के लिए वैकल्पिक जेवीएम भाषाओं का उपयोग कर सकते हैं।

+5

तो, लगभग 1 साल बीत चुका है ... क्या OpenGLNode के बारे में कोई खबर है? –

+4

कोई सार्ज नहीं, आप उत्तर में जुड़े मेलिंग सूची पर पूछने का प्रयास कर सकते हैं। – jewelsea

+1

यह जावाएफएक्स के लिए एक वांछनीय जोड़ है। इच्छा है कि यह पूरा हो जाएगा। –

2

हां, हर तरह से, आप JOGL का उपयोग कर सकते हैं ताकि आप जावा में ओपनजीएल के साथ प्रभावी ढंग से प्राप्त कर सकें, जैसा कि आप सी/सी ++ में कर सकते हैं।

+8

आप जावा से ओपनजीएल का उपयोग करने के लिए जॉगएल या एलडब्ल्यूजेजीएल का उपयोग कर सकते हैं, लेकिन वास्तव में यह मौजूदा जावाएफएक्स विंडो में इसे लागू करना इतना आसान नहीं है। – Appleshell

+0

यह सवाल का अधिक जवाब नहीं देता है। प्रश्न पूछता है कि, जवाब सिर्फ एक सामान्य दिशा में इंगित करता है। – Suma