Monday, 15 March 2010

Python: pyglet vs PyOpengl performance evaluation for frame dropping -


मुझे Pyopengl vs Pyglet की कार्यक्षमता / कार्यक्षमता का मूल्यांकन करना होगा। मुख्य चिंता यह है कि उच्च एफपीएस का उपयोग करते समय यह किसी भी फ्रेम को नहीं छोड़ सकता है। इससे पहले कि मैं किसी एक को सीखना शुरू करने से पहले, मुझे यह देखने की आवश्यकता है कि ग्राहक क्या जरूरतें कर सकता है।

मैं लाल और हरे रंग के बीच (पूर्णस्क्रीन मोड में) वैकल्पिक (वियस्क पर) की कोशिश कर रहा हूं। अगर कोई मुझे एक अच्छा ट्यूटोरियल साइट दे सकता है, या एक उदाहरण के साथ मेरी मदद कर सकता है, यह बहुत अच्छा होगा।

मैंने इस पोस्ट को देखा है (और अधिक):

संशोधन, लेकिन कैसे एक रंग से vSync पर एक और एक करने के लिए स्विच करने के लिए नहीं देख सकता।

  pyglet.gl आयात से आयात pyglet * एफपीएस = pyglet.clock.ClockDisplay () # गेम विंडो वर्ग विंडो (pyglet.window.Window): def __init __ (स्वयं): सुपर (विंडो, आत्म) .__ init __ (फुलस्क्रीन = सच, vsync = false) self.flipScreen = 0 glClearColor (1.0, 1.0, 1.0, 1.0) # भागो "self.update" 128 128 pyglet.clock.schedule_interval के फ्रेम एक दूसरे और सेट एफपीएस सीमा (self.update, 1.0 / 128.0) pyglet.clock.set_fps_limit (128) डीईएफ़ अद्यतन (स्वयं, डीटी): self.flipScreen = नहीं self.flipScreen पास def on_draw (स्वयं): pyglet.clock.tick () # सुनिश्चित करें कि आप घड़ी टिक! अगर self.flipScreen == 0: glClearColor (0, 1, 0, 1.0) अन्य: glClearColor (1, 0, 0, 1.0) self.clear () fps.draw () # एक खिड़की बनाएँ और win = विंडो ( ) Pyglet.app.run ()   

मैंने बहुत सारे ट्यूटोरियल देखे हैं, लेकिन मैं यह कैसे एक परीक्षण चलाने के लिए समझ नहीं पाया।

आपकी मदद के लिए धन्यवाद।

यहाँ एक ऐसा कोड है, जो पैगलेट का उपयोग करता है। यह 3 मॉनिटर्स पर 60 हर्ट्ज और 120 हर्ट्ज पर परीक्षण किया गया है। कृपया ध्यान दें कि वैश्विक चर का उपयोग खराब है। यह बहुत साफ नहीं हो सकता है, लेकिन यह स्पष्ट रूप से दिखाता है कि vsync को ध्यान में रखा जाता है। यह vsync की कार्यक्षमता का परीक्षण करने के लिए कोड का उद्देश्य है OpenGL.GL आयात से OpenGL.GL आयात से OpenGL.GLU आयात * से * # डायरेक्ट ओपनजीएल आदेश इस विंडो पर <प्री> आयात पेगलेट। config = कॉन्फ़िग (double_buffer = सच) खिड़की = pyglet.window.Window (config = config) window.set_vsync (सच) window.set_fullscreen (सच) colorSwap = 0 फुलस्क्रीन = 1 fps_display = pyglet.clock.ClockDisplay () डीईएफ़ on_draw ( डीटी): वैश्विक colorSwap glClear (GL_COLOR_BUFFER_BIT) # साफ़ रंग बफर glLoadIdentity () # रीसेट मॉडल-व्यू मैट्रिक्स glBegin (GL_QUADS) यदि colorSwap == 1: glColor3f (1.0, 0.0, 0.0) colorSwap = बाकी 0: glColor3f (0.0, 1.0, 0.0) colorSwap = 1 glVertex2f (window.width, 0) glVertex2f (window.width, window.height) glVertex2f (0.0, window.height) glVertex2f (0.0, 0.0) glend () fps_display.draw () @window। इवेंट डीएफ़ on_key_press (प्रतीक, संशोधक): ग्लोबल फुलस्क्रीन अगर प्रतीक == pyglet.window.key.F: यदि पूर्णस्क्रीन == 1: window.set_fullscreen (गलत) फ़ुलस्क्रीन = 0 अन्य: window.set_fullscreen (True) fullscreen = 1 elif प्रतीक == pyglet.window.key.ESCAPE: प्रिंट '' dt = pyglet.clock.tick () pyglet.clock.schedule_interval (on_draw, 0.0001) pyglet.app.run ()

No comments:

Post a Comment