|
发表于 2008-3-9 21:20:00
|
显示全部楼层
Re:OGRE中如何渲染一张当前场景的DepthMap?
//AdaptDepthVS.cg
//取得顶点的深度值,并且插值到PS中去
uniform float4x4 modelViewProj : state.matrix.mvp;
uniform float farclip; //远裁剪面距离
void main(float4 inPos : POSITION,
out float4 oPos : POSITION,
out float oDepth : TEXCOORD0)
{
float4 OutPos;
oPos = OutPos = mul(modelViewProj, inPos);
oDepth = OutPos.w / farclip;
}
//AdaptDepthPs.cg
//将插值的深度转换成颜色
//白色越近,黑色越远。
void main(float4 inDepth : TEXCOORD0,
out float4 color : COLOR0)
{
float depthColor = inDepth.r;
color = float4(depthColor, depthColor, depthColor, 1.0);
}
|
|