我有一个基于水平的游戏,它使用平铺引擎来呈现这些关卡。有很大一部分的层面像地面和天空一样保持静止。
我曾经想过将地面和天空从瓦片数据预渲染到渲染纹理,并且只画出每一帧而不是每帧画出一堆预制图。
整个关卡在任何时候都是可见的,所以对于不会被绘制的东西没有任何关注。
我可以看到渲染纹理的唯一缺点是,它占用了内存空间(虽然是图形的),而预制件很小并且在整个地方复制。
有什么更好?预先绘制整个事物,或者只是绘制所有预制件的每一帧?预绘制我的关卡的静态部分
1
A
回答
0
瓷砖贴图的重点在于,您可以多次重复使用图像的某些部分,从而节省内存,并且在大多数情况下,渲染速度更快。由于您很可能会在地图上移动物体,因此无论如何您都需要在每一帧中渲染地面和天空图像,否则,您将在任何地方都产生残像!测试这个最简单的方法是尝试两种方法,并使用工具来了解每种方式如何影响速度,内存和电池寿命。
我玩过两种方式,我发现瓷砖地图对于背景图像来说大部分效率更高,但它们要维护起来要困难一些。
我的一般经验法则是,如果我的背景中有一堆部分可能是重复的瓷砖,而瓷砖的大小大约是整个图像大小的50%或更少,我实现瓷砖地图。否则,我只是使用图像。另外一点需要注意的是,如果你的天空全是一种颜色,并且在任何地方都没有区别,那么我发现最好的办法是拍摄一个1像素的图像(或者白色像素,它的颜色是你的天空的颜色!)并将其缩放到合适的尺寸。这很容易维护,并且在速度,内存和电池寿命方面很容易,但是您确实牺牲了细节。
希望有助于!
相关问题
- 1. Box2dweb绘制静态线
- 2. CGImage的绘制部分
- 3. 绘制圆的一部分
- 4. 分享静态库的一部分
- 5. LinqSql部分类的静态方法
- 6. 更新部分的静态UITableView
- 7. Android Google Map v2绘制静态网格
- 8. 用python绘制静态曲线
- 9. 在Pyqt Widget上绘制静态线
- 10. 绘制圆圈Google静态地图
- 11. 如何绘制部分?
- 12. 线部分未绘制
- 13. drawBitmap()绘制假部分
- 14. cmake如何部分静态链接,部分动态链接?
- 15. 如何绘制椭圆的一部分?
- 16. 围绕NSString的一部分绘制框
- 17. 仅绘制Highcharts中的部分数据
- 18. 仅绘制Drawable/Bitmap的一部分
- 19. 没有部分绘制线条的TextView
- 20. 在JPanel的一部分中绘制而不重绘其余部分
- 21. OpenGL中绘制函数的范围中的静态变量?
- 22. 用PowerMockito部分嘲弄静态
- 23. 只绘制QwtCurve的一部分实时绘图
- 24. 最佳方法动态绘制静态图像没有预先定义的大小
- 25. 给定状态空间上的静态部分降阶
- 26. Chart.js动态重绘部分背景
- 27. 如何在静态文本上绘制半透明的矩形?
- 28. OpenGL是更好的批量绘制或具有静态VBOs
- 29. 在Java中绘制静态图像的最快方法
- 30. 卡桑达静态会话?