中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 1755|回复: 5

DIRECT3D9 保存深度图

[复制链接]
发表于 2017-2-6 10:25:37 | 显示全部楼层 |阅读模式
小弟接触D3D10/11/12小半年时间,如今由于需要,特发此贴寻求帮助。

D3D9中,我想保存出深度图,已知深度格式中只有D3DFMT_D16_LOCKABLE是lockable的,那对于其他的format我应该怎么做才能将深度surface保存为dds格式的文件呢?

请大家帮帮忙~
 楼主| 发表于 2017-2-7 10:10:33 | 显示全部楼层
自己顶一下,大哥大姐们帮帮忙啊。

直接使用D3DXSaveSurfaceToFile会返回0xdeadbeef。
若先调用D3DXLoadSurfaceFromSurface则会返回0x8876086c。

发表于 2017-2-7 10:47:02 | 显示全部楼层
 楼主| 发表于 2017-2-8 09:19:19 | 显示全部楼层
mayingzhen 发表于 2017-2-7 10:47
用INTZ格式
http://aras-p.info/texts/D3D9GPUHacks.html#depth

谢谢您的回复,但是INTZ好像是DX10之上可用的,读过之后我也不是太懂。
发表于 2017-2-8 15:55:53 | 显示全部楼层
ZBHWMM520 发表于 2017-2-8 09:19
谢谢您的回复,但是INTZ好像是DX10之上可用的,读过之后我也不是太懂。

D3D9用的,CreateTexture 传的 Format用 ((D3DFORMAT)(MAKEFOURCC(‘I’,’N’,’T’,’Z’))) Usage 用D3DUSAGE_DEPTHSTENCIL,创建出来的Texture可用用来SetDepthStencilSurface。
 楼主| 发表于 2017-2-8 16:05:44 | 显示全部楼层
mayingzhen 发表于 2017-2-8 15:55
D3D9用的,CreateTexture 传的 Format用 ((D3DFORMAT)(MAKEFOURCC(‘I’,’N’,’T’,’Z’))) Usage 用D ...

我现在想将其他不能lockable的深度format存到dds文件中,想法是
a.建立一个lockable的surface;
b.再将不能lock的深度surface拷贝到a中建立的surface;
c.对a中的surface进行lock,再进行保存。
可我现在不知道用那几个接口,试了几个总是返回无效调用,不知道是我的想法错了还是我调用错了?
您能给指条明路吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|小黑屋|Archiver|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-4-22 20:38 , Processed in 0.040970 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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