Precedente :: Successivo |
Autore |
Messaggio |
jinkazama82it Eroe in grazia degli dei
Registrato: 20/11/07 17:51 Messaggi: 162 Residenza: PC - Residenza estiva PS Vita
|
Inviato: 16 Mag 2011 10:30 Oggetto: 3D object |
|
|
Allora recentemente un amico mi ha posto una domanda, sinceramente io non gli ho saputo rispondere non sono poi così ferrato nella programmazione da autodidatta e raramente mi avvicino a questo tipo di cose.
comunque costui mi aveva chiesto se era possibile con il solo C o C++ creare un oggetto 3D e se si come.
io gli ho risposto che in teoria tutto è possibile ma in pratica di non saper come aiutarlo in tal senso.
una cosa è certa si deve creare una classe che gestisca i vertici dei poligoni disegnati a schermo e quindi il loro posizionamento in prospettiva creando difatto l'asse z in quello che è uno spazio a 2 dimensioni come lo schermo del pc o della psp (io almeno mi diletto nella programamzione per PSP), però apparte la mia vaga spiegazione (probabilmente neanche tanto corretta) non saprei come aiutarlo non conoscendo difatto i calcoli che vengono fatti per la rotazione di un oggetto 3d (purtroppo le mie conoscenze matematiche si fermano alla III media) e per ruotare un oggetto 3D senza deformarlo (quindi mantenerne le proporzioni) probabilmente ci sono calcoli matematici molto complessi da fare, senza contare poi che un oggetto 3D può entrare in collisione co un altro oggetto 3D i lche complica ulteriormente le cose.
ammetto che anche a me la cosa interessa parecchio, quidi se qualcuno mi/ci può illuminare non mi/ci dispiacerebbe affatto.
molti dicono ma che t ne frega di conoscere le basi usa un motore grafico 3D e chissene, beh io come il mio amico siamo piuttosto intransigenti in questo in quanto la sete di conoscenza è tanta e anche se difficile per chi non ha determinate conoscenze matematiche, sarebbe davvero bello poter dire io so creare un oggeto 3D senza usare una libreria esterna o un motore grafico fatto da altri. |
|
Top |
|
|
freemind Supervisor sezione Programmazione
Registrato: 04/04/07 20:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 16 Mag 2011 21:21 Oggetto: |
|
|
La teoria matematica che sta dietro al tutto è quella della geometria 3d però poi per buttarsi a livello di grafica computerizzata ci vuole qualche cosa di più.
Io non conosco librerie gratis e non per gestire questo problema però in giro si trovano.
Tieni conto che occorre anche stabilire cosa intendi per oggetto 3d: un semplice disegno (ad esempio un cubo disegnato con delle linee) oppure intendi ragionare a 'mo di modellatore solido?
Insomma, la grafica è una roba cazzuta e i motori di rendering non sono semplici. |
|
Top |
|
|
jinkazama82it Eroe in grazia degli dei
Registrato: 20/11/07 17:51 Messaggi: 162 Residenza: PC - Residenza estiva PS Vita
|
Inviato: 16 Mag 2011 23:17 Oggetto: |
|
|
per oggetto 3D intendo un oggetto 3D XD, poco importa se è un cubo una piramide una sfera o chi più ne ha più ne metta, comunque si intendo un solido.
come gia scritto non mi interessa usare librerie fatte da altri ma volevo capire cosa c'era dietro, cioè come disegnare quel solido da poter poi far ruotare per farne vedere le varie facce.
purtroppo da autodidatta mi mancano molte conoscenze sia di matematica che di programmazione che potrebbero portarmi alla soluzione solo per quello chiedevo aiuto, una volta che conosco la meccanica svilupparla in qualcosa di più complesso per me non è un problema (e di questo se ne sono stupiti in molti). |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11566 Residenza: Tokelau
|
Inviato: 03 Giu 2011 16:32 Oggetto: |
|
|
In pratica vuoi fare un renderer software. Bella sfida, non c'è che dire
Inizia con il vedere come puoi trasformare una terna di valori (x,y,z) in una coppia (x,y), ovviamente entra in gioco anche il punto di vista (x0,y0,z0) e la direzione dell'osservazione, che è anche questa un vettore 3D.
Fatto questo potrai disegnare dei punti sullo schermo (2D) specificandone la posizione spaziale (nel 3D). Puoi fare effetti tipo il disegnare una galassia, e cambiando il punto di vista (POV) puoi farla 'girare' (in realtà gira l'osservatore intorno ma che cambia?)
Devi cercare con Google (o in biblioteca/libreria) tutto ciò che parla della programmazione grafica in 3D. Una volta avevo letto un libro dal titolo tipo 'grafica 3d in C' ed era molto chiaro... chissà se esiste ancora |
|
Top |
|
|
|