2009-02-03 17 views
7

मेरे एप्लिकेशन में Canvas3D के साथ पहली विंडो दिखाने के लिए कई सेकंड लगते हैं। मैंने इसे प्रोफाइल किया है और पाया है कि बाधा SimpleUniverse.getPreferredConfiguration() में है; पहली कॉल में तीन या चार सेकंड लगते हैं, और को दृश्य को प्रस्तुत करने से पहले कॉल किया जाना चाहिए।मैं Java3D को तेज़ी से कैसे शुरू कर सकता हूं?

मैं डायरेक्ट 3 डी रेंडरर (-Dj3d.rend=d3d) का उपयोग कर रहा हूं, क्योंकि ओपनजीएल रेंडरर मेरे ग्राफिक्स कार्ड पर दुर्घटनाग्रस्त हो जाता है। मेरे पास एक एकीकृत एटीआई कार्ड है जो एक मॉनीटर चला रहा है।

उत्तर

12

मंदी का कारण यह है कि GraphicsDevice.getConfigurations(), जिसका उपयोग SimpleUniverse.getPreferredConfiguration() द्वारा किया जाता है, कुछ सिस्टमों पर बहुत धीमी है। - अप 60ms लेता पूरा करने के लिए

समस्या यह है कि ::DescribePixelFormat Win32 कॉल धीमी है: जो this Java3D bug से जोड़ता है, जो this Sun bug को बारी लिंक में this java.net forum thread देखें। ...
सुझाए गए वर्कअराउंड (जो [एसआईसी] अपमानजनक Win32 कॉल को समाप्त करता है) समय में काफी सुधार हुआ है (जैसे, 0ms)।

वैकल्पिक हल उल्लेख JVM, जो अंतर्निहित मूल कोड DescribePixelFormat फोन नहीं करता है पास -Dsun.awt.nopixfmt=true है।

... जो जावा के साथ OpenGL का उपयोग कुछ अनुप्रयोगों ठीक से काम नहीं हो सकता है:

जाहिरा तौर पर यह एक आदर्श समाधान नहीं है।

लेकिन जब से मैं Direct3D का उपयोग कर रहा था, यह कोई समस्या नहीं है। यह स्टार्टअप समय के 3.2 सेकंड बंद है।

+0

मुझे कल यह कामकाज मिला, इसलिए मैं एक सार्वजनिक रिकॉर्ड बना रहा हूं इसलिए मैं इसे फिर से नहीं खोऊंगा। –

+0

कैसे पास करें -Dsun.awt.nopixfmt = jvm के लिए सच? या जावा 3 डी में ग्राफिक्स कॉन्फ़िगरेशन ऑब्जेक्ट को कॉल करना बंद कैसे करें? – Jay

संबंधित मुद्दे