我想复制 BasicEffect 的雾方法以在我自己的着色器中使用,因此我不必声明一个基本效果着色器和我自己的。基本效果的 HLSL 代码在不久前与 XNA Creators Club 上的一个可下载示例一起发布,我认为所需的方法可以在该 HLSL 文件中找到。但是,我所看到的只是一个被调用的函数,但没有该函数的实际定义。调用的函数是:
ApplyFog(color, pin.PositionWS.w);
有谁知道定义在哪里以及是否可以自由接受。否则,任何关于如何复制它的效果的帮助都会很棒。
我从这里下载了示例。
谢谢。
编辑:仍然有问题。认为这与获得深度有关:
VertexToPixel InstancedCelShadeVSNmVc(VSInputNmVc VSInput, in VSInstanceVc VSInstance)
{
VertexToPixel Output = (VertexToPixel)0;
Output.Position = mul(mul(mul(mul(VSInput.Position, transpose(VSInstance.World)), xWorld), xView), xProjection);
Output.ViewSpaceZ = -VSInput.Position.z / xCameraClipFar;
那正确吗?Camera clip far 作为常量传入。