使用Java3D /其他3D API创建“激光灯”

时间:2010-10-16 08:52:29

标签: java api graphics java-3d light

昨天我决定用Java和Java3D开始我的新模拟器项目。因为我已经编程了Java之前它是一个很大的优点,我可以直接从模拟器开始。现在我有点想着我将如何处理这个问题,而且我直接偶然发现了程序的最大部分:模拟器中的激光器。

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

alt text http://c.wrzuta.pl/wi3928/68d3307a00283a1b475b370b/0/lasershow

问题是,有人能给我一个粗略的解释如何处理这个问题吗?我浏览了Java3D的完整文档,但是我找不到创建这样的东西的功能。只是一些起点已经很好了。

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

提前致谢,

William v.Doorn

3 个答案:

答案 0 :(得分:2)

让我先说一下我的答案,说我对Java3D的经验非常有限。我玩过这些例子,但就是这样。但是,许多规则适用于3D环境。

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

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

更新1 : 我会从一个半径非常小的Cone作为单个光束开始。

答案 1 :(得分:1)

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

成品。 : - )

答案 2 :(得分:0)

我对Java 3D API并不熟悉,但是当我快速查看文档时,我偶然发现了LineArray。谷歌搜索这个课程让我a piece of example code,这让我相信它可能是你在寻找的。除此之外,我强烈推荐jMonkeyEngine,它肯定支持GL线。希望这有帮助!