游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: bigbook2000

D3D下几种2D游戏制作方法的比较

[复制链接]

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2006-6-27 22:45:00 | 显示全部楼层

Re:D3D下几种2D游戏制作方法的比较

很久的帖子了,不过最近才碰到了这个问题,我谈谈我的看法,不知对不对。
1、VB模拟
2、ID3DXSprite
3、IDirect3DSurface9
楼主把三种方法都绘画一样多的次数,这样可能是ID3DXSprite 效率最高,但是一般在程序中IDirect3DSurface9 只会绘画一个大表面,而程序中会把不同的小表面绘画到一个大表面了。因此最后render的时候,只会绘画一个大表面。因此render的效率是IDirect3DSurface9高了n倍,而VB模拟和ID3DXSprite在每次渲染的时候,要不断的绘画小三角和小rect,才能得到最终的绘制效果。因此IDirect3DSurface9 在渲染的时候只是简单的把大表面present出来,而VB模拟和ID3DXSprite要花n个小rect,自然是IDirect3DSurface9 块很多倍啦。

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2006-6-28 13:57:00 | 显示全部楼层

Re:D3D下几种2D游戏制作方法的比较

我的看法是:当在绘制每时每刻都在变化的场景,如3D场景,vb+DrawPrimitive 比较适合,在绘制每时每刻都在变化的2d人物动画和2d横板地图,ID3DXSprite比较好,在绘画一些可能变化比较少的画面,如1秒到几分钟才变化一次的画面,如棋牌画面,则IDirect3DSurface9性能很出众。有同意的顶啊,不同意的也要顶,并且说出理由。

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2006-6-28 14:10:00 | 显示全部楼层

Re:D3D下几种2D游戏制作方法的比较

DrawPrimitive最快,楼主使用不当造成了效率低下。
d3dXsprite在连续绘制使用相同贴图时有优化,如果自己作优化没效果,还不如用这个。
UpdateSurface不能利用硬件特性,这个是返朴归真,没必要。

楼上的按需求来划分应用场合,是很不恰当的,无论何时,都尽量使用统一的接口。

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2006-6-28 14:48:00 | 显示全部楼层

Re:D3D下几种2D游戏制作方法的比较

你不觉得在每一次渲染中把一个内存表面直接present到屏幕 会比在每一次渲染中不断的Draw多个带texture的小三角形要快吗? [em24]

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2006-6-28 17:07:00 | 显示全部楼层

Re: Re:D3D下几种2D游戏制作方法的比较

comfortable: Re3D下几种2D游戏制作方法的比较

你不觉得在每一次渲染中把一个内存表面直接present到屏幕 会比在每一次渲染中不断的Draw多个带texture的小表面要快吗? [em24]

DrawPrimitive并不是直接画表面的
如果你用d3d的话建议你弄清楚纹理和表面的区别
以及硬件几何图形光栅化,填充象素等相关知识

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2006-6-28 18:25:00 | 显示全部楼层

Re:D3D下几种2D游戏制作方法的比较

表面我是写错了,现在改为三角形了,能说的详细一点和不要偏题好吗?我试了一下,在绘画一些可能变化比较少的画面,IDirect3DSurface9并不比DrawPrimitive的效率差,甚至更好。

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2006-6-28 18:53:00 | 显示全部楼层

Re:D3D下几种2D游戏制作方法的比较

不知所云,你拿这两个比本身就是错的。最后显示阶段 大家都是要直接操作内存的。
关键是前面drawprimitive光栅化的速度快,还是你自己memcpy快。
如果你能得到自己复制内存块速度快的结论,I 服了you 。

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2006-6-28 19:17:00 | 显示全部楼层

Re:D3D下几种2D游戏制作方法的比较

嗯,是drawprimitive光栅化的速度比memcpy快。但如果显卡比较差,gpu用尽了,使到drawprimitive要用到cpu和内存来光栅化,drawprimitive的硬件加速性能发挥不出来,那可能是与直接memcpy差不多吧或者要慢一点吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 20:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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