【问题标题】:3D Beam in XNA 4.0XNA 4.0 中的 3D Beam
【发布时间】:2013-02-23 09:39:29
【问题描述】:

我正在寻找一种在 XNA 4.0 中创建 3D 光束效果的方法。目前,我正在投射一条射线并绘制它,所以我有必需品,但我只需要图形。

我正在寻找类似于此人所要求的内容:

https://gamedev.stackexchange.com/questions/46912/how-to-make-a-3d-beam-effect-with-xna-4-0

我查看了作为对此问题的回复发布的链接:

http://www.catalinzima.com/samples/lightning-sample/

但是该实现仅适用于 2D,我要求它以 3D 呈现。我尝试在我的项目中使用它,但纹理有时不会以某些角度呈现。我看过广告牌,但我认为因为光束的来源靠近相机,而目的地很远,所以纹理会被拉伸很多。至于在上面的例子中使用广告牌,我不知道从哪里开始或如何工作。

我有点困惑我应该如何去做,如果有人能给我一些建议,那就太好了。

【问题讨论】:

    标签: 3d xna textures xna-4.0


    【解决方案1】:

    我在 3d 空间中通过对 2d 纹理进行广告牌制作了激光束,使得纹理的法线始终与从枪到相机的向量共面,另一个向量朝着激光枪指向的方向前进。这很容易。我制作了一个简短的视频来说明它是如何完成的:

    http://www.screencast.com/t/LDzD2NXOZ

    【讨论】:

      【解决方案2】:

      我解决这个问题的方法是使用一系列拉伸的“豹纹”风格纹理(在光束发射期间旋转/移动)渲染一个或多个圆柱体从光束源到光束目标,并应用模糊来给出它是一个柔软的边缘。

      如何实现所有这些实际上取决于一个人是否计划使用 High Def 或 Reach 配置文件。

      【讨论】:

      • 我使用的是高清配置文件,它适用于 PC,我也使用 Sunburn 框架。可以拉伸圆柱体吗?是否会使用 XNA/Sunburn 框架或其他方式应用模糊?
      • 如果您没有以编程方式构建圆柱体,因此无法指定圆柱体长度(即您使用的是网格),那么拉伸网格的最简单方法是在渲染时对其进行缩放它。 (即使用 ScaleTransform)我没有检查过,但如果有人已经为 Sunburn 引擎编写了模糊组件,我不会感到惊讶。
      • 非常感谢您的帮助。我会尝试以编程方式构建它们,看看我是怎么做的。
      猜你喜欢
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多