Domanda

Ho cercato di fare fuori il rendering dello schermo a lavorare, utilizzando Java3D 1.5.2 . Nel mio Ho cercato di collegare un Canvas3D estesa che farà fuori dallo schermo rendering SimpleUniverse, ma in questo modo si rompe il rendering:

62.  // FOR SOME REASON THIS BREAKS RENDERING
63.  universe.getViewer().getView().addCanvas3D(canvas);

Il codice sorgente completo è un po 'troppo grande per incollare su StackOverflow quindi ho reso disponibile tramite Pastie oltre qui .

Linea 63 è stata commentata e ha il Canvas3D ordinaria fare il rendering sullo schermo. Si renderà un cubo e visualizzare questo in un JFrame. Tuttavia, se si rimuove il commento che l'off-screen rendono farà sì che il sullo schermo uno da non rendering. Anche il rendering off-screen restituirà un "grande nero nulla" BufferedImage.

Mi piacerebbe sapere come fare il lavoro fuori il rendering dello schermo, vale a dire rendere la scena di un cubo ruotato a un'immagine tamponata. Sono stato a guardare il Java3D fornito codice di esempio per il rendering off-screen e lo fanno come anche questo (con l'eccezione che usano l'oggetto Raster di rendere il buffer di schermo spento di nuovo a una finestra sullo schermo).

È stato utile?

Soluzione

Potrebbe essere la dimensione fisica del Screen3D che è sbagliato. Il valore dovrebbe essere formato dello schermo fisico in metri. È possibile verificare con:

screen3D.setPhysicalScreenWidth(0.0254/90.0 * destWidth);
screen3D.setPhysicalScreenHeight(0.0254/90.0 * destHeight);

I valori sono dalla parte superiore del javadoc Screen3D. La linea problematica ha collaborato con il codice di cui sopra, almeno per me :)

Impostazione della dimensione fisica sbagliata può anche cambiare il rapporto di aspetto del rendering.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top