2010-10-16 41 views
4

昨天,我决定开始与Java和Java3D的我的新的模拟器项目。由于我已经对Java进行了编程,所以它是一个很大的优势,我可以直接从模拟器开始。现在我有点想着如何处理这个问题,而我直接遇到了麻烦,而且我的程序的最大部分是:模拟器中的激光器。创建“laserlights”与Java3D的/其他3D API

我想创建一个类似于这些激光器(当然我永远不会进来之初即接近,但你的想法)

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

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

(如果有人建议这样的任务,这也是Java的不同的3D API,请告诉我)提前

感谢,

威廉诉多伦

回答

2

让我通过说我在Java3D方面的经验非常有限,我的答案在前言。我已经玩过这些例子,但就是这样。但是,许多规则适用于3D环境。

如果你在谈论静态图像:利用很窄的圆锥体,添加颜色和透明度,有可能纹理相对于从锥体的中心轴的距离减小alpha分量。

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

更新1: 我会用一个很小的半径为单束Cone开始。

+0

我想专注于创造激光灯。我将如何去这abuot?简单的线条纹理?问题是,线路“外部”的不透明度远高于中间线路。 – wvd 2010-10-19 13:19:31

1

使用alpha纹理。带上您的多边形,将激光的“光束”作为坚实的绿色边缘。 把绿色的云纹理与激光边缘之间的alpha通道。

完成。 :-)

0

我不熟悉Java 3D API可言,但是当我快速通过文档看着我偶然发现了LineArray。谷歌搜索导致我到a piece of example code这导致我相信它可能是你在找什么。除此之外,我可以强烈推荐jMonkeyEngine,它绝对支持GL行。希望这有助于!