想要在某页(Surface)做为渲染对相页(RenderTarget)时,在 hlsl的ps中直接取得这页中指定贴图坐标上的颜色值。
如下
void PixShadow( float2 texCoord: TEXCOORD0, out float4 Color : COLOR )//输出颜色灰度{   //在此想取得RenderTarget页 中texCoord坐标上,已经存在的颜色
   float4 colRT = ?;
   if(colRT.r>0.5)
      Color = tex2D( g_samTex, texCoord);
   else
      Color =0;
 
}

解决方案 »

  1.   

    从阴影贴图中读取深度值的方法,可以参考DX SDK中ShadowMap的例子,基本的思路就是用渲染阴影贴图时的矩阵再把顶点什么的渲染一遍,所以可能把这部分计算放在顶点着色器里面比较有效率。
    有篇叫《Shadow Map在DirectX9.0 SDK Sample  的实现方法》的文章,你可以找了参考一下:http://dev.gameres.com/Program/Visual/3D/ShadowMap.mht
      

  2.   

    up.
    想到了自己曾经学HLSL的那个痛苦