游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1603|回复: 3

D3DXCreate...Ex和D3DXCreate.....仅仅是高级的区别吗?

[复制链接]

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
发表于 2006-3-21 18:10:00 | 显示全部楼层 |阅读模式
D3DXCreateTextureFromFile()
D3DXCreateTextureFromFileEx()
两个仅仅是高级用法的区别吗?今天反复使用了这两个函数,有一个明显得感觉就是用D3DXCreateTextureFromFileEx()导入贴图Sprite绘制2D图像速度要比另外一个快很多,而且D3DXCreateTextureFromFileEx()占用的现存空间也要比另外一个大很多。


1.首先来看看两个占memory空间(暂不分显存/内存)
用D3DXCreateTextureFromFileEx()导入600K大小的PNG文件,只能导入4个,到的五个的时候就会产生D3DERR_OUTOFVIDEOMEMORY错误,但是D3DXCreateTextureFromFile()导入了16个PNG文件已然运行是正常的。

2.绘制速度
用D3DXCreateTextureFromFileEx()导入3个纹理,用Sprite切换绘制这3个纹理的时候速度非常快,感觉不到任何停顿;但是D3DXCreateTextureFromFile()导入3个纹理用Sprite切换绘制的时候,中间存在这明显的停顿,这是为什么呢?


-----------------------------------
游戏人的好论坛
http://www.dingge.com/forum/

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-3-21 19:30:00 | 显示全部楼层

Re:D3DXCreate...Ex和D3DXCreate.....仅仅是高级的区别吗?

创建方式中指定的资源管理模式不一样。

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2006-3-21 21:08:00 | 显示全部楼层

Re:D3DXCreate...Ex和D3DXCreate.....仅仅是高级的区别吗?

pool模式和usage模式不同

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
 楼主| 发表于 2006-3-22 17:30:00 | 显示全部楼层

Re:D3DXCreate...Ex和D3DXCreate.....仅仅是高级的区别吗?

今天又尝试了一下~~
D3DXCreateTextureFromFileEx()中pool 如果采用D3DPOOL_MANAGED 的话,就和D3DXCreateTextureFromFile()一样了,如果是D3DPOOL_DEFAULT的话,画面切换绘制的速度就会很快,但是就是加载纹理比较少
-----------------------------------------
显示完整伪代码如下:
D3DXCreateTextureFromFileEx(..................,&g_pTexture[从1到3])


渲染:
g_pSprite->Draw(g_pTexture, .......................);

按1键i=1渲染g_pTexture[1];
按2键i=2渲染g_pTexture[2];
按3键i=3渲染g_pTexture[3];



-----------------------------------
游戏人的好论坛
http://www.dingge.com/forum/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 23:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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