【问题标题】:Creating 'laserlights' with Java3D/other 3D API使用 Java3D/其他 3D API 创建“激光灯”
【发布时间】:2010-10-16 08:52:28
【问题描述】:

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

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


(来源:wrzuta.pl

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

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

提前致谢,

威廉诉多恩案

【问题讨论】:

    标签: java api graphics java-3d light


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我想先专注于创建激光灯。我该怎么做呢?带有纹理的简单线条?问题是线条“外侧”的不透明度远高于中间。
    【解决方案2】:

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

    完成。 :-)

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2018-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        相关资源
        最近更新 更多