Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-04-2010, 17: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, 17:51   #2
insane74
Senior Member
 
L'Avatar di insane74
 
Iscritto dal: Feb 2003
Città: BG
Messaggi: 10150
http://www.ogre3d.org/

direi che con questo fai tutto.
__________________
Mac mini M1,16GB,2TB,10Gbit;Satechi Hub NVMe;Samsung 990 Pro 4TB;WD My Passport for Mac 4TB / Logitech MX Keys;Logitech MX Vertical;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 / TP-LINK Archer GE800;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, 23: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, 01: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, 17: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, 18: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, 20: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, 20: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 20:57.
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2010, 16: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, 18: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, 20: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, 17: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


Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
Zigbee 4.0 è qui: più sic...
La trasformazione agentica di Windows pa...
Crollo del 29% nelle vendite dirette: Ub...
Black Friday anticipato su Amazon: NARWA...
Disastro WhatsApp: esposti 3,5 miliardi ...
Hatsune Miku per tutti: ASUS ROG present...
La Definitive Edition di Tomb Raider sba...
Sicurezza PC: Microsoft punta sui chip d...
Gemini 3 Pro disponibile ora: è i...
Super sconti robot aspirapolvere: ECOVAC...
DOOM: The Dark Ages si espande con Ripat...
EA SPORTS annuncia il futuro della serie...
Tutte le TV già in offerta defini...
Meta non ha un monopolio nel settore dei...
L'amministrazione Trump presta 1 miliard...
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: 13:11.


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