J'ai essayé de faire fonctionner le rendu hors écran en utilisant Java3D 1.5.2. Dans mon source code j'ai essayé d'attacher une étendue Canvas3D
qui fera hors écran le rendu à SimpleUniverse
, mais cela briserai le rendu:Pourquoi mon affichage hors écran Canvas3D ne fonctionne-t-il pas?
62. // FOR SOME REASON THIS BREAKS RENDERING
63. universe.getViewer().getView().addCanvas3D(canvas);
Le code source est un peu trop grand pour coller sur StackOverflow donc je l'ai mis à disposition via Pastie sur here.
La ligne 63 a été mise en commentaire et le Canvas3D ordinaire fait le rendu à l'écran. Il va afficher un cube et l'afficher dans un JFrame
. Toutefois, si vous supprimez le commentaire, le rendu hors écran entraînera le rendu de l'affichage à l'écran. Aussi le rendu hors écran retournera un "grand rien noir" BufferedImage
. Je voudrais savoir comment faire fonctionner le rendu hors écran, c'est-à-dire rendre la scène d'un cube pivoté à une image mise en mémoire tampon. J'ai regardé le code exemple fourni par Java3D pour le rendu hors écran et ils le font aussi bien (à l'exception qu'ils utilisent l'objet Raster
pour rendre le tampon hors écran dans une fenêtre à l'écran).
Doux, ça marche! Btw fais ce que je dois faire exactement pour que le programme sorte lui-même. Il est toujours en cours d'exécution même lorsque le rendu est effectué comme si une ressource était toujours en cours d'exécution et que je ne pouvais pas mettre le doigt dessus. (J'appelle universe.cleanup() mais cela ne semble pas suffisant). Je vais accepter la réponse après cela. – Spoike
Je voudrais essayer .dispose() toutes les images. Si cela ne fonctionne pas, alors appelez System.exit (0), ce qui va tuer le jvm. Si vous avez besoin de jvm pour continuer à courir, alors d'autres recherches sont nécessaires :) – Melv
Ouais, j'ai compris à l'aide de System.exit (0), mais je n'ai pas besoin de quelque chose de plus élégant que ça, alors ça va. Merci. – Spoike