Domanda

Im scrivendo un motore di gioco e mi chiedo quale formato modello 3D devo usare / carico / export? Obj sembra universale e facile, ma sembra anche essere inaffidabile in quanto la maggior parte dei modelli là fuori contengono errori e non memorizza nessuna parte vicino tanto quanto altri formati.

Sembra che ci siano formati appositamente per giochi come MD2 / 3/5, ma non sono sicuro, io uso Wings3D se modello che ho, e non so quali altri dettagli al di là puramente caricamento di che cosa ho bisogno e il supporto dal formato Id deve implementare, come avrei bisogno di implementare IK? e posso usare script per pezzo animazione piuttosto che cinematica inversa e sartiame osso?

È stato utile?

Soluzione

Collada è un formato basato su XML aperto per i modelli 3D di proprietà del gruppo Khronos (standard OpenGL corpo)

Dal Collada.org FAQ:

Il set di funzionalità 1.4.x COLLADA comprende:

  • geometria mesh
  • Transform gerarchia (rotazione, traslazione, taglio, scala, matrice)
  • Effetti
  • Shaders (Cg, GLSL, GLES)
  • Materiali
  • Trame
  • Luci
  • Fotocamere
  • Creare
  • Animazione
  • Physics (corpi rigidi, vincoli, pupazzi, collisione, volumi)
  • la creazione di istanze
  • Tecniche
  • Multirepresentations
  • Attività
  • Dati utente

Altri suggerimenti

Prima di preoccuparsi di ciò formati 3D si vuole sostenere, penso che si dovrebbe davvero concentrarsi su quali caratteristiche si prevede di implementare nel vostro motore. Scrivi quelli come prescrizioni, e scegliere il formato che supporta la maggior parte delle caratteristiche della lista ... come si vorrà mettere in mostra il vostro motore (Io parto dal presupposto che si sta progettando per il vostro motore di essere a disposizione del pubblico). Si potrebbe anche voler rotolare il proprio formato, se il motore è dotato di caratteristiche specifiche (che è sempre una buona cosa avere per un motore di gioco).

Dopo di che, il sostegno di molti dei formati più diffusi, come si può (.X, .3DS, OBJ, .B3D) ... il più accessibile il motore è, più la gente vuole lavorare con lui!

Collada è un formato piacevole e generico, ma come Nils menziona, non è un formato ideale per la distribuzione finale.

Io uso il mio proprio formato binario. Ho cercato di utilizzare i formati esistenti, ma sempre incorrere in limitazioni. Alcuni potrebbero essere aggirato, gli altri dove Showstoppers.

Collada può valere la pena dare un'occhiata. Non credo che sia così buono come formato per essere letto da un motore 3D. E 'bene come un formato generale dei dati di scambio però.

http://www.collada.org/mediawiki/index.php/Main_Page

+1 per Collada. Si consiglia inoltre di un formato binario nativo personalizzato per il carico veramente veloce (di solito solo un dump binario dei dati vertex / index buffer, oltre a materiali e dati scheletro, e dei dati di collisione se appropriato).

Una tendenza nel settore dei giochi è quello di sostenere il caricamento di un formato simile Collada nella build sviluppatore del motore, ma hanno anche una toolchain che esporta una versione ottimizzata per il rilascio. La versione per sviluppatori in grado di aggiornare la rete in modo dinamico, in modo da artisti salvare le modifiche, il file viene ricaricato automaticamente, consentendo loro una (quasi) immediata vista WYSIWYG del loro modello, ma ancora fornendo un formato di stampa completamente ottimizzato.

supporto Collada bene, e poi fornire buoni convertitori da / per gli altri formati (questo potrebbe essere la parte più difficile). Questo vi darà la massima flessibilità. Date un'occhiata a C4 motore

Collada è grande, ma vive più sul lato app 3D delle cose. cioè è meglio utilizzato per trasferire dati 3D tra le applicazioni, non caricare dati 3D all'interno di un motore grafico. Hai guardato in Lua? E 'ampiamente usato nei giochi perché è un linguaggio di scripting che è sia ridicolmente rapido (perfetto per i giochi) e molto flessibile (può essere utilizzato per rappresentare qualsiasi dato necessario per il motore).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top