小编Jar*_*red的帖子

C#/HLSL & XNA - 通过 HLSL 中的百分比将 2 种颜色混合在一起

我在我的 Effect 文件中创建了一个雾功能..在像素着色器中,我计算了相机位置和输入位置的距离,如下所示:

    float x = distance(_in.pos3d, CameraPosition);
float fd;
if(Fog)
{
    if(x > FogDistance)
        fd = ((x-FogDistance) * FogIntensity > 100) ? 100 : ((x-FogDistance) * FogIntensity);
    //_in.color = ???;
}
Run Code Online (Sandbox Code Playgroud)

其中:x 是相机位置和顶点位置的距离,fd 是雾颜色的百分比,FogDistance 是物体不受雾影响的距离,FogIntensity 是雾的强度。

我想要的是一种包含 (fd %) 雾色的颜色。例如,如果雾颜色为橙色,输入为白色,fd 为 25%,则生成的颜色将为白色 + 25% 橙色。

编辑:顺便说一下,对于无法维护的设置代码,我深表歉意。

编辑 2:我注意到有两个透明层有一个透明的结果,所以我稍微清理了这个问题。顶点输入没有百分比。

c# xna colors hlsl fog

2
推荐指数
1
解决办法
4384
查看次数

C#/ XNA/HLSL - 如何创建景深?

我正在尝试创建一个景深后期处理,但不知道从哪里开始(除了渲染深度图,我目前正在).它的所有教程都是针对XNA3.1,实际上没有给你解释,或者是书的一部分.

那么,您是否可以通过详细的逐步过程来了解DOF的呈现方式?

c# xna hlsl

0
推荐指数
1
解决办法
1811
查看次数

标签 统计

c# ×2

hlsl ×2

xna ×2

colors ×1

fog ×1