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 11-11-2007 20:44

Molti tutorial fanno riferimento alla versione 1.3 di Java3D perchè lo sviluppo delle librerie ha subito uno stop prolungato prima di essere ripreso. Le ultime versioni di Java3D non consentono l'uso di null come configurazione per un Canvas3D.

Puoi creare una configurazione ad hoc oppure usare i valori predefiniti in SimpleUniverse.getPreferredConfiguration():

Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration());

1A2L6E9 12-11-2007 19:10

......
 
mi hai risolto tutti i problemi! Ora mi immergo a programmare in 3D! O almeno ci provo! Grazie mille :cincin:

MictiaN 05-12-2007 16:00

scusate l'up ma dovevo fare i complimenti per il tutorial! xD
ah cmq m presento dato che sono nuovo
mi chiamo francesco.

ok basta cn le idiozie xD

vorrei chiederti un'informazione
hai in progetto altri tutorial per java 3d?
vorrei fare un ambiente dove ci si possa muovere e interagire con altri oggetti(inteso come cose solide), che mi stò preparando una specie di "gioco" ( se vogliamo chiamarlo così) da portare come tesi all'esame del 5°(faccio un itis per l'informatica e dato che sembra un progetto molto lungo inizio da ora che stò in 4°)
oppure ne conosci qualcuno? possibilmente in italiano ma anche se è in inglese non è un problema:)

grazie mille^^

ok piccolo problema!
quando vado per eseguire mi dà questo stacacchio di errore

chi me lo spiega?O.O

banryu79 06-12-2007 12:18

In riferimento a questo post (molto interessante)
 
Quote:

Originariamente inviato da PGI-Bis (Messaggio 17600353)
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.

[omissis]

PGI-Bis, intanto complimenti e grazie per l'eccellente tutorial e per la precisione delle info che dai.

Mi piacerebbe capire meglio quello che succede "dietro le quinte" in quanto a rendering grafico al fine di un efficacia maggiore programmando in ambito grafico 2D e 3D in ambiente Java, per pc desktop/laptop.

Ho trovato interessante la spiegazione della tecnica per rendere più performante un'immagine da renderizzare e l'altro discorso sul rendering: volevo chiederti se mi puoi indicare dei link/tutorial o altro materiale da studiare per approfondire questo aspetto (sempre in ambito Java)

Ciao :)

@EDIT:
PGI-Bis, grazie mille, ottimo link davvero e grazie anche della spiegazione :)

PGI-Bis 07-12-2007 21:37

banryu76, sulle immagini Java c'è un vecchio ma sempre attuale articolo sul blog di chet haase, un ingegnere di Sun che si occupa della pipeline Java2D

http://weblogs.java.net/blog/chet/ar...tbuffered.html

Il disegno dietro le quinte è in verità piuttosto semplice. Lato Java noi disegnamo usando direttamente o indirettamente un oggetto di tipo Graphics2D. Graphics2D è un'astrazione dell'insieme di operazioni di disegno disponibili nella piattaforma Java standard e alle spalle di questa astrazione esiste un concreto Graphics2D che varia da piattaforma a piattaforma e realizza le capacità di disegno astratte invocando o altro codice Java o codice nativo. Il codice nativo, vale a dire il codice macchina specifico per un certo sistema operativo ed una certa architettura di calcolatore, è prodotto appoggiandosi o alle librerie directx o alle opengl o a librerie di soft-rendering licenziate da Sun e sviluppate in collaborazione con un tot di terze parti. Queste ultime esistono per consentire alla piattaforma Java di avere un comparto grafico a prescindere dall'esistenza di un acceleratore video.

Fatta salva la portabilità, il sistema complessivo è identico a ciò che si fa per disegnare in due o tre dimensioni usando, ad esempio, OpenGL: ottenuta dal sistema una superficie disegnabile si inviano una serie di comandi l'esecuzione dei quali produce un'immagine sullo schermo. Java2D nasconde l'atto di generazione della superficie e ti fa disegnare con un ponte (Graphics2D) tra le istruzioni virtualmente disponibili e quelle concretamente usate.

Capire quale sia il modo più efficace per disegnare in Java significa semplicemente scovare quali istruzioni disponibili attraverso Graphics2D abbiano una controparte diretta e quali siano invece riprodotte attraverso dei passaggi intermedi. Sul blog di Haase trovi molte indicazioni in tema.

Mictian, non conosco tutorial che si occupino in modo comprensibile ad un profano come il sottoscritto di collisioni e affini. Ho in programma di scrivere qualcosa sul tema per le librerie Java3D appena il tempo (tiranno) e le capacità (scarse) me lo permetteranno.

MictiaN 08-12-2007 14:05

guarda se mi dai una mano a capire quell'errore posso pure darti una mano a capire più roba di java 3d e magari a farne un tutorial!^^

PGI-Bis 09-12-2007 10:10

Devi usare il nome pienamente qualificato della classe che dichiara il metodo main:

java it.quickjava3d.Main

pepperepe2 07-03-2008 12:20

jaja 3d problema e soluzione
 
per prima cosa stò scrivendo nella giusta sezione del forum?

secono
stò cercando di implementare in java 3d la seguente applicazione :

apro un "mondo"
clicco su un oggetto
questo si selezione
l'oggetto selezionato viene passato come argomento a funzioni che fanno certe cose ( cambiare texture , scalare , ruotare, traslare ecc)

ma quando faccio il loading di un universo come faccio a intercettae l'oggetto sul quale ho cliccato
come si usa pickcanvas ? sapete dove posso trovare un esempio a riguardo

franksisca 09-03-2008 12:09

plugin eclipse java3d
 
salve, oggi, girando per la rete alla ricerca di un loader per blender ho trovato questo:
http://sourceforge.net/projects/java3d-eclipse/

volevo sapere se qualcuno è riuscito ad installarlo e se vale la pena usarlo....

franksisca 10-03-2008 17:04

aiutatemi!!!


ho seguito la guida sul sito ma non mi visualizza lo stasso....non è che devo usare qualche versione particolare di eclipse???

Blackskull182 03-04-2012 12:41

Grazie per la segnalazione


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

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