|
|

楼主 |
发表于 2005-4-6 17:29:00
|
显示全部楼层
Re: Re:请问 关于zbuffer
hourousha: Re:请问 关于zbuffer
用什么比较?CPU or PixelShader?
CPU的话那不用说了吧。
pixel shader的话,定点数格式文理的texel所表...
ok我的比较是在cpu进行的 ,先渲染一次场景,用一个surfase去lock得到的depthbuffer: g_pd3dDevice->GetDepthStencilSurface(&g_pSDepth);
然后把一个顶点vertex.pos投影出来
D3DXVec3Project(&pro,&vertex.pos,&g_pViewPort ,
&g_pmatp, &g_pmatv, &g_pmatw);
得到的pro的x.y对应到屏幕的象素坐标pro.z为其depth。
lock 那个surfase(包含depth信息)
D3DLOCKED_RECT LockedRect;
g_pSDepth-> LockRect(&LockedRect, NULL,0);
D3DSURFACE_DESC surfaceDesc;
g_pSDepth->GetDesc(&surfaceDesc);
word* imageData = (word*)LockedRect.pBits;
以pro的x.y索引到imageData[n] 以pro.z与imageData[n] 比较看vertex是否可见,但是由于pro.z是float而imageData[n]是word而无法比较 请问该如何操作? 关键是在程序中用cpu判断vertex是否可见 [em4] [em4] [em4] |
|