如何渲染大量贴图而不降低效率?我试下来只有6帧

Herro 2005-01-23 01:25:16
为了测试和学习,我写了下面的程序:

共7200个不相同的16x16大小的贴图,然后创建7200*2个三角形,组成一个长方形(80x90个小方块)。

每次SetTexture一个贴图,然后DrawIndexedPrimitive 2个三角形,因此要渲7200次。

最后在GF6800显卡试下来帧数只有6帧。


请问如何优化解决这个问题?
如果无法解决的话,那用3d做2d游戏岂不是很致命?我想2d游戏一屏至少要1000个地面贴图,然后特效,人物,装备,装饰物,差不多3000个。
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxc 2005-01-24
  • 打赏
  • 举报
回复
支持 happy__888([顾问团]寻开心) ( )
合并贴图,并且少做贴图切换!
chijingde 2005-01-24
  • 打赏
  • 举报
回复
共7200个不相同的16x16大小的贴图……

//呵呵,显卡会跟你急的

我想2d游戏一屏至少要1000个地面贴图

//你想错了,2D游戏的贴面贴图来来回回的其实就那么几张

IO_X 2005-01-24
  • 打赏
  • 举报
回复
频繁切换设备状态很耗时,游戏中一般不会出现这样的状况的。
一个屏幕会出现几千个完全不同的图片?建议考虑图元剔除的算法...
寻开心 2005-01-23
  • 打赏
  • 举报
回复
合并成几个大的512*512的贴图来使用呗(32*32个16*16的贴图合并)
三角形也不必那么多啊,根据贴图的大小来合并

对于显示卡来说,频繁更混texture浪费的性能最大
freedrom 2005-01-23
  • 打赏
  • 举报
回复
全部移动内存中,
使用传统的DDA贴图方法,
然后传回现实。
littlepig_2002 2005-01-23
  • 打赏
  • 举报
回复
1 小贴图合并成大贴图, 这样只需要少量的SetTexture, 少向显卡输送纹理.
另外几千个三角形不至于让机器的速度下降这么快. 一万个三角形都不会太多.
是不是纹理切换太多的原因?

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧