游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1948|回复: 1

怎样渲染深度通道?

[复制链接]

21

主题

39

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2011-5-31 09:02:00 | 显示全部楼层 |阅读模式
我想把zbuffer渲染到一个纹理中,以便在hlsl中使用,我是这么写的
LPDIRECT3DTEXTURE9  g_depth1=NULL;
LPDIRECT3DSURFACE9;
hr=g_pd3dDevice->CreateTexture(512,256,1,D3DUSAGE_DEPTHSTENCIL,D3DFMT_D16,D3DPOOL_DEFAULT,&g_depth1,NULL);
g_depth1->GetSurfaceLevel(0,&Dsurf1);
……
hr=g_pd3dDevice->SetDepthStencilSurface(Dsurf1);
g_pd3dDevice->Clear(0,NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,D3DCOLOR_ARGB(0,0,0,0),1.0f,0);

为来查看,再退出程序时加了保存纹理
D3DXSaveTextureToFile("d1.JPG", D3DXIFF_FORCE_DWORD,g_depth1,NULL);

但是这样并没有存出任何位图文件。
在hlsl中用tex3d对深度纹理的查询作为返回颜色,也是一片白色。。活着一堆条纹。


所以,想问下,上面的步骤哪里有问题啊?
如何保存深度通道为位图文件呢,如jpg

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-6-4 15:52:00 | 显示全部楼层

Re:怎样渲染深度通道?

如果是我,会把一个tex作为render target,然后通过shader来把z值写入这张tex。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 14:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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