如何使用HLSL和DirectX 11进行激光效果?

时间:2016-06-09 13:04:05

标签: directx directx-11 hlsl

我仍在使用我自己的自定义游戏引擎开发我的科幻视频游戏。现在,我想在我的游戏和引擎中实现战斗系统。虽然我几乎一切都很清楚,但我想知道如何制作合适的激光束,如星球大战,星际迷航,巴比伦5等等。

我做了一些在线研究,但是我找不到合适的文章。我很确定我搜索了错误的关键字/标签。你能给我一些提示如何实现激光束等效果吗?我想,了解在线研究所需的正确技术或术语就足够了......

1 个答案:

答案 0 :(得分:6)

一种常见的方法是绘制三个(或更多)相交的透明平面,如果你原谅我粗略绘图:

1

然后它们中的每一个都具有相同的激光纹理,在顶部和底部边缘附近逐渐消失为黑色:

2

如果添加任何细微的细节,请记住根据光束的长度适当缩放纹理坐标并启用包装。

最后,最重要的是,使用仅显示面向相机的平面的着色器,同时以掠射角度消除这些平面,以隐藏我们使用相交平面并使光束看起来光滑的事实合理的。混合应该是添加剂。您还应该在梁的末端添加一些额外的效果,再次隐藏平面。