游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2587|回复: 6

求:类似于StretchRect的材质拷贝算法

[复制链接]

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2006-8-5 22:14:00 | 显示全部楼层 |阅读模式
有人试过写把IDirect3DTexture9材质的一个矩形区域内的画面复制到另外一个IDirect3DTexture9材质的一个矩形区域的方法吗,类似于
HRESULT IDirect3DDevice9::StretchRect(
  IDirect3DSurface9 * pSourceSurface,
  CONST RECT * pSourceRect,
  IDirect3DSurface9 * pDestSurface,
  CONST RECT * pDestRect,
  D3DTEXTUREFILTERTYPE Filter
);
不过现在换为:
HRESULT StretchRect(
  IDirect3DTexture9* pSourceTexture,
  CONST RECT * pSourceRect,
  IDirect3DTexture9* pDestTexture,
  CONST RECT * pDestRect,
  D3DTEXTUREFILTERTYPE Filter
);
[em19] [em19] [em19]

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-5 22:50:00 | 显示全部楼层

Re:求:类似于StretchRect的材质拷贝算法

这个很简单的,用CPU的方法就不说了,太多了
用GPU的话就创建一个矩形,设定纹理坐标(SrcTexture)和大小,然后渲染到DestTexture

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2006-8-6 01:22:00 | 显示全部楼层

Re:求:类似于StretchRect的材质拷贝算法

请问用IDirect3DTexture9:ockRect,
IDirect3DTexture9::UnlockRect 做是CPU方法还是GPU方法?CPU方法和GPU方法的原理都是一样的吧,只是在创建纹理的时候用的是D3DPOOL_DEFAULT 还是 D3DPOOL_SYSTEMMEM的区别吧?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-6 09:52:00 | 显示全部楼层

Re:求:类似于StretchRect的材质拷贝算法

Lock当然是CPU了,原理还是有略微区别的,至少用GPU的速度比CPU快太多了

12

主题

76

帖子

76

积分

注册会员

Rank: 2

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

Re:求:类似于StretchRect的材质拷贝算法

jk20012001大侠,能不能说说GPU方法的原理和所用到的dx函数?强烈期待中。。。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-6 11:59:00 | 显示全部楼层

Re:求:类似于StretchRect的材质拷贝算法

这个很简单的,原理就是把设置Dest为RenderTarget,然后把Src贴到一个矩形上,通过限定纹理坐标和矩形大小,把这个矩形DrawPrimitive到Dest贴图就可以了
具体的去看看Render To Texture方法

12

主题

76

帖子

76

积分

注册会员

Rank: 2

积分
76
 楼主| 发表于 2006-8-6 15:46:00 | 显示全部楼层

Re:求:类似于StretchRect的材质拷贝算法

明白了,谢谢!!!!!!!!................
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 02:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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