游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6137|回复: 10

如何获取到d3d的zbuffer和stencil buffer的数据?

[复制链接]

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2008-11-12 10:05:00 | 显示全部楼层 |阅读模式
如何获取到d3d的zbuffer和stencil buffer的数据?

谢谢了

3

主题

53

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2008-11-12 13:24:00 | 显示全部楼层

Re:如何获取到d3d的zbuffer和stencil buffer的数据?

IDirect3DDevice9::GetDepthStencilSurface

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-11-13 20:56:00 | 显示全部楼层

Re:如何获取到d3d的zbuffer和stencil buffer的数据?

如果是d3d10的话就很容易,但如果是d3d9好像不太可能实现,DepthStencil的格式无法创建内存纹理,而渲染得到的DSBuffer又不能Lock,如何download数据是个问题

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-11-13 22:16:00 | 显示全部楼层

Re: Re:如何获取到d3d的zbuffer和stencil buffer的数据?

jk20012001: Re:如何获取到d3d的zbuffer和stencil buffer的数据?

如果是d3d10的话就很容易,但如果是d3d9好像不太可能实现,DepthStencil的格式无法创建内存纹理,而渲染得到的DSBuffer又不能Lock,如何download数据是个问题


DX9可以创建用于渲染的depth的纹理,用float元素的纹理
只有depth的格式也可以lock,用D3DFMT_D16_LOCKABLE或者D3DFMT_D32F_LOCKABLE
[em16]

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2008-11-14 12:13:00 | 显示全部楼层

Re:如何获取到d3d的zbuffer和stencil buffer的数据?

这个问题问的好,我前段时间也思考过这个问题.
很遗憾,获得不了.就算D16,D24可以lock,但在shader里也采样不了,其他格式既无法lock,也无法采样.所以想获得D.S的数据是不可能了,一般我们都用D24S8的格式.
Dx10.1可以做到采样depth..
opgl也可以做到.

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-11-14 14:12:00 | 显示全部楼层

Re: Re:如何获取到d3d的zbuffer和stencil buffer的数据?

月下临风: Re:如何获取到d3d的zbuffer和stencil buffer的数据?

这个问题问的好,我前段时间也思考过这个问题.
很遗憾,获得不了.就算D16,D24可以lock,但在shader里也采样不...


DX9里D16和D32可以render to texture, 然后作为texture在shader里采样,要不然shadow map怎么实现啊 [em20]

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-11-14 17:31:00 | 显示全部楼层

Re:如何获取到d3d的zbuffer和stencil buffer的数据?

To qrli
原来D16/D24还有这么多鬼名堂啊...我做ShadowMap都是直接创建R16F/R32F,然后直接在ps输出深度值,有时候心情好了还会直接输出相机空间的深度值,超大的那种,哈哈,反正是float又不是unorm,管它呢
想下还是d3d10好啊...连场景的DS都可以直接回读,Map也好,Shader也好...

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-11-14 19:03:00 | 显示全部楼层

Re: Re:如何获取到d3d的zbuffer和stencil buffer的数据?

jk20012001: Re:如何获取到d3d的zbuffer和stencil buffer的数据?

To qrli
原来D16/D24还有这么多鬼名堂啊...我做ShadowMap都是直接创建R16F/R32F,然后直接在ps输出深度值,有...

[em10]汗,我想表达的就是用R16F、R32F。D3DFMT_D16直接做texture普通显卡不支持,我的workstation倒是支持。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-11-15 14:38:00 | 显示全部楼层

Re:如何获取到d3d的zbuffer和stencil buffer的数据?

靠..你做什么工作的啊,居然还用WorkStation,不要告诉我说是个人兴趣啊,呵呵

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-11-15 21:27:00 | 显示全部楼层

Re:如何获取到d3d的zbuffer和stencil buffer的数据?

workstation不过是高端一点的PC,可以连续工作几个月也不会烧坏什么配件而已
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 21:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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