[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. |
Intanto ho già scritto una bella str...
per compilare javac -cp .;* e per eseguire java -cp .;* whops |
: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: |
Opto per la seconda che hai detto :D.
|
Quote:
grazie, appena possibile la inizio a studiare;) |
ma riguardo alla performance come va java3d? e jogl?
|
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. |
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: |
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. |
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) |
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. |
Quote:
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: |
ok ho capito, era solo una curiosità per un mio progetto moooolto futuro
Quote:
|
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. |
Quote:
|
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. |
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 |
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. |
ma, in parole pratiche, java nei giochi quanto è meno potente rispetto agli altri linguaggi???
Usando anche compilatori JIT??? |
..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: 22:36. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.