游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2537|回复: 5

如果仅用D3D来做 2D 游戏,该关闭哪些不必要的 3D 功能?

[复制链接]

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-5-12 19:06:00 | 显示全部楼层 |阅读模式
除了SetRenderState之外, 我还想问问在 2D 图像的绘制上有没有什么诀窍?

2D图像只有4个顶点, 比3D模型简单的多, 如果用顶点缓存似乎太浪费了...

总之, 用3D绘图的方式来绘制2D似乎太浪费了, 有种 "杀鸡焉用牛刀" 的感觉.

但是D3D在各个方面都比DirectDraw好的, 所以我打算用D3D来做2D.

8

主题

125

帖子

125

积分

注册会员

Rank: 2

积分
125
发表于 2009-5-12 20:10:00 | 显示全部楼层

Re:如果仅用D3D来做 2D 游戏,该关闭哪些不必要的 3D 功能?

可以去参考下HGE的SPRITE类,或者直接用ID3DXSPRITE,很方便~

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2009-5-13 09:17:00 | 显示全部楼层

Re:如果仅用D3D来做 2D 游戏,该关闭哪些不必要的 3D 功能?

不用顶点缓冲用啥?

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
 楼主| 发表于 2009-5-13 12:17:00 | 显示全部楼层

Re:如果仅用D3D来做 2D 游戏,该关闭哪些不必要的 3D 功能?

每4个顶点就建立一个VB显然不现实..

所以我有个想法: 先申请一块大的VB, 然后慢慢分配出去. 就像"内存池"一样.

使用XYZRHW就不能直接设置矩阵了, 所以我打算用vertex shader来进行矩阵变换. 毕竟用矩阵改变绘制坐标比直接锁定顶点要快些

当然, 这些都只是想法, 还没有实践过. 不知道我想的对不对

-------------------------------------------------------------
CEGUI 以及 HGE 的源代码我都看过了, 感觉它们的方法不太好.

虽然现在的电脑速度够快, 但是还是要想方设法来提高绘制速度啊..

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-5-13 12:47:00 | 显示全部楼层

Re:如果仅用D3D来做 2D 游戏,该关闭哪些不必要的 3D 功能?

ID3DXSPRITE 就是个垃圾

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2009-5-13 12:49:00 | 显示全部楼层

Re: 如果仅用D3D来做 2D 游戏,该关闭哪些不必要的 3D 功能?

flyue: 如果仅用D3D来做 2D 游戏,该关闭哪些不必要的 3D 功能?

除了SetRenderState之外, 我还想问问在 2D 图像的绘制上有没有什么诀窍?

2D图像只有4个顶点, 比3D模型简...


你用directdraw也是杀鸡用牛刀(3D显卡),而且没有好好利用牛刀(只用了3D显卡的2D功能,这效率不好)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 09:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表