【发布时间】:2014-04-10 03:00:54
【问题描述】:
1) 重新绘制与绘制
有点哲学问题,但是...在不同分辨率下渲染游戏(2d,我了解 OGL 视角如何工作...)的“正确”或“可接受”方式是什么?我应该为我的图像(如 Android APK)包含单独的大小并在一个画布上绘制时单独调整每个对象的大小,还是应该在设置分辨率的绘图画布上绘制,然后将该图像调整到另一个显示画布上?我说的是一般性,但是,如果您需要我具体说明,我正在使用 Java 来构建引擎。
可预见的好处/问题:
#1) Resize at Draw
+ No additional drawing step
+ Sweet resolution
- Possible math/physics/placement issues
- Tons of math each step for scale
- Lots of resources
#2) Resize at Render
+ No additional math; one step
+ One set of images; smaller res. package
+ One set canvas size (easier to do math/phys./placement)
- Additional drawing step
- Poor resolution =(
从好处与问题的数量来看,#2 似乎是显而易见的选择,但是……是吗?是否有调整 2D 游戏大小的标准方法?
2) JOGL + Java2D + Java Swing
同时使用JOGL、Java2D、Java Swing会不会很麻烦?在 JOGL 中进行 2D 或布局是否值得?为什么或为什么不?
编辑:使用 BufferedImage 绘制并将 BufferedImage 渲染为相对于纵横比的面板大小在摇摆时效率非常低。显然最好立即绘制到面板,同时单独调整每个图像/元素的大小。不是我的第一个假设...
编辑 2:愚蠢的我...只是在任何其他操作之前缩放并将图形上下文转换为调整后的分辨率的大小。性能提升非常棒。这是问题的正确答案。绘制一次,以缩放/平移。 B)
【问题讨论】:
-
更新:我最终从头开始创建了一个 BufferedImage,它是原始分辨率的大小。然后我将该图像绘制到显示器的大小,一次。 B)
标签: java android swing opengl-es jogl