2010-10-16 24 views
4

Hier, j'ai décidé de lancer mon nouveau projet de simulateur avec Java et Java3D. Depuis que j'ai déjà programmé Java avant c'était un gros plus et je pouvais directement commencer avec le simulateur. Maintenant, je pensais un peu à la façon dont j'allais aborder cela, et j'ai directement trébuché et la plus grande partie de mon programme: le laser dans les simulateurs.Création de 'lasers' avec Java3D/autre API 3D

Je veux créer des lasers semblables à ceux-ci (bien sûr, je ne jamais venir que près au début, mais vous voyez l'idée)

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

Le problème est, quelqu'un peut me donner une explication approximative de la façon d'aborder cela? J'ai parcouru la documentation complète de Java3D mais je n'ai pas trouvé de fonctionnalité pour créer des choses comme celles-ci. Juste un point de départ serait déjà bien.

(Si quelqu'un recommande une autre API 3D pour ce genre de tâche, qui est aussi pour Java, s'il vous plaît me dire)

Merci à l'avance,

William c. Doorn

Répondre

2

Permettez-moi Préface Ma réponse en disant que mon expérience avec Java3D est assez limitée. J'ai joué avec les exemples, mais c'est à peu près tout. Cependant, de nombreuses règles s'appliquent à tous les environnements 3D. Si vous parlez d'une image statique: utilisez des cônes très étroits, ajoutez de la couleur et de la transparence, éventuellement une texture pour diminuer la composante alpha par rapport à la distance de l'axe central du cône.

Si vous parlez d'une scène animée, cela devient un peu plus difficile. Vous devez synthétiser le brouillard. Volumetrics vous donnera des images incroyables, mais il est coûteux en calcul, et je ne pense pas que Jave3D le supporte. Cependant, je pense que vous pouvez simuler si vous avez un objet qui est parent de tous les faisceaux laser et que Java3D laissera ancrer une texture au parent et laissera les enfants en hériter.

Mise à jour 1: Je commencerais avec un Cone avec un très petit rayon en un seul faisceau.

+0

Je veux me concentrer sur la création des lasers en premier. Comment irais-je là-dessus? Lignes simples avec des textures? Le problème est alors que l'opacité des "outsides" de la ligne est beaucoup plus élevée qu'au milieu. – wvd

1

Utilisez des textures alpha. Prenez votre polygone, peignez le «faisceau» du laser comme un bord vert solide. Mettez une texture de nuage verte avec un canal alpha entre les bords du laser.

Terminé. :-)

0

Je ne suis pas du tout familier avec l'API Java 3D, mais quand j'ai rapidement parcouru la documentation je suis tombé sur le LineArray. Googling pour cette classe m'a conduit à a piece of example code qui m'a amené à croire que ce pourrait être ce que vous cherchez. Autre que cela, je peux fortement recommander jMonkeyEngine, qui prend en charge définitivement les lignes GL. Espérons que cela aide!