PDA

Visualizza la versione completa : [c++] Sviluppare ambientazioni grafiche


Jacki93
11-10-2008, 09:39
Ciao,
allora, vi spiego quello che vorrei fare, il mio progetto sarebbe di creare tipo una piccola mappa, con blender o un altro programma di grafica abbastanza potente, una volta ultimato creare un porgrammino in c++ che mi permetta di girare per questa mappa, se volete potete prenderlo come una specie di videogioco senza scopo.. :D A questo punto ho due domande:

1) Di solito la grafica si fa in un solo pezzo? (intedo dire, si costruisce la mappa con un programma di grafica o si uniscono più pezzi?)

2) Cosa potrei utilizzare per sviluppare questa idea in c++?

PS: é un impresa tanto ardua o é possibile?

pallinopinco
11-10-2008, 10:17
I vari motori 3D (http://www.devmaster.net/engines/) (Ogre3D, Irrlicht, Crystal Space 3D, ...) offrono tutti gli strumenti per realizzare la tua idea, ovviamente devi avere una buona esperienza di programmazione per poterli usare con efficacia.

Jacki93
11-10-2008, 10:23
Grazie della risposta,
se non ho capito male per windows si può utilizzare la directX come motore grafico porgrammando in c++?

sai darmi qualche guida alle API DirectX e come sfruttarle con c++? anche se in inglese faro qualche sforzo in +.... grazie della risposta...

pallinopinco
11-10-2008, 10:36
DirectX è una libreria low-level rispetto ai 3D engine che ti consigliavo, ciò significa che usarla richiede molto più tempo e molta più esperienza. Puoi realizzare il tuo progetto anche con DirectX, ma scegliendo questa strada incontrerai maggiori difficoltà (devi ricreare a mano ciò che i motori 3D ti forniscono gratis) e rischi di perdere di vista il tuo obiettivo: avere un semplice mondo 3D con il quale interagire.

Una volta approcciata la programmazione 3D con un motore nessuno ti vieta di scendere nei dettagli (=studiare anche DirectX) per capire come funzionano certe cose. Ma considerando che molte software house preferiscono usare motori pronti che riscrivere tutto da zero e che società come Microsoft spingono su tecnologie come XNA (usato anche da sviluppatori indipendenti, non solo da hobbisti), credo che un principiante non debba scontrarsi fin da subito con tutte le complessità delle DirectX, a meno che non voglia limitarsi (come fanno in molti) a prendere codice scritto da altri e modificarne 2 righe (quando va bene).

E' un po' come per la matematica, alle elementari di insegnano le operazioni ad alto livello (somme, moltiplicazioni, ...), quando vai all'università ti spiegano la teoria che c'è sotto! :)

Jacki93
11-10-2008, 11:06
ma quindi come funzionano (Ogre3D, Irrlicht, Crystal Space 3D, ...) ? non ho capito benissimo che ruolo svolgono, sono porgrammi che semplificano il lavoro? io devo programmare la stessa cosa in c++ con questi progammi che mi aiutano? tipo http://www.ogre3d.org/ mi ispira, ma dopo come dovro utilizzarlo? Grazie delle risp... ciaooo...

Jacki93
11-10-2008, 11:51
Sto scaricando OGRE 1.6.0 RC1 SDK for Visual C++ .Net 2003 (7.1) che nn richiede nessun porgramma aggiuntivo giusto? un'altra cosa, é piu intuitivo ogree3d o crystal space?

pallinopinco
11-10-2008, 12:31
non ho capito benissimo che ruolo svolgono, sono porgrammi che semplificano il lavoro?


I motori 3D ti aiutano (tra le altre cose) nella rappresentazione della scena, nel caricamento dei modelli (es. il terreno e gli oggetti presenti nella scena), nella gestione delle interazioni tra oggetti 3D, delle "inquadrature", etc.

Sono delle librerie potenti e complesse, quindi, come dicevo anche prima, richiedono una lunga fase di studio, si da per scontato che tu conosca in modo non superficiale il C++. L'alternativa è sviluppare tutto a mano con DirectX/OpenGL/..., ma se non sai *usare* un sistema già pronto difficilmente puoi *crearne* uno da zero.

Questo (http://irrlicht.sourceforge.net/tut012.html) è un tutorial per il terrain rendering in Irrlicht, ovviamente puoi trovarne per qualsiasi 3D engine.

Jacki93
11-10-2008, 14:46
le mie conoscenze a quanto vedo sono troppo basse per comprendere appieno tutto il codice del tutorial che mi hai passato, vedro quindi di studiarci dietro... mi pare veramente interessante questo argomento... sto provando a scaricare Irrlicht, versione only english?

Pensi che uno che faccia queste cose amatorialmente possa riuscirci o é troppo alto il livello programmazione?

PS: di C++ so cose abbastanza basilari, ho fatto piccoli proggrammini con massimo una funzione, if, else, stampare prendere stringhe, eseguire calcoli, ecc...

EDIT: ho scaricato lo zip, ma ci sono solo cartelle, dove trovo il file per window da installare?

Jacki93
11-10-2008, 20:32
Scusa, ma nn capisco cosa devo scaricare, adesso sto provando a scaricare ogree 3d siccome ha più documentazione, pero ci sono le versioni per visual c++ io nn ho questo programma, per avere tutto gratis devo scaricare questo: OGRE 1.6.0 RC1 SDK for Code::Blocks + MinGW C++ Toolbox?
Code::Blocks é un altro programma gratis no rispettoa visual c++?

Fammi sapere... grazie... ciaooo...

pallinopinco
12-10-2008, 10:16
Anche Visual C++ 2008 Express è gratuito (tra l'altro è facile integrarlo con Dark GDK (http://www.microsoft.com/express/samples/gamecreators/default.aspx), guarda il video nella pagina suggerita).

Ogre3D può essere usato sia con VC++ sia con MiNGW, ovviamente la scelta dipende dall'esperienza, dai gusti e da altre considerazioni tecniche dello sviluppatore.



versione only english?


C'è il sito Irrlicht Italia (http://irrlichtitalia.altervista.org/start/), ma non illuderti, se non conosci l'inglese non vai molto lontano nel campo della programmazione, soprattutto nella programmazione di giochi/applicazioni 3D.

Loading