View Full Version : [C++] terrain tut
Prometheus ts
10-11-2008, 22:48
Ciao cercavo un tutorial per costruire un motore di render grafico di terreni 3d... qualche consiglio? libri o tutorial?
Prova a guardare qualche tutorial sui quadtree su gamedev o qualche altro sito.
Prometheus ts
12-11-2008, 10:46
CIao Io cerco un corso , un libro che insegni da a alla z a costruire un motore di render 3d per terreni possibilmente e per oggetti ....
Prometheus ts
12-11-2008, 15:39
Nessuno?
variabilepippo
12-11-2008, 17:05
E' difficile rispondere alla tua domanda se non specifichi qual è il livello di conoscenza della piattaforma di sviluppo che vorresti usare per implementare il motore, della programmazione (3D) e delle librerie utilizzabili. Se sei alle prime armi con la programmazione 3D, forse ti dovresti fare un po' le ossa con progetti meno ambiziosi.
Progettare e realizzare un buon 3d engine non è una cosa banale e solitamente chi chiede informazioni in modo generico non ha ancora maturato le competenze necessarie per portare a termine il progetto. Non ha senso cercare "tutorial" e se parti da zero dovrai studiare molti libri (e scrivere tanto codice) prima di essere in grado di implementare un motore decente. ;)
Prometheus ts
12-11-2008, 19:44
ok e da dove partop per arrivare all meta?
variabilepippo
12-11-2008, 22:28
Dipende dal tuo punto di partenza... Cosa sai della programmazione in generale e cosa della "programmazione 3D"? Quale è il tuo obiettivo finale (nel dettaglio)?
Prometheus ts
13-11-2008, 00:12
corso base di prog c++ , programmazione 3d 0 e vorrei imparare...obbiettivo è quello di creare e sviluppare come hobby un motore di rendering 3d per natura e eggetti aTMOSFERA ECC..
Inizia da opengl game programming di Astle e Hawkins.
E' un ottima introduzione alla teoria della computer grafica e alle opengl.
Inoltre viene descritto un semplicissimo engine per videogames.
Poi comprati un libro sul terrain rendering e uno serio sulle opengl come il red book.
Naturalmente non tentare di sviluppare subito un engine.
Prometheus ts
13-11-2008, 09:12
hai un link? che libro poi? e perchè opengl e non direct x? Io ho avuto dei problemi con alphablending con opengl ...
hai un link? che libro poi? e perchè opengl e non direct x? Io ho avuto dei problemi con alphablending con opengl ...
http://www.amazon.com/OpenGL-Programming-Prima-Techs-Development/dp/0761533303/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1226568681&sr=8-1
Ti consiglio le opengl perchè le puoi utilizzare su windows, linux, mac os, iphone e cellulari vari al contrario delle directx che puoi utilizzare solo su windows e xbox.
Poi guarda questo:
http://www.amazon.com/Focus-Terrain-Programming-Game-Development/dp/1592000282/ref=sr_1_2?ie=UTF8&s=books&qid=1226568958&sr=1-2
Probabilmente esistono libri migliori però il primo che ti ho consigliato è estremamente semplice, non dà nulla per scontato ed è adatto a persone che come te vogliono iniziare.
Prometheus ts
14-11-2008, 09:38
Grazie , di libri ne ho trovati diversi sul motore 3d , mi consigli di partire dritto con qquesti con la mia esperienza base di programmazione o dovrei fare qualcosa di intermedio?
variabilepippo
14-11-2008, 10:26
on la mia esperienza base di programmazione o dovrei fare qualcosa di intermedio?
Con un corso base sul C++ vai poco lontano, soprattutto se l'obiettivo è progettare&implementare un motore 3D. Prima di approfondire l'argomento "3D" sarebbe opportuno testare le proprie capacità di progettazione/programmazione su progetti un po' più "basic". :)
Prometheus ts
14-11-2008, 13:57
qualche link? O Indicazioni su che progetti sono piu ' adatti ?
Come posso testare il mio livello?
Inoltre un libro ben fatto per questo?
qualche link? O Indicazioni su che progetti sono piu ' adatti ?
Come posso testare il mio livello?
Inoltre un libro ben fatto per questo?
Procurati C++ Fondamenti di programmazione e C++ tecniche avanzate di deitel.
Procurati c++ coding standards, e exceptional c++ (entrambi di sutter mi pare)
Un buon esercizio (utile anche per l'engine) potrebbe essere di implementare le classi che rappresentano vettori, matrici, bounding box, linee, piani etc utilizzando opportunamente i template e l'overloading degli operatori.
Facendo questo puoi migliorare le tue conoscenze di c++, le tue conoscenze di matematica applicata alla computer grafica e sopratutto non ti discosti da quallo che è il tuo scopo iniziale.
Impara a usare bene i debugger e i tool per scoprire memory leaks come ad esempio valgrind (se usi linux).
banryu79
14-11-2008, 16:21
Ma, io consiglierei 3 cose:
- continuerei a studiare e esercitare sempre più pesantemente il linguaggio scelto, ma non nel tentativo di implementare subito un motore 3D;
- comincerei a studiare qualche libro serio sull'argomento;
- nel frattempo ripasserei bene tutta la trigonometria, e i vettori e le matrici, e studierei gli algoritmi e le strutture dati tipicamente associate a matrici e vettori.
Metti tutto in pentola, mescola con calma e togli da fuoco tra un paio di annetti.
variabilepippo
14-11-2008, 17:04
Un buon esercizio (utile anche per l'engine) potrebbe essere di implementare le classi che rappresentano vettori, matrici, bounding box, linee, piani etc utilizzando opportunamente i template e l'overloading degli operatori.
Facendo questo puoi migliorare le tue conoscenze di c++, le tue conoscenze di matematica applicata alla computer grafica e sopratutto non ti discosti da quallo che è il tuo scopo iniziale.
Concordo pienamente, la progettazione di una gerarchia di classi per le operazioni su vettori/matrici/bbox/etc è un'attività molto formativa.
Prometheus ts
14-11-2008, 20:52
Perfetto grazie mille , voi sapete già fare cose simili? Non ho troppa fretta ma voglia di imparare cmq...
Perfetto grazie mille , voi sapete già fare cose simili? Non ho troppa fretta ma voglia di imparare cmq...
Si ma si ha sempre da imparare.
Prometheus ts
16-11-2008, 10:46
Avete esempi di lavori fatti? Mi piacerebe imparare questo tipo diprogrammazione perchè da sempre mi appassionano le ricostruzioni geografiche , mappe , e mi piacerebbe riuscire a creare o almeno a capire come funzionano questi simulatori di ambienti virtuali....
variabilepippo
16-11-2008, 11:43
Avete esempi di lavori fatti?
Personalmente non sono un sostenitore dell'imparare "by example":
non è detto che i lavori fatti da altri siano fatti bene (e se si hanno poche conoscenze non si è in grado di valutare la qualità di un lavoro né di individuare errori concettuali/di programmazione);
è molto difficile acquisire capacità progettuali dal "reverse engineering" di un lavoro altrui, dovresti procedere con gradualità, partendo dallo studio di un linguaggio, delle tecniche di progettazione del software per poi arrivare all'utilizzo di librerie per lo sviluppo di sistemi 3D;
un esempio, per sua natura, non ti offre una visione d'insieme, come farebbe invece lo studio di uno o più testi specialistici.
E' un po' come voler diventare progettista di motori partendo dalla sostituzione di uno spinterogeno. :)
Avete esempi di lavori fatti? Mi piacerebe imparare questo tipo diprogrammazione perchè da sempre mi appassionano le ricostruzioni geografiche , mappe , e mi piacerebbe riuscire a creare o almeno a capire come funzionano questi simulatori di ambienti virtuali....
Penso che ti convenga imparare da un libro. In quello che ti ho consigliato ci sono parecchi esempi. Se ti interessano i visualizzatori geografici c'è un ulteriore livello di complessità relativo alle proiezioni cartografiche. Ad esempio google earth si appoggia alle librerie gdal per questo scopo.
Se non ti interessa fare tutto da solo puoi dare una occhiata a ogre, un engine grafico open source che ha un ottimo supporto per il rendering dei terreni.
E' anche integrato con terragen http://www.planetside.co.uk/terragen/.
Prometheus ts
16-11-2008, 12:56
Non ho chiesto esempi di codici o altro solo se avete qualche screen da vedere se ne avete fatti di progetti simili , solo curiosità niente di più ...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.