Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Corsi, Tutorial e FAQ (https://www.hwupgrade.it/forum/forumdisplay.php?f=56)
-   -   [Tutorial Java] Java3D (https://www.hwupgrade.it/forum/showthread.php?t=1496341)


PGI-Bis 19-06-2007 12:05

[Tutorial Java] Java3D
 
Guida in costruzione.

tutorial.pdf

Appena scopro come funziona il bump-map (ci sono mille esempi, ce ne fosse uno in cui si capisce qualcosa :grrr:) lo aggiorno.

PGI-Bis 19-06-2007 14:16

Intanto ho già scritto una bella str...

per compilare javac -cp .;* e per eseguire java -cp .;*
whops

^TiGeRShArK^ 19-06-2007 14:24

:p
x ora non ho tempo di giocare con Java 3d ma magari + in là mi piacerebbe darlgi un occhiata...
Ma una domanda....
qualche tempo fa non si diceva che Jogl avrebbe preso il posto di Java3d o me lo sono sognato? :confused:

PGI-Bis 19-06-2007 14:33

Opto per la seconda che hai detto :D.

franksisca 19-06-2007 22:10

Quote:

Originariamente inviato da PGI-Bis (Messaggio 17584043)
Guida in costruzione.

tutorial.pdf

Appena scopro come funziona il bump-map (ci sono mille esempi, ce ne fosse uno in cui si capisce qualcosa :grrr:) lo aggiorno.

lo sapevo che bastava stuzzicarti un poco:D :D :D :D


grazie, appena possibile la inizio a studiare;)

pisto 20-06-2007 09:42

ma riguardo alla performance come va java3d? e jogl?

PGI-Bis 20-06-2007 10:42

Per esemplificare il rapporto che c'è tra Java3D e Jogl, eseguendo il programma Java3D con l'opzione

-Dj3d.rend=jogl

Java3D usa le librerie jogl per la pipeline di rendering (jogl deve essere installato).

Quanto alle performance non saprei dire. Bisognerebbe avere un tot di programmi fatti sia in Java3D che in altro e poi confrontarli.

^TiGeRShArK^ 20-06-2007 12:39

nel sito di jake2 era scritto che le prestazioni con lwjgl sono leggermente migliori rispetto a jogl.
Però non viene fatto il confronto tra java3d e jogl.. qdi non ho idea :fagiano:

PGI-Bis 20-06-2007 12:48

JOGL e Java3D non sono comparabili. Sarebbe come confrontare JOGL con JOGL, visto che Java3D usa (può usare) JOGL come un pezzo di sè.

Java3D è qualcosa che sta sopra a JOGL. JOGL tratta di triangoli, Java3D di solidi, materiali, movimento, interazione e balle varie :D.

pisto 20-06-2007 12:49

ma java3d su cosa si appoggia?

edit: ho visto. ma quindi, visto che per quanto niubbamente so solo OpenGL è presente su tutti i sistemi, alla fine java3D=opengl con un po' di astrazione?
e poi, per fare grafica 2d molto performante in java, ha senso usare Opengl? (ho letto da qualche parte che ogl aveva roba anche per 2d magari dico cazzate)

PGI-Bis 20-06-2007 12:57

Per la proiezione dei contenuti ha due pipeline "interne", una opengl e una directx, più una pipeline esterna, jogl.

Queste pipeline sono a loro volta dei ponti JNI, alla jogl.

Queste pipeline non sono esposte. Si lavora con dei "primitivi" Java: tuple, punti, matrici, texture, geometrie eccetera.

PGI-Bis 20-06-2007 13:11

Quote:

Originariamente inviato da pisto (Messaggio 17599877)
ho visto. ma quindi, visto che per quanto niubbamente so solo OpenGL è presente su tutti i sistemi, alla fine java3D=opengl con un po' di astrazione?
e poi, per fare grafica 2d molto performante in java, ha senso usare Opengl? (ho letto da qualche parte che ogl aveva roba anche per 2d magari dico cazzate)

La grafica 2D performante in Java si fa con Java2D. Il mito vuole che per disegnare Java usi la marmellata di fragole. La realtà è che la piattaforma standard Java SE disegna tramite DirectX o OpenGL o via software se manchi un acceleratore grafico.

Certo bisogna leggersi qualcosa prima di avventurarsi nella grafica 2d. Ad esempio forse non tutti sanno che dire una cosa tipo:

BufferedImage image = ImageIO.read(il file);
...un graphics.drawImage(image, eccetera...);

è corretta ma non sfrutta le capacità della pipeline di rendering Java2D. Prima di essere disegnata, un'immagine destinata ad un uso "intensivo" deve essere convertita ad un formato compatibile con il display. Si prende il GraphicsConfiguration dello schermo, si crea un buffer "ottimizzato", gli si copia dentro l'immagine letta dal file e il disegno di quell'immagine ottimizzata è non una o due ma decine di volte più rapido dell'originale.

Lo stesso vale per il disegno in sè e per sè. Normalmente si prende un JComponent e si sovrascrive il metodo paintComponent. Ma la grafica "ad alte prestazioni" in Java si ottiene usando un BufferStrategy, ricavato da un Canvas o un Frame.

Poi ci saranno anche piattaforme più agili, per carità. Ma io, cioè mr. nessuno, penso che sia importante sottolineare che discutere di prestazioni richiede una minima conoscenza della piattaforma di cui si discute.

Ps.: forse sono riuscito a fare il reverse engineering di un file class che contiene un esempio di DOT3 Bump Mapping! Ahhh, è sempre bello quando una librerie è ben documentata! :grrr:

pisto 20-06-2007 13:24

ok ho capito, era solo una curiosità per un mio progetto moooolto futuro
Quote:

Originariamente inviato da PGI-Bis (Messaggio 17600353)
Ps.: forse sono riuscito a fare il reverse engineering di un file class che contiene un esempio di DOT3 Bump Mapping! Ahhh, è sempre bello quando una librerie è ben documentata! :grrr:

perché, jad non ti funziona?

PGI-Bis 20-06-2007 13:26

No, uso Cavaj. Il problema è che ci sono una marea di costanti e te le spara tutte come numeri perchè il compilatore le "hard" codifica.

M'è cresciuto un terzo occhio a forza di saltare dal codice alla documentazione, dal codice alla documentazione... :D.

^TiGeRShArK^ 20-06-2007 14:01

Quote:

Originariamente inviato da PGI-Bis (Messaggio 17599866)
JOGL e Java3D non sono comparabili. Sarebbe come confrontare JOGL con JOGL, visto che Java3D usa (può usare) JOGL come un pezzo di sè.

Java3D è qualcosa che sta sopra a JOGL. JOGL tratta di triangoli, Java3D di solidi, materiali, movimento, interazione e balle varie :D.

ah okz capito :p

PGI-Bis 20-06-2007 18:53

Ho aggiornato il tutorial con il bump map, che è tutto dire perchè funziona ma non so come :fagiano:. Spero di essere stato sufficientemente esplicito perchè si capisca che non so. E' importante.



Ps.: ho usato il plug-in "normal map" di gimp per generare la mappa di normali. Comunque è tutto scritto.

1A2L6E9 10-11-2007 17:44

mi serve una mano con Java3D!!!
 
Ciao a tutti,
ho scaricato la j2sdk1.4 e Java3D dal sito della Sun.
Dopodichè ho dovuto spostare la cartella Java3D all'interno di quella della sdk.
Quanto compilo un programma, l'output è questo:

C:\Documents and Settings\Alessio\JavaApplication1\src\javaapplication1\Cubo1.java:41: cannot access javax.media.j3d.BranchGroup

bad class file: C:\j2sdk1.4.2_13\jre\lib\ext\j3dcore.jar(javax/media/j3d/BranchGroup.class)

class file has wrong version 49.0, should be 48.0

Please remove or make sure it appears in the correct subdirectory of the classpath.

BranchGroup createContentBranch() {

1 error

BUILD FAILED (total time: 0 seconds)

Aiutatemi grazie mille, devo assolutamente iniziare con Java3D!!! :D

PGI-Bis 10-11-2007 21:04

credo che le ultime versioni di Java 3D siano compatibili con Java 5 o superiore. Il messaggio che ti trovi per le mani indica esattamente un'incompatibilità tra la versione di Java per cui è stata prodotto una certa libreria (javax.media.eccetera) e la tua Jvm (che accetta al massimo versioni 1.4).

Aggiorna il tuo JRE / JDK, è la via più semplice.

franksisca 10-11-2007 22:47

ma, in parole pratiche, java nei giochi quanto è meno potente rispetto agli altri linguaggi???

Usando anche compilatori JIT???

1A2L6E9 11-11-2007 18:40

..ancora problemi..
 
:cry:
ora ho installato la versione supportata, infatti quando complilo il programma non da nessun tipo di problema.
Il problema esce quando lo eseguo (con vari programmi me lo fa) :

Exception in thread "main" java.lang.NullPointerException: Canvas3D: null GraphicsConfiguration
at javax.media.j3d.Canvas3D.checkForValidGraphicsConfig(Canvas3D.java:963)
at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1006)
at Cubo1.<init>(Cubo1.java:31)
at Cubo1.main(Cubo1.java:15)
Questo errore si riferisce alla seguente istruzione:
Canvas3D c = new Canvas3D(null);
Ho guardato su alcuni tutorial, dove anche lì l'oggetto viene inizializzato a null.
Ancora grazie mille per l'aiuto ma non so proprio a chi rivolgermi. :D


Tutti gli orari sono GMT +1. Ora sono le: 16:20.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.