7

我想做软水。所以我制作了一个渲染目标来保持场景的深度,然后我渲染水几何。

并让水alpha = ( SceneDepth - WaterDepth ) * Scale

看着下面这张图的结果,水的边缘变软了,但看起来很奇怪,就像梯子一样。

那么怎么处理呢?

非常感谢!

水阿尔法

4

1 回答 1

1

我最近一直在研究类似的问题。

我使用透明度来软化水的边缘。

为了利用水的深度来确定 alpha 值,我使用 HLSL平滑步长钳位函数返回介于 0.75f 和 1.0f 之间的不透明度值:

// colour can be whatever your lighting equations compute
float3 colour = (r, g, b); 

if ( SeaDepth <= 0.2f )
    discard;

float opacity = clamp( 
    smoothstep( 0.f, 12.f, SeaDepth  ), 
    .75f, 1.f
);

return float4(colour.xyz, opacity);
于 2013-08-24T03:21:23.657 回答