游戏开发论坛

 找回密码
 立即注册
搜索
查看: 13094|回复: 32

做2D游戏,看来得向ddraw靠拢..

[复制链接]

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2011-4-28 23:51:00 | 显示全部楼层 |阅读模式
成千上万张非2的次幂图片等着在游戏中显示,D3D麻烦就大了.我这号称双核独显的笔记本竟也不支持非2的次幂的图片创建..
除了显卡有特别限制,还有内存.....问题大了。.......
真没想到..........以为只在使用过滤模式等才会需要2的次幂,原来D3D从头到尾就是为3D服务的,就是为2的次幂的图片服务的...........
像做梦幻西游,大话西游2这种游戏,或许ddraw能拯救我....

总结:
1:兼容性使得D3D无法替代ddraw
2:若使用D3D来做2D,则以往很多实现方法将不再适用

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-29 01:41:00 | 显示全部楼层

Re:做2D游戏,看来得向ddraw靠拢..

no.directdraw靠不住。

向GDI靠拢,只有GDI不会出问题。

在内存中创建一个BMP,然后用扫描线方式对接上,这样绘图就和DIRECT DRAW一样了。
每次刷新时直接整个拷到DC上。如果BMP象素格式和当前显示模式一样,效能不比DIRECTDRAW差。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-29 09:01:00 | 显示全部楼层

Re: Re:做2D游戏,看来得向ddraw靠拢..

hyzboy: Re:做2D游戏,看来得向ddraw靠拢..

no.directdraw靠不住。

向GDI靠拢,只有GDI不会出问题。

在内存中创建一个BMP,然后用扫描线方式对接...


恩,前辈教训的是,我是有些不甘心,睡了一觉,醒来,还得做些妥协。就是内存多就让他多,再重新学ddraw,也不一定就现实。
请问一下,对于非2的次幂的图片,D3D果真就没有一种API函数可以实现既能让创建纹理不受显卡限制,又能实现内存不多不少的么??
我现在所知道的就是IDirect3DTexture、IDirect3DSurface9,另外还有一个Sprite,不过这个也需要创建一个IDirect3DTexture才行。
实在没有么?IDirect3DSurface9是否可以做到?

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2011-4-29 09:20:00 | 显示全部楼层

Re:做2D游戏,看来得向ddraw靠拢..

ddraw 做个缩放旋转都费劲,还不用说过滤方式了,D3D都是硬件帮你算,用ddraw再好的显卡都是垃圾。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-29 09:37:00 | 显示全部楼层

Re: Re:做2D游戏,看来得向ddraw靠拢..

Devil: Re:做2D游戏,看来得向ddraw靠拢..

ddraw 做个缩放旋转都费劲,还不用说过滤方式了,D3D都是硬件帮你算,用ddraw再好的显卡都是垃圾。


对于2D我不需要旋转和过滤,我的需求仅仅是显示出来就行,其他都不需要。在这种限定下呢?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-29 10:07:00 | 显示全部楼层

Re:做2D游戏,看来得向ddraw靠拢..

非2次幂是显卡问题,和D3D/OGL无关。

你要解决只能是自己创建更大的贴图来放,或是拆成多个贴图来做。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-29 10:13:00 | 显示全部楼层

Re: Re:做2D游戏,看来得向ddraw靠拢..

hyzboy: Re:做2D游戏,看来得向ddraw靠拢..

非2次幂是显卡问题,和D3D/OGL无关。

你要解决只能是自己创建更大的贴图来放,或是拆成多个贴图来做。


也就是说ddraw之所以能够不需要考虑图片2的次幂问题,就是因为他是纯CPU渲染的?没有使用硬件特性?
(渲染自然是在显卡进行,至少也是集显,不知道怎么说)

或者说若我的显卡不支持非2的次幂图片,就是说ddraw也帮不了我?

18

主题

116

帖子

218

积分

中级会员

Rank: 3Rank: 3

积分
218
发表于 2011-4-29 10:31:00 | 显示全部楼层

Re: Re: Re:做2D游戏,看来得向ddraw靠拢..

轩辕崇正: Re: Re:做2D游戏,看来得向ddraw靠拢..
也就是说ddraw之所以能够不需要考虑图片2的次幂问题,就是因为他是纯CPU渲染的?没有使用硬件特性?
(...

轩辕兄,DDraw要是纯CPU的话还叫什么DirectDraw啊? [em11]

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-29 10:35:00 | 显示全部楼层

Re: Re: Re: Re:做2D游戏,看来得向ddraw靠拢..

思月行云: Re: Re: Re:做2D游戏,看来得向ddraw靠拢..


轩辕兄,DDraw要是纯CPU的话还叫什么DirectDraw啊? [em11]


慢慢看吧,纹理创建这东西细弄起来,实在别有洞天。

18

主题

116

帖子

218

积分

中级会员

Rank: 3Rank: 3

积分
218
发表于 2011-4-29 11:19:00 | 显示全部楼层

Re: 做2D游戏,看来得向ddraw靠拢..

轩辕崇正: Re: Re: Re: Re:做2D游戏,看来得向ddraw靠拢..
慢慢看吧,纹理创建这东西细弄起来,实在别有洞天。

我之前倒是用托管版的DX写过一个简单的仿Xna框架,基于Sprite构建了类似于Xna中SpriteBatch的功能。
最初总是发觉显示出的纹理与原图片不同,像是被不自然的拉伸过,现在想来,应该就是轩辕兄说的这种问题吧?
我记得当时针对创建纹理的函数改了几个参数,就没这种现象了,老兄也可以尝试看看~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 05:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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