HLSL水折射着色器

时间:2014-01-02 00:33:36

标签: shader hlsl

我目前正在使用XNA(DirectX9)进行水渲染项目,我花了很多时间处理一个我不理解的问题。

在我的项目中,我渲染了一个代表水的地形和水平面。我正在尝试创建我将应用于此平面的折射纹理。为此,我使用了渲染目标,在渲染目标中,我渲染了水平面下的地形部分(在像素着色器操作期间,clipping =>进入我的HLSL文件)。我将此渲染目标转换为直接应用于水面的纹理。

我想要的结果与没有绘制水面的结果完全相同,我只是想看到水下的地形(目前没有光束偏差)。但就目前而言,我有一个非常奇怪的结果。我录制了一些视频给你看,它比任何解释都好:http://www.youtube.com/watch?v=XGesGvEnAEg

以下是HLSL折射文件的代码:https://gist.github.com/Noxalus/8213296

你知道问题出在哪里吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

可能是错的但是,在我看来它只是渲染一次&然后重复使用? (当你用蓝色的水面飞行时,看起来会变形,而不是刷新)?

您确定要更新每帧传递给折射着色器的纹理吗?