游戏开发论坛

 找回密码
 立即注册
搜索
查看: 12401|回复: 14

最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

[复制链接]

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2006-8-7 15:07:00 | 显示全部楼层 |阅读模式
经过多次测试,发现IDirect3DSurface9+StretchRect+GetBackBuffer 的渲染方法并不比IDirect3DTexture9+ID3DXSprite或IDirect3DTexture9+DrawPrimitive慢,不少人认为IDirect3DSurface9只是内存操作的看法是有错误的,因为IDirect3DSurface9是可以创建在显存的,并且能够用StretchRect用GPU把它复制到显卡的离屏表面。
以上理论各位有同意的或不同意的欢迎进来讨论。
[em16] [em16] [em16]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-8-7 16:02:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

...没明白楼主想说什么- -;
你不用Texture怎么给一个模型设置贴图捏- -;

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2006-8-7 16:24:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

说的不是3D的东西,Surface没有提供大量的3D函数,说的是2D的,用3d主要还是用IDirect3DTexture9。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-8-7 16:34:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

主要是你的这句话:

不少人认为IDirect3DSurface9只是内存操作的看法是有错误的

没有人会这样认为,大部分情况下我们用surface是为了设置rendertarget,而rendertarget则肯定是在显存中的。

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2006-8-7 17:07:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

“没有人会这样认为”?还是"不少人认为"的问题,只是以上观点的枝节的东西,各人经历不同会有不同的看法,我不想多辩,我看过不少人有这种看法:举个例子:http://bbs.gameres.com/showthread.asp?threadid=57631
看8楼lights的贴子:


lights
Exp:1004

中士
  发表于: 2006-6-28 14:15:00 博客 | 档案 | Email | 短信 | 树状 | 收藏 | 编辑 | 删除 | 引用   


--------------------------------------------------------------------------------
Re:[请教]用d3d绘画2d的东西3种选择的比较

楼上的是错的。一个DrawPrimitive就够了。D3DXSprite就是给轻量级用户使用的,他的内部实现就是DrawPrimitive,他作了一些优化,自己优化完全可以超越他的效率。

surface实际是内存操作,无法利用硬件特征,是很落后的方式,几乎可以不用考虑。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-8-8 10:02:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

刚看完你给的链接,楼主还需要多学学的说。

首先效率上用drawprimitive和stretchrect是一样的,从texture也有GetSurfaceLevel来获取一个surface。

从可用性上讲,假设你想实现alphe blending或者普通的rotation,你怎么实现?

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2006-8-8 11:02:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

高手们在参与讨论的时候,也请看看可不可以解决一下如下问题,看一下如下帖子,简单比划几句就行了:
http://bbs.gameres.com/showthread.asp?threadid=61070

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2006-8-8 16:13:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

ID3DXTexture内部不也用Surface对象来进行操作的么?.....为什么会认为surface和texture之间的要进行性能比较呢?

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2006-8-8 16:55:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

ID3DXTexture 是IDirect3DSurface的封装吗?ID3DXTexture 内部实现是封装了IDirect3DSurface并提供更多的接口函数吧。无怪乎我用ID3DXTexture总是比用IDirect3DSurface多耗了几百k内存,cpu占有率又多了一点点,而且改写ID3DXTexture的时候还多了GetSurfaceLevel这一步才可以改写ID3DXTexture,而IDirect3DSurface可以直接用StretchRect来写。看来用IDirect3DSurface是更直接贴近硬件的方式喔。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-8-8 18:05:00 | 显示全部楼层

Re:最新发现IDirect3DSurface9的性能可媲美IDirect3DTexture9

楼上的心态有问题,及时纠正吧。
不懂不要紧,不懂还要装懂就麻烦了。

你都用d3d了,还要改texture的内容干嘛?要改自己上个pixel shader改去,非要lock/unlock出来改,这就叫拿根筷子但牙签使,当然不好使了。

至于你说的几百k内存,cpu占用率多一点点,纯熟放屁。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 20:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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