0

我想在我的像素着色器中输出每个像素的实际相机距离。这意味着,结果应该(除了精度和夹紧的一些细微变化)不取决于近/远裁剪平面。

此外,一个正好位于近平面(并与之平行)的平面因此不应输出统一的结果,因为近平面中间的像素比边界上的像素更靠近相机。

如何计算像素着色器中每个像素的实际相机距离?(实际的着色器语言无关紧要)

4

2 回答 2

-3

您发送的相机位置是统一的。您将位置发送到可变的片段着色器。您可以对这些向量使用内置的距离函数。

它看起来像这样,但如果您不需要它,请不要使用 .w 使其过于复杂。

或者,将顶点位置乘以 ModelView 矩阵,然后使用 length() 。

于 2012-12-28T14:16:38.093 回答
-4

这是 Cg 中的示例http://developer.download.nvidia.com/shaderlibrary/packages/DepthColor.cgfx.zip

它是为 FX Composer 设置的,对于任何其他格式都应该很容易采用。

于 2012-12-30T10:58:30.590 回答