Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-04-2010, 16:37   #1
ZJack
Member
 
Iscritto dal: Oct 2008
Messaggi: 71
[C++ - OpenGL] Importare modelli 3D ?

Salve a tutti, avevo intenzione di realizzare un videogioco molto molto essenziale con l'ausilio di C e librerie OpenGL.
Ho già provato a fare piccoli esperimenti con le OpenGL, prendendo degli esempi da un sito ( http://nehe.gamedev.net/ ). Ora non so quanto sia "buona" come fonte, e non so neanche se faccia codice buttato lì senza criterio, però sono riuscito a capirlo ed a creare qualcosa di mio.
Quello che vorrei cercare di capire: è possibile realizzare un piccolo gioco di automobili in questo modo ? ( tempo circa 1 mese o 2) Il gioco sarebbe molto semplice, una visuale dall'interno ( dove prendo un modello 3D che simula l'interno dell'auto ) , una "piattaforma" con la pista ed il paesaggio, ed il cielo.
Non mi serve qualcosa di realistico, quindi per curvare ad esempio farei semplicemente ruotare il modello dell'auto dall'asse e la telecamera (poi penso siano cose da provare ).
Però il mio principale problema è: Come posso fare per importare un modello 3D realizzato con altri software nel programma? Ho cercato come importare un .3ds, ma ho trovato solo software a pagamento... ( Come programma per realizzare i modelli userei Blender ).
Sapreste darmi qualche dritta ? E' realizzabile oppure no ? E' tempo buttato ?

Grazie mille in anticipo
__________________
CPU: 3570K - MB: ASRock Z77 Pro4-M
VGA: GTX 660
ZJack è offline   Rispondi citando il messaggio o parte di esso
Old 10-04-2010, 16:51   #2
insane74
Senior Member
 
L'Avatar di insane74
 
Iscritto dal: Feb 2003
Città: BG
Messaggi: 10276
http://www.ogre3d.org/

direi che con questo fai tutto.
__________________
Mac mini M1,16GB,2TB,10Gbit;Satechi Hub NVMe;Samsung 990 Pro 4TB / Logitech MX Keys;Logitech MX Master 4;Philips 288E2A;PreSonus Eris E3.5;HP LaserJet Pro M281fdw / QNAP TVS-871-i3-4G,8GB,8x WD Red CMR 6TB raid 6,QNAP QXG-2G1T-I225 / Asus GT-BE19000;QNAP QSW-1105-5T / iPhone 17 Pro Max 1TB;iPad mini 6 256GB;Apple Watch Ultra 2;AirPods Pro 2;Kindle Paperwhite 11 SE / LG OLED C2 48";Apple TV 4K 2021 64GB;Denon AVR-X2800H / Xbox Series X;Seagate Expansion Card 2TB
insane74 è offline   Rispondi citando il messaggio o parte di esso
Old 10-04-2010, 22:08   #3
javaboy
Registered User
 
Iscritto dal: May 2005
Città: far away from home
Messaggi: 1038
E' pieno di risorse in rete su come importare modelli 3d di qualsiasi specie in opengl. Alla fine un file contenente un modello 3d non contiene altro che vertici, normali, coordinate delle texture etc. Devi solo capire come è fatto il formato che ti interessa e scrivere il codice è banale......

Se ho un attimo provo ad aiutarti nella ricerca.

Comunque ti sconsiglio di utilizzare opengl per questo genere di progetti, rischi di perdere un sacco di tempo. Molto meglio le directX, in directX importare un modello è cosa banale.

Anche utilizzare una librerie come Ogre non è male come idea.
javaboy è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2010, 00:53   #4
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da ZJack Guarda i messaggi
E' realizzabile oppure no ? E' tempo buttato ?
se é realizzabile o se é tempo buttato dipende solo da te: quanto sei bravo con la grafica 3D? e quanto sei bravo a programmare? creare un videogame é il sogno di moltissimi programmatori, ma la stragrande maggioranza di essi fallisce quando si rende conto che, anche se per loro scrivere codice é gratis per quanto lo fanno bene, l'artwork non sanno proprio dove andare a pescarlo.

comunque, venendo al problema principale: il formato Wavefront é documentato pubblicamente, piuttosto semplice da interpretare, ed é supportato da molti programmi di grafica 3D tra cui anche Blender. ecco le specifiche:
http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/
http://local.wasp.uwa.edu.au/~pbourke/dataformats/mtl/

il formato ti permette di memorizzare le mesh comprensive di vettori normali e texture coordinates e anche le informazioni sui materiali, comprensive di texture e colori vari. (per le informazioni sul materiale vedi il secondo link, i materiali si mettono in un file a parte)

purtroppo con questo formato non ti é possibile memorizzare animazioni, quindi o lasci i tuoi oggetti completamente statici oppure provvedi ad animarli con altri mezzi.

ultima questione: i tutorial di NeHe ormai sono vecchi, usano quasi tutti la cosiddetta fixed-function pipeline; oggi la fixed-function pipeline non si usa piu, si programma a shaders. il problema di OpenGL é che é scarsamente documentato, se inizi adesso a studiare ci metterai una vita ad imparare ad usarlo in maniera ortodossa. forse faresti meglio a seguire il consiglio che ti é giá stato dato, cioé usare DirectX, al quale rilancio addirittura con XNA.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2010, 16:49   #5
ZJack
Member
 
Iscritto dal: Oct 2008
Messaggi: 71
Grazie a tutti per le risposte, terrò sicuramente in considerazione i vostri consigli.
Riguardo l'utilizzare Ogre3D dovrei provarlo e vedere come mi trovo; ho trovato anche un altro motore che si chiama Irrlicht che sembra molto cononsciuto.

Invece per quanto riguarda XNA e DirectX dite che da questo sito potrei ricavarci qualcosa http://www.wilez.it/tutorials/XNA/ ? ( saltando ovviamente tutte le parti dove spiega la programmazione pura )
Utilizzando queste 2 risorse posso importare file con modelli 3D in modo semplice ad esempio tramite funzioni preimpostate? Del tipo : < import("i.3ds",x=12,y=0,z=1); > ?

E per il fatto del "realizzabile o no" mi interessava saperlo perché vorrei portarlo all'esame di maturità di perito informatico. Dato che i tempi stringono devo decidermi in fretta.

Grazie ancora per le risposte .
__________________
CPU: 3570K - MB: ASRock Z77 Pro4-M
VGA: GTX 660
ZJack è offline   Rispondi citando il messaggio o parte di esso
Old 11-04-2010, 17:56   #6
javaboy
Registered User
 
Iscritto dal: May 2005
Città: far away from home
Messaggi: 1038
Irrlicht non è un granchè, ogre è più completo ma più complesso.
Le directX ti permettono di importare un modello in maniera banale ma non sono comunque semplici, forse xna è la soluzione migliore.
Potresti pure usare un engine come unity, sicuramente è la soluzione migliore per creare qualcosa in breve tempo ma ti lascia poco da programmare, puoi fare quasi tutto in maniera visuale e per il resto usi javascript.
javaboy è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2010, 19:13   #7
ZJack
Member
 
Iscritto dal: Oct 2008
Messaggi: 71
Sinceramente odio Javascript, quindi penso che non prenderò neanche in considerazione quella soluzione, ma grazie lo stesso per l'idea.

Ora avrei bisogno solo di qualche conferma su XNA come scritto nel mio ultimo post prima di valutare. Qualcuno saprebbe rispondermi ?

Grazie .
__________________
CPU: 3570K - MB: ASRock Z77 Pro4-M
VGA: GTX 660
ZJack è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2010, 19:51   #8
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Beh XNA è un wrapper allo stesso livello di DirectX, non è un motore grafico... quindi se vuoi pasticciare a basso livello senza rischi (è managed) vai sul sicuro.
Solo non ti aspettare alcun concetto astratto...

Ogre invece è il contrario; è complesso e di alto livello come concetti: implementa materiali, compositors, animazioni, ombre, culling, la gestione delle risorse, tutta roba parecchio cazzuta da farsi a mano partendo da una API.
Però è più difficile nella misura che trovi difficile C++.

Sinceramente ti consiglio di partire da Ogre, perchè se fai un motore senza prima vedere "come lo fanno i pro" viene un'accozzaglia che rovescia modelli a schermo.
Sicuramente si vedrà la macchina, si vedrà il cielo, ma non so quanto ti potrebbe essere utile a lungo termine

@fero86: sinceramente mi sa che vince male usare un formato standard all'inizio (e anche dopo) soprattutto se pensato per il rendering offline... sono enormemente più difficili da leggere, creano importers complessi, ma mancano anche di parecchie features necessarie ad un videogioco come la leggerezza, le animazioni, parametri preconfezionati per gli shaders (Normal, binormal, etc) che poi vanno messi a mano.
Dovessi farlo, credo che la soluzione migliore sarebbe fare un bel bitdump dei campi dato della classe Mesh, per poi creare un importer da un qualche altro formato di modellazione...

PS: Sui VG il forum che ho in firma ti potrebbe essere utile
__________________
*ToMmO*

devlog | twitter

Ultima modifica di Tommo : 12-04-2010 alle 19:57.
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2010, 15:54   #9
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da Tommo Guarda i messaggi
@fero86: sinceramente mi sa che vince male usare un formato standard all'inizio (e anche dopo) soprattutto se pensato per il rendering offline... sono enormemente più difficili da leggere, creano importers complessi, ma mancano anche di parecchie features necessarie ad un videogioco come la leggerezza, le animazioni, parametri preconfezionati per gli shaders (Normal, binormal, etc) che poi vanno messi a mano.
Dovessi farlo, credo che la soluzione migliore sarebbe fare un bel bitdump dei campi dato della classe Mesh, per poi creare un importer da un qualche altro formato di modellazione...
infatti hanno un fracco di aspetti negativi (a parte la questione del "rendering offline" come lo chiami tu, non mi risulta che il gioco che ZJack deve realizzare debba prelevare il materiale online, magari deve ma non mi sembra che l'abbia specificato) rispetto ad un tuo formato binario e ad hoc, ma sono l'unico modo di interagire coi programmi che deve usare per creare gli oggetti tridimensionali, come Blender. altrimenti potrebbe (credo) scrivere un plugin per Blender che gli permetta di salvare nel formato che piu gli piace ma ritengo che sia piu semplice scrivere un parser per Wavefront.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2010, 17:15   #10
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Si a un certo punto dovrai per forza scrivere qualcosa che legga un formato esterno... ma il vantaggio viene dalla libertà di avere un formato interno adatto a come lo usi te per i calcoli più comuni, oltre al fatto che l'exporter lo puoi sviluppare come applicazione esterna e non sporca il codice "più importante".

E poi anche se non ci ho mai guardato, ho l'impressione che fare un exporter per Blender in Python sia massicciamente più facile che fare un importer da .lwo in C++...
Nel primo caso devi scrivere in un formato semplice di testo (il tuo) a partire da dati in memoria già organizzati (da blender) nel secondo devi organizzare dati in memoria a partire da un formato binario complesso e proprietario.
Fai un pò te

PS: con rendering offline intendevo "non realtime", quindi CG.
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2010, 19:33   #11
ZJack
Member
 
Iscritto dal: Oct 2008
Messaggi: 71
Ok grazie per i consigli . Al momento sto provando ad utilizzare Ogre ( anche se ho dei problemi , ma al momento non ho il tempo per risolverli).
Per Ogre mi pare di aver trovato da qualche parte nel sito un Exporter per trasformare i file di Blender in un formato compatibile con Ogre.

Scriverò aggiornamenti o (in caso di problemi più seri e poco inerenti col titolo del post ) un altro thread con " i problemi del momento ".

Grazie ancora per l'aiuto .
__________________
CPU: 3570K - MB: ASRock Z77 Pro4-M
VGA: GTX 660
ZJack è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2010, 16:25   #12
ZJack
Member
 
Iscritto dal: Oct 2008
Messaggi: 71
Dopo un po' di indecisione e dopo aver passato un po' di tempo a cercare di installare Ogre3D con scarsi risultati, ho scoperto Panda3D. Nonostante non sembri qualcosa di "potente" penso vada benissimo per il mio scopo ( mi pare di aver letto che lo usano in qualche scuola per far prendere confidenza con programmazione e grafica.. ).
Oltretutto sembra anche molto immediato e, soprattutto, sono riuscito ad installarlo senza problemi .
__________________
CPU: 3570K - MB: ASRock Z77 Pro4-M
VGA: GTX 660
ZJack è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La prima missione orbitale del razzo spa...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:00.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v