用Format.D24S8 不好吗?if you want to dabble with HLSL, you can try the simplest case of using shadow mapping
1. write a vertex shader that computes the depth value of each pixel from the light's point of view and store the result in a shadow map
2. write a pixel shader that uses that shadow map
based on what you described, you should know in theory how it works. the HLSL implementation is merely implmentation and should be described from some online tutorials.
你说的是"Shadow Z-buffer" algorithm吗?
用Format.D24S8,已经可以做成影子效果了,我用的是Shadow Volume,觉得这个比较简单,而且比较适合我的情况。(并不是真的影子,而是类似于影子)。
问题是我想知道任何一个Pixel的三维坐标。
用HLSL,我觉得应该是Vertex Shader把depth value传给Pixel Shader(间接的,经过interpolation).可是Pixel Shader怎么告诉我的application呢?看了一些HLSL的资料,还是一头雾水。按照我的理解,Pixel Shader只能往Frame Buffer和Depth Buffer里写数据。那么难道我每次想要求点的坐标时,都要用HLSL重新Render一遍,把depth value写到Frame Buffer里吗?
或许我理解错你的意思了,可以详细解释一下吗?
很感谢帮我。
问题是我想知道任何一个Pixel的三维坐标。
用HLSL,我觉得应该是Vertex Shader把depth value传给Pixel Shader(间接的,经过interpolation).可是Pixel Shader怎么告诉我的application呢?看了一些HLSL的资料,还是一头雾水。按照我的理解,Pixel Shader只能往Frame Buffer和Depth Buffer里写数据。那么难道我每次想要求点的坐标时,都要用HLSL重新Render一遍,把depth value写到Frame Buffer里吗?
或许我理解错你的意思了,可以详细解释一下吗?
很感谢帮我。