4

昨天我决定用 Java 和 Java3D 开始我的新模拟器项目。因为我在 Java 之前就已经编程过了,所以我可以直接从模拟器开始。现在我有点想我将如何处理这个问题,我直接绊倒了我的程序的最大部分:模拟器中的激光。

我想创造类似这些的激光(当然我一开始不会那么接近,但你明白了)

替代文字
(来源:wrzuta.pl

问题是,谁能给我一个粗略的解释如何解决这个问题?我浏览了 Java3D 的完整文档,但找不到创建此类内容的功能。只是一些起点已经很好了。

(如果有人为这种任务推荐不同的 3D API,也适用于 Java,请告诉我)

提前致谢,

威廉诉多恩案

4

3 回答 3

2

让我先说我在 Java3D 方面的经验非常有限。我玩过这些例子,但仅此而已。但是,许多规则适用于 3D 环境。

如果您在谈论静态图像:使用非常窄的锥体,添加颜色和透明度,可能是纹理以减少相对于锥体中心轴的距离的 alpha 分量。

如果您谈论的是动画场景,那就有点难了。你需要合成雾。Volumetrics 会为您提供令人难以置信的图像,但它的计算成本很高,而且我认为 Jave3D 不支持它。但是,如果您有一个对象是所有激光束的父对象,我认为您可以伪造它,并且 Java3D 将让纹理锚定到父对象并让子对象继承它。

更新 1:我将从半径非常小的圆锥体作为单光束开始。

于 2010-10-18T21:37:13.823 回答
1

使用 Alpha 纹理。拿你的多边形,把激光的“光束”涂成一个坚实的绿色边缘。在激光边缘之间放置带有 alpha 通道的绿色云纹理。

完成的。:-)

于 2010-10-20T09:57:29.637 回答
0

我对 Java 3D API 一点也不熟悉,但是当我快速浏览文档时,我偶然发现了LineArray。谷歌搜索这门课让我找到了一段示例代码,这让我相信它可能就是你要找的。除此之外,我强烈推荐jMonkeyEngine,它绝对支持 GL 行。希望这会有所帮助!

于 2010-10-25T08:25:46.003 回答