求教,关于Direct3D programming的一个问题。想要access zbuffer, 看MSDN, zbuffer format似乎只能用Format.D16Lockable(in C#), 可是我还想要用stencil buffer,于是只好把format设置成Format.D24S8.而且Format.D16Lockable并不为很多硬件支持。
要access zbuffer,是因为需要一个function,给定屏幕上任一点,要知道这个pixel在3D world里的坐标。
用stencil buffer,是为了产生一种类似于影子的效果。
vertex shader+pixel shader,或许可以?可是我现在对这两个东西一点儿都不了解。有人可以指点一二吗?
不懂Direct3D,但OpenGL里可以用gluUnproject做到
利用screen coordinate sx, sy, 读depth buffer中(sx,sy)的z值。然后用gluUnproject就可以得到world x,y,z