游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4414|回复: 12

D3D读入纹理的时间好长,请问大家是怎么处理的??

[复制链接]

10

主题

36

帖子

42

积分

注册会员

Rank: 2

积分
42
发表于 2008-1-21 13:14:00 | 显示全部楼层 |阅读模式
我用direct show对高清进行解码,得到1920*1080的图片
每解一张图片就把图片读入 texture
然后贴到4个顶点上

所有操作都相同,只用GDI替换了D3D

结果GDI花了56秒完成了一个视频播放,D3D花了64秒完成了。

D3D我只进行了最简单的操作:
output.Color = tex2D(Samp0, input.uvCoords);

不知道读入纹理是不是有一定的规则的???按照那规则读入就会比较快??

8

主题

390

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2008-1-21 16:23:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

这么来:
0:CreateTexture,指定D3DUSAGE_WRITEONLY,D3DPOOL_DEFAULT
1:decode HD Video,以rgb形式保存在某内存位置。
2:lock texture
3:将内存中的rgb数据一次写入video ram。
3:unlock.
4:draw quad.
5:再重复1-4

10

主题

36

帖子

42

积分

注册会员

Rank: 2

积分
42
 楼主| 发表于 2008-1-21 17:45:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

我就是这样做的。。。。。

不过还是谢谢这么热心的朋友

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-1-21 18:57:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

做测试啊,先找出到底那一步操作造成了瓶颈,然后再分析怎么做。

2

主题

683

帖子

687

积分

高级会员

Rank: 4

积分
687
发表于 2008-1-21 19:53:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

微软dshow里面有个例子。那个应该是最高效的代码。

10

主题

36

帖子

42

积分

注册会员

Rank: 2

积分
42
 楼主| 发表于 2008-1-21 21:17:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

如果用于普通的D1分辨率,现在的方法足够快了!
个人感觉是纹理读入的时间太长了吧?
effect里面增加更加复杂的操作都没有影响测试的时间。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2008-1-21 22:31:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

把创建 texture 和填充数据的代码贴出来看看。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-1-21 23:53:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

你是不是把mipmap打开了,默认状态CreateTexture会自动为纹理创建mipmap

10

主题

36

帖子

42

积分

注册会员

Rank: 2

积分
42
 楼主| 发表于 2008-1-22 09:13:00 | 显示全部楼层

Re:D3D读入纹理的时间好长,请问大家是怎么处理的??

D3DXCreateTexture(g_pd3dDevice,1920,1080,1,0,D3DFMT_A8R8G8B8,D3DPOOL_MANAGED,&quadTexture0)

我是这样写的。。。。(网上拷的。。)

然后
1、quadTexture0->LockRect(0, &d3dlr, 0, D3DLOCK_DISCARD);
2、拷贝数据
3、quadTexture0->UnlockRect(0);
4、g_pEffect->SetTexture(Tex0Handle, quadTexture0);
5、g_pEffect-&gtass(0);
6、g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);       

0

主题

275

帖子

676

积分

高级会员

Rank: 4

积分
676
发表于 2008-1-22 09:51:00 | 显示全部楼层

Re: D3D读入纹理的时间好长,请问大家是怎么处理的??

重?在 1920*1080

那???2048*2048 的?理 所以?慢了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 21:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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