7
votes

3 Réponses :


5
votes

mise à jour

Cette réponse est obsolète, à partir de Java 8U60B14 comme transparence a été ajoutée à JavaFX dans cette construction.


En tant que problème que vous connaissez dans vos notes de questions, la transparence n'est pas prise en charge dans JavaFX 3D pour Java 8. Il peut être mis en œuvre pour Java 9.

Il existe une solution de contournement qu'un utilisateur mentionne dans les commentaires sur le suivi qui implique un piratage au code natif du pipeline Javafx OpenGL. Si vous êtes désespéré pour cette fonctionnalité, vous pourriez essayer ce piratage. Si cela ne vous convient pas, vous devrez alors choisir une technologie différente.


1 commentaires

Merci. On dirait que Java 3D (au lieu de JavaFX 3D) sera la solution plus simple pour obtenir la transparence du travail.



14
votes

Depuis jdk8u60 B14 Transparence est activé en formes 3D.

Ceci est un test rapide effectué avec celui-ci: < / p>

transparence

cylindre avec couleur diffuse couleur. Web ("# FFFF0080") est ajouté sur le dessus d'une boîte et deux sphères. xxx

Il n'y a pas d'algorithme de tri de profondeur Cependant, ce qui signifie que l'ordre de la manière dont les formes 3D sont ajoutées à la scène matière . Nous devons changer l'ordre pour autoriser la transparence dans la case: xxx

Transparence


0 commentaires

2
votes

Voici une solution partielle. Pour ajouter de la transparence à une sphère avec l'image de la texture de la terre mappée, définissez un diffusemap et un diffusecocolor: xxx

Cela ne fonctionne que pour autoriser l'image d'arrière-plan de la scène (définie par scene.sefill (StarfieldImagePattern); ) à afficher. Il ne fonctionne pas encore pour permettre aux autres formes de montrer à travers.

Apparemment, la raison pour laquelle cela fonctionne est que la couleur diffuse est multipliée par la couleur diffuseemap lors du calcul de la couleur des pixels. Voir https://docs.oracle.com /javase/8/javafx/apli/javafx/scene/paint/phangmaterial.html .


0 commentaires