|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
[Java3D] ottenere "on-screen buffer"
salve a tutti.
esiste in Java3D un modo per ottenere un ImageComponent2D contenente i frame renderizzati anche quando il Canvas3D si trova in modalitá di rendering on-screen anziché off-screen? faccio questa domanda perché stavo riflettendo su come si potrebbe realizzare in Java3D un effetto di motion blur in maniera efficiente. l'ho giá fatto in passato con JOGL: il principio per il motion blur efficiente é quello di renderizzare sopra ad ogni frame il frame precedente in semitrasparenza, lo si fa molto facilmente con uno shader. in JOGL il mio ciclo di rendering era fatto come segue: 1. renderizza il frame corrente 2. disattiva l'eventuale depth testing ed altri eventuali per-pixel tests 3. renderizza un poligono rettangolare grosso quanto tutto lo schermo usando come texture una texture T contenente il frame precedente; il poligono deve essere semitrasparente (io come valore di alpha ho usato 0.65) 4. copia il frame corrente nella texture T (in OpenGL si fa con glCopyTexImage2D) 5. riattiva l'eventuale depth testing ecc. in Java3D come posso fare, sempre che si possa? PS: per vedere il motion blur descritto guardate 3D Volley Demo nella mia firma ![]()
__________________
3D Volley Demo (Facebook) | Reversi (Facebook) | Blockout (Facebook) | Puzzle15 (Facebook) Ultima modifica di fero86 : 02-07-2010 alle 12:17. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Non ho mai provato ma penso che si possa fare con un offscreen canvas. Proietti la scena on-screen su un canvas off-screen, pigli l'immagine e la usi come texture. Se dai un'occhiata per "java3d render to texture" o "offscreen canvas" trovi anche qualche demo.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
si, avevo giá pensato alla soluzione col secondo canvas off-screen, ma mi domando se sia ugualmente efficiente; di sicuro c'é un consumo inutile di risorse.
peró dalla tua risposta evinco che non c'é altro modo. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:00.