游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2885|回复: 5

[请教]如何获得DirectX中的深度值

[复制链接]

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2008-6-15 11:39:00 | 显示全部楼层 |阅读模式
假设已经知道Device中的深度格式为D3DFMT_D16,通过GetDepthStencilSurface获得了一个含有深度信息的Surface,如何才能获得各个像素对应的Zbuffer?
请各位大侠赐教

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2008-6-15 11:49:00 | 显示全部楼层

Re:[请教]如何获得DirectX中的深度值

通过D3DXLoadSurfaceFromSurface把显存中的Surface复制到内存中,之后才能Lock,读取

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2008-6-15 12:13:00 | 显示全部楼层

Re: [请教]如何获得DirectX中的深度值

能仔细解释一下吗,dest Surface应该怎么创建?
我用CreateOffscreenPlainSurface创建或者CreateDepthStencilSurface的到的surface做dest调用D3DXLoadSurfaceFromSurface都失败,不知是什么原因,D3DLoadSurfaceFrimSurface是不是只能处理Texture呢

DestSurface 的Format应该是什么,D3DFMT_D16_LOCKABLE还是D3DFMT_A8R8G8B8之类的颜色呢?

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2008-6-16 13:45:00 | 显示全部楼层

Re: [请教]如何获得DirectX中的深度值

[em22]忘记掉了。
http://forum.beyond3d.com/archive/index.php/t-3408.html
http://www.gamedev.net/community/forums/topic.asp?topic_id=296437

1

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2008-6-16 16:27:00 | 显示全部楼层

Re:[请教]如何获得DirectX中的深度值

或者把深度render成texture,好像可以,有大侠知道具体的方法吗?我只想在EndScene()之后获得Backbuffer对应的各个像素对应的深度

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2008-6-16 22:02:00 | 显示全部楼层

Re:[请教]如何获得DirectX中的深度值

前不久做过shadowmap在shader里面搞过,浮点格式深度还真是很讨厌,搞个alpha测试都麻烦
固定管线就不是很清楚了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 06:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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