Создание «лазерных лучей» с помощью Java3D / другого 3D API - PullRequest
4 голосов
/ 16 октября 2010

Вчера я решил начать свой новый проект симулятора с Java и Java3D. Поскольку я уже программировал Java до того, как это стало большим плюсом, я мог сразу начать с симулятора. Теперь я немного подумал о том, как я собираюсь подойти к этому, и я непосредственно споткнулся и большую часть своей программы: лазер в симуляторах.

Я хочу создать лазеры, подобные этим (конечно, я никогда не подойду так близко в начале, но вы поняли)

альтернативный текст http://c.wrzuta.pl/wi3928/68d3307a00283a1b475b370b/0/lasershow

Проблема в том, может ли кто-нибудь дать мне грубое объяснение того, как подойти к этому? Я просмотрел полную документацию по Java3D, но не смог найти возможности для создания подобных вещей. Просто была бы хорошая отправная точка.

(Если кто-нибудь порекомендует другой 3D API для задач такого типа, в том числе и для Java, сообщите мне)

Заранее спасибо,

Уильям против Доорна

Ответы [ 3 ]

2 голосов
/ 19 октября 2010

Позвольте мне предсказать мой ответ, сказав, что мой опыт работы с Java3D довольно ограниченЯ играл с примерами, но это все.Однако многие правила применяются в трехмерных средах.

Если вы говорите о статическом изображении: используйте очень узкие конусы, добавьте цвет и прозрачность, возможно, текстуру, чтобы уменьшить альфа-компонент по отношению к расстояниюот центральной оси конуса.

Если вы говорите об анимированной сцене, это становится немного сложнее.Вам нужно синтезировать туман.Объемные изображения дадут вам невероятные изображения, но это вычислительно дорого, и я не думаю, что Jave3D поддерживает это.Тем не менее, я думаю, что вы можете подделать его, если у вас есть объект, который является родительским для всех лазерных лучей, а Java3D позволит привязать текстуру к родителю и позволить детям наследовать ее.: я бы начал с конуса с очень маленьким радиусом в виде одного луча.

1 голос
/ 20 октября 2010

Используйте альфа-текстуры. Возьмите свой многоугольник, нарисуйте «луч» лазера как сплошной зеленый край. Поместите текстуру зеленого облака с альфа-каналом между лазерными кромками.

Закончено. : -)

0 голосов
/ 25 октября 2010

Я совсем не знаком с Java 3D API, но когда я быстро просмотрел документацию, я наткнулся на LineArray .Поиск в этом классе привел меня к коду примера , который заставил меня поверить, что это может быть то, что вы ищете.Кроме того, я настоятельно рекомендую jMonkeyEngine , который определенно поддерживает линии GL.Надеюсь, это поможет!

...