我正在使用pyglet(OpenGL)庫,我希望能夠在不更改窗口大小的情況下更改虛擬分辨率。例如,一個2x2盒子將在屏幕上繪製爲4x4像素。我知道我可以找到所有正在繪製並逐個縮放的東西,但這可能會很昂貴。 我無法找到這個在線的解決方案(如果它甚至存在),所以任何幫助將不勝感激。澄清:我正在考慮大多數遊戲的分辨率設置。窗口以相同尺寸保持全屏顯示,但比例發生變化。Pyglet中的比例分辨率
2
A
回答
1
說明:我正在考慮大多數遊戲的分辨率設置。窗口以相同尺寸保持全屏顯示,但比例發生變化。
不,確實變化的大小,由於屏幕分辨率改變的窗口,該窗口如下。
然而,你打算完全可能做到這一點:首先將你的圖像渲染爲所需較小尺寸的FBO,然後渲染該FBO的內容覆蓋整個窗口。在3D引擎使用某種形式的後期處理(如景深,色彩分級,合成效果)的情況下,這實際上是免費的。
4
您需要導入的openGL以訪問縮放功能:
from pgylet.gl import *
接下來,拋在下面的代碼你的遊戲的窗口已被初始化後:
#These arguments are x, y and z respectively. This scales your window.
glScalef(2.0, 2.0, 2.0)
此時你分辨率將翻倍,但您的窗口將保持相同的大小。您可以通過將窗口的寬度和高度加倍來輕鬆修正此問題。此外,你的紋理會顯得模糊,所以我們需要修復它。我們需要設置紋理參數在on_draw()函數:
def on_draw(self):
self.clear() #clears the screen
#The following two lines will change how textures are scaled.
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)
self.label.draw() #blits the label to the screen
您現在應該有雙原始大小顯示像素。
相關問題
- 1. pyglet屏幕分辨率變成變量
- 2. 分辨率和寬高比
- 3. 默認分辨率比我的設備
- 4. 圖像保存點位置的比例分辨率
- 5. 不同分辨率的統一UI縮放比例
- 6. 根據分辨率通過FollowHyperlink事件調整縮放比例
- 7. 使用opencv增加圖像比例和最大化分辨率?
- 8. 網站分辨率修復Javascript中的所有分辨率
- 9. RawInput分辨率
- 10. 多分辨率
- 11. WinForm分辨率
- 12. WPF中的分辨率
- 13. CentOS中的低分辨率
- 14. 用於超分辨率的Tensorflow的可變分辨率
- 15. 支持多種分辨率時的分辨率與尺寸
- 16. Unity中級聯分辨率
- 17. 屏幕分辨率
- 18. 重載分辨率
- 19. 屏幕分辨率
- 20. 分辨率1280 * 1024
- 21. Java BufferedImage分辨率
- 22. 圖標分辨率
- 23. 屏幕分辨率
- 24. 多屏分辨率
- 25. 屏幕分辨率
- 26. iPhone 4分辨率
- 27. 歧義分辨率
- 28. 屏幕分辨率
- 29. 依靠分辨率
- 30. 嵌套分辨率
「我正在考慮大多數遊戲的分辨率設置。」遊戲中的分辨率設置會更改顯示器顯示的分辨率。對於全屏遊戲,這會改變*桌面*分辨率。 – 2011-12-19 02:50:23